این روزها که با چند گروه از دانشجویان، درس کارگاه لینوکس را دارم، وقتی آموزش نصب لینوکس را تمام میکنیم و اجازه ورود به لینوکس و کار با آن را میدهیم، مشاهده میکنم که اولین جایی که دانشجوها به سراغ آن میروند، Gameها یا همان بازیهای سیستم عامل است!! (دقیقاً مثل کاربرانی که برای اولین بار وارد یک سایت میشوند! آنها اولین جایی که میروند، گالری عکس سایت است!!)
به محض اینکه میبینم منوی بازیها را باز کردند، از فرصت استفاده میکنم و میپرسم: کی بازی Minesweeper رو بلده؟ یکی دو نفر میگویند بلدیم، اما وقتی میپرسم قاعده کار چیست؟
میبینم که فکر میکنند در این بازی باید شانسشان را آزمایش کنند!!! در این پنج گروهی که دیدهام، تا به حال حتی یک دانشجو پیدا نشده است که بداند چطور باید این بازی را انجام دهد!
این در حالی است که در منوی Game تنها بازیای که ارزش وقت گذاشتن دارد و دلیل علمی برای وجود آن در آن منو در نظر گرفته شده، بازی Minesweeper یا مینیاب است.
این بازی همراه با بازی Tinker (که اگر ویندوز ویستایتان اصل باشد و قابلیت آپدیت داشته باشد، میتوانید به طور رایگان از بخش آپدیت ویندوز دانلود کنید) برای دانشجویان و بیش از همه، برای دانشجویان رشتههای کامپیوتر مثل نان شب است!
این دو بازی طوری طراحی شدهاند که قدرت تمرکز و تفکر شما را برای برنامه نویسی بالا میبرند. شما در حین بازی minesweeper، به راحتی با دستورات تصمیمگیری (دستورات شرطی) مثل if ... else آشنا میشوید و در Tinker به نوعی با مفاهیم صفر و یک و توابع بازگشتی و مسائل هوش مصنوعی و نتیجه نهایی، افزایش تمرکز و قدرت پردازش شما در مواجهه با مسائل پیچیده برنامهنویسی خواهد بود.
یک نکته جالب هم در مورد برخی دانشجویان تعصبی مشاهده کردم: بعضیها به محض اینکه صحبت از بازی شد، خیلی عالمانه، گفتند: ما اصلاً طرف بازی نمیرویم! وقت تلف کردن است! ما بازیهای ویندوز را هم Remove کردهایم. در حالی که من به عنوان مدرس آنها تقریباً جزء اولین افرادی هستم که به محض انتشار یک بازی جدید آن را دانلود میکنم و برای یک بار هم که شده تست میکنم تا اگر جالب بود، خودم مشتریاش شوم و به دیگران هم پیشنهاد کنم. بسیاری از بازیها ذهن شما را فعال میکنند و خستگی را از تن شما بیرون میکنند.
در «ادامه متن...» توضیحی در مورد این دو بازی خواهم داد. مطمئنم شما هم مثل اکثر دانشجویانی که تاکنون به آنها یاد دادهام، مشتاق و به قولی «خوره» این بازیها خواهید شد :)
1- بازی Minesweeper:
این بازی به خاطر محبوبیت و جذابیت، در اکثر سیستم عاملها (حتی روی گوشیها) موجود است.
توجه کنید که شما در یک میدان مین قرار دارید، پس خوب گوش کنید تا کار دست خودتان ندهید!
اگر باهوش باشید، میتوانید در کمتر از یک دقیقه تمام مینها را به سرعت کشف کنید. بازی را چند مثال توضیح میدهم و مطمئنم که خودتان متوجه جریان میشوید.
اولین حرکت در بازی، شانسی است. چشم خود را ببندید و روی یک خانه کلیک کنید. (ترجیحاً از یک گوشه شروع کنید) اگر همانجا بمب بود که خیلی بدشانس تشریف دارید، پس بازی را restart کنید.
اگر خوش شانس باشید، یک یا چند خانه که خالی از بمب هستند، نمایان میشوند. روند بازی به اعدادی بستگی دارد که در خانههای خالی درج شده است.
هر خانه در اطراف خود به هشت خانه دیگر متصل است (به فلش قرمز در تصویر زیر دقت کنید). عددی که در یک خانه نوشته میشود، مشخص میکند که چه تعداد از خانههای متصل به این خانه شامل مین هستند. شما تا انتهای بازی فقط به همین اعداد نگاه میکنید و مینها را کشف میکنید. (کم کم آنقدر دستتان تند میشود که نگاه میکنید و مینها را کشف میکنید...)
باید از بخشهایی از بازی شروع کنید که کاملاً مشخص است که کدام خانه مین دارد. مثلاً به این حالت از بازی من دقت کنید:
در این وضعیت، من مطمئنم که در خانهای که با فلش آبی مشخص شده، مین است. چرا؟ این را از روی عدد 1 که در خانه وسط دایره قرمز درج شده است میتوانیم بفهمیم. در آن خانه نوشته شده 1 و فقط یک خانه در هشت طرف آن خانه است، پس طبیعتاً همان یک خانه، مین است.
خانهای که با فلش زرد مشخص شده نیز مین دارد. از کجا فهمیدیم؟ از عدد 1 که در شمال غربی این خانه درج شده است.
سؤال: آیا از عدد 1 که بالای خانه زرد رنگ درج شده میشود فهمید کدام خانه مین دارد؟ جواب: خیر! چون نمیتوانیم بفهمیم خانه زرد رنگ شامل مین است یا کناری آن. هر کدام که مین باشند، عدد 1 درست میشود. پس شما باید دنبال عددی بگردید که به شما در کشف مین کمک کند.
وقتی مطمئن شدید که یک خانه مین دارد، روی آن کلیک راست کنید تا به عنوان مین نشانهگذاری شود.
حالا که خانه زرد رنگ مین شد، طبیعتاً خانه کناری آن مین نیست. چرا؟ چون اگر مین باشد با مینی که در خانه زرد رنگ است، دو مین میشود. پس باید در خانه بالایی آن نوشته شده باشد 2 نه 1 .
به همین ترتیب، وقتی یک مین کشف شد، با مقایسه اعداد اطراف آن و شمردن تعداد مینهایی که کشف کردهاید، میتوانید خانههای شامل مین را کشف کنید.
اکنون میتوانیم بفهمیم که خانههای مشخص شده با دایره قرمز و بنفش نیز خالی از مین هستند. چرا؟ چون اگر مثلاً خانه قرمز هم مین باشد، باید بالای خانه مشخص شده با فلش آبی نوشته شده باشد 2 نه 1 . پس خانه قرمز مین نیست. خانه بنفش هم با همین استدلال، مین نیست. (اگر مین باشد، آنوقت خانه قرمز رنگ به دو تا مین متصل میشود نه به 1 مین) پس روی خانههای قرمز و بنفش با خیال راحت کلیک کنید تا خالی شوند.
اما خانه سمت چپ خانه بنفش، مین است. چرا؟ چون بالای آن نوشده شده 1 و اگر خانههای قرمز و بنفش خالی شوند، تنها خانهای که اطراف عدد 1 میماند، همان خانه است.
پس با این استدلالها، من خانهها را تخلیه میکنم. نتیجه را ببینید:
ادامه میدهیم: من میگویم خانهای که با رنگ بنفش مشخص کردهام، مین است. شما چه فکر میکنید؟ استدلال من این است: از روی عدد 2 که در بالای خانه بنفش نوشته شده میتوانم بفهمم که دو خانه در اطراف آن عدد، مین دارند. فقط هم دو خانه در اطراف این عدد است (یکی بالای آن و یکی پایینش)، پس هر دو مین هستند دیگر!
خانه قرمز رنگ هم مین است. این را از روی عدد دو که در شمال شرق آن نوشده شده میفهمیم. چون به آن عدد 2 فقط دو خانه قرمز و بنفش متصل است، پس هر دو مین هستند.
خانهای که زیر خانه قرمز است، مین نیست. چون اگر مین باشد، در سمت راست خانه قرمز باید بنویسد 3 نه 2.
به همین ترتیب، میتوان خیلی سریع تمام مینها را کشف کرد. گاهی اوقات شرایطی پیش میآید که باید چندین خانه را با هم در نظر بگیرید.
مثلاً من میتوانم بگویم در تصویر بالا، خانه زرد رنگ حتماً مین دارد. دلیل: عدد 2 مشخص شده با فلش قرمز را در نظر بگیرید. این عدد میگوید دو تا از سه خانه که با خط قرمز مشخص کردهام مین دارد. از طرفی عدد یک میگوید یکی از سه خانه که با سفید مشخص کردهام، مین دارد. پس دو خانه زیر اعداد 1 و 2 نمیتواند هر دو مین باشد، چون عدد 1 غلط میشود. پس برای عدد 2 حتماً خانه زرد باید مین باشد تا با یکی از مینهایی که در دو خانه زیر 1 و 2 وجود دارد، بشود 2 مین. (کمی دقت نیاز دارد)
این هم از کل مینهای بازی ما :)
امیدوارم متوجه روند کلی کشف مین و خانههای خالی شده باشید. به مرور که دستتان تند شد، مشتاق میشوید که از منوی Game گزینه Options را انتخاب کنید و نوع بازی را Advanced (پیشرفته کنید) تا در میدان مین بزرگتری مسؤول مینیابی شوید.
2- بازی Tinker :
این بازی نیازی به توضیح چندانی ندارد. شما با چند بار بازی کردن، همه چیز را متوجه میشوید.
بازی در دو مجموعه و هر کدام در 20 سطح مختلف طراحی شده است.
در هر مرحله شما باید در تعداد محدودی حرکت (مثلاٌ در تصویر زیر در 100 حرکت) روبات را به نقطه خروج برسانید.
اگر برنامه نویس باشید، تعداد حرکت را میتوانید به «بهینه بودن» برنامه تشبیه کنید و اینکه قبل از حرکت، مسیر را در ذهن دنبال کنید را به توابع بازگشتی و الگوریتمهای بازگشتی و مسائل هوش مصنوعی در مورد BackTracking و ...
همه چیز در ذهن شما اتفاق میافتاد. اگر این مانع را برداردم، فلان در باز میشود، اگر از در رد شوم، فلان آهنربا من را از مسیر منحرف میکند، پس این مسیر مناسب نیست، ذهن خود را به عقب بر میگردانید و راه حل دیگری را تست میکنید.
اگر ویندوز ویستایی دارید که قابلیت آپدیت شدن دارد، از بخش آپدیتهای Ultimate Extras میتوانید این بازی را بر روی ویندوزتان نصب کنید.
اگر اینطور نیست، میتوانید از طریق لینک زیر این بازی را دانلود نمایید:
موفق باشید؛
حمید رضا نیرومند