این یک بازی دو نفره است. تعداد مشخصی مهره (n) روی میز قرار دارد. بازیکنان به نوبت بازی میکنند. هر بازیکن در نوبت خود میتواند بین ۱ تا L مهره بردارد. کسی که آخرین مهره را بردارد بازنده است.
در این نسخه، شما مقابل کامپیوتر بازی میکنید.
برای انتخاب مهرهها، در نوبت خود روی مهرههای دلخواه کلیک کنید (حداکثر L عدد) و سپس دکمهٔ تأیید را بزنید. کامپیوتر نیز متعاقبا حرکت خود را انجام میدهد.
📝 نحوه انجام تمرین
توضیحات کمی طولانی است. به پایین اسکرول کنید.
در این بازی، بسته به تعداد مهرهها و حداکثر تعداد انتخاب، شخصی که نوبتش است، اگر درست بازی کند، به شرط درست بازی کردن طرف مقابل، یا حتما برنده است یا حتما بازنده.
به عنوان مثال، دو بازیکن A و B را در نظر بگیرید. نوبت بازی با A است. اگر ۶ مهره روی میز باشد و حداکثر انتخاب ۴ باشد، A بازنده است. زیرا هر تعداد مهره بردارد، B میتواند به تعدادی مهره بردارد که روی میز ۱ مهره باقی بماند و A چارهای جز برداشتن آن یک مهره را ندارد. مثال دوم: اگر ۱۱ مهره روی میز باشد نیز A بازنده است. زیرا، هر تعداد مهره بردارد، B به تعدادی مهره برمیدارد که تعداد مهرههای روی میز ۶ تا شود و اکنون نوبت با A است و به شرایط مثال قبل رسیدهایم .
ابتدا سعی کنید با استفاده از توضیحات فوق، بهترین حرکت را در هر حالت محاسبه کنید و با توجه به تعداد مهرهها و حداکثر انتخاب، به درستی انتخاب کنید که میخواهید نفر اول بازی کنید یا نفر دوم و در ادامه کامپیوتر را در این بازی ببرید. در جلسه درسی در مورد استراتژی بُرد این بازی مفصلتر صحبت میشود.
در ادامه، برنامهای بنویسید که با کاربر این بازی را انجام دهد. طبیعتا برنامه باید زمانی که نوبتش است، بهترین حرکت را انجام دهد و اگر در موقعیت باخت قرار داشت، به تصادف تعدادی مهره انتخاب کند و اگر بازیکن در ادامه اشتباه کرد، برنامه خود را در موقعیت بُرد قرار دهد. در برنامهای که مینویسید n و L را در خود برنامه مقداردهی کنید.
بقیه موارد اعم از پرسش در مورد شخصی که ابتدا بازی میکند و تعداد مهرههای انتخابی حین اجرای برنامه مشخص میشود و هر بار که بازیکنی بازی کرد، تعداد مهرههای باقیمانده گزارش میشود و در نهایت با پیغامی مناسب برنده یا بازنده بودن بازیکن اعلام میشود.
لطفاً فایل متلب را در سامانه ایلرن تحویل دهید.
مدرس درس: دکتر یاسر ملکیان
دانشکده فنی کاسپین - دانشکدگان فنی - دانشگاه تهران