درد سر کشاورز
یکی از کارهایی که در پایان هر روز در مزارع انجام می شود، گرفتن و بازگرداندن احشام و مرغ و خروسها به لانه هایشان می باشد. بازی ای که در این مقاله مطرح میکنیم را Sam Loyd ( یکی از معروف ترین طراحان بازیها و معماها ) بر اساس این ماجرا ساخته است. کشاورز و همسرش در مزرعه به دنبال مرغ و خروس ها میدوند تا آن ها را بگیرند و به لانه هایشان باز گردانند. اگر مزرعه ی آن ها را به مربع های 8×8 ( یا 7×7 و یا 6×6 ) تقسیم کنیم، میتوانیم این بازی را به شکل زیر در نظر بگیریم:
بااستفاده از Applet زیر میتوانید بازی را در حالت های مختلف انجام دهید. در هر حرکت باید کشاورز یا همسرش را با ماوس به یکی از خانه ی مجاورشان بکشید. وقتی هم کشاورز و هم همسرش در بازی هستند، حرکت مرغ و خروس بعد از حرکت دادن آن ها انجام میشود. بازی وقتی پایان مییابد که کشاورز و یکی از مرغ یا خروس ها در یک خانه و هم چنین همسرش و مرغ یا خروس دیگری نیز در یک خانه باشند.
برای دیدن اپلت فایل مورد نظر را دانلود کنید و صفحه ی 01 را اجرا کنید.
نکته ی جالب توجه این است که اگر بازی را در حالت های مختلف - مثلاً فقط با حضور کشاورز و خروس، همسر کشاورز و مرغ و یا همسر کشاورز و خروس - تجربه کنید، خواهید دید که کشاورز به تنهایی نمی تواند خروس را بگیرد و همسرش هم به تنهایی نمی تواند مرغ را بگیرد. در حالتی که کشاورز، همسرش و مرغ و خروس ها در صفحه ی 8×8 حضور دارند، فقط زمانی آن دو موفق میشوند که کشاورز، مرغ و همسرش، خروس را بگیرد. فکر میکنید دلیل این موضوع چیست؟
سعی میکنیم بازی را در حالت کلی بررسی کنیم. برای این کار بازی را با حضور دو مهره ( مثلاً کشاورز و خروس ) بررسی می کنیم، برای سایر مهرهها وضعیت مشابه است. در چه حالت هایی کشاورز میتواند خروس را بگیرد؟ تنها حالت هایی که کشاورز میتواند خروس را بگیرد، زمانی است که خروس در گوشه های صفحه باشد و در باقی حالتها خروس راه فرار دارد. ( چرا؟ )
|
|
|
|
|
|
در ضمن در این حالتها باید نوبت حرکت خروس باشد تا کشاورز بتواند او را بگیرد. بنابراین باید حالت هایی را که کشاورز میتواند خروس را در چنین وضعیتی قرار دهد، به دست آوریم.
به حالت زیر نگاه کنید.

در چنین وضعیتی اگر نوبت حرکت خروس باشد، فقط میتواند به دو خانه ی رنگ شده برود. کافی است کشاورز هر حرکتی که خروس انجام داد، او نیز انجام دهد تا خروس را در گوشه ی جدول نگاه دارد. ( چرا؟ ) پس در چنین وضعی کشاورز خروس را میگیرد. اما اگر نوبت حرکت کشاورز باشد، چه اتفاقی می افتد؟ کافی است کشاورز به هر خانه ای که میرود، خروس وضعیت خود را نسبت به او به همین شکل حفظ کند تا دست کشاورز هیچ گاه به او نرسد. حال به چند نکته توجه کنید:
1- اگر کشاورز در خانه ی
(
شماره ی سطر و
شماره ی ستونی است که کشاورز در آن قرار دارد ) و خروس در خانه ی
قرار داشته باشند، فاصله ی بین آن دو را به صورت زیر تعریف میکنیم :
![]()
آن گاه زوج یا فرد بودن فاصله بعد از دو حرکت تغییر نمی کند. ( کافی است ثابت کنیم هر نوبت حرکت، زوج یا فرد بودن فاصله را تغییر میدهد. این کار را به شما واگذار میکنیم )
2- اگر در بازی امکان به وجود آمدن حالت 1 باشد، هرگز حالت 2 پیش نمی آید.

حالت 1- نوبت حرکت با خروس است.
حالت 2- نوبت حرکت با کشاورز است.
با فرض نکته ی اول، درستی این نکته بدیهی است. زیرا در هر دو حالت فاصله 2 است که در یکی نوبت با کشاورز و در دیگری نوبت با خروس است. مشاهده می کنید که این مسئله با نکته ی اول در تناقض است.
3- اگر فاصله ی کشاورز و خروس فرد باشد، آن گاه کشاورز حتماً خروس را میگیرد. در غیر این صورت خروس میتواند از دست کشاورز فرار کند. کافی است کشاورز حالت 1 را پیش آورد. ( یعنی خود را به خروس نزدیک کند که همیشه میتواند این کار را انجام دهد ( چرا؟ ) ) می بینید که طبق مطالب بیان شده، کشاورز میتواند خروس را بگیرد. اما اگر فاصله ی کشاورز و خروس زوج باشد، خروس میتواند حالت 2 را پیش آورد ( چرا؟ ) و در نتیجه کشاورز هرگز نمی تواند خروس را بگیرد.
کار به پایان رسید. حال به سادگی میتوانیم متوجه شویم که تحت کدام شرایط اولیه، کدام مهرهها میتوانند مهره های دیگر را بگیرند. امیدواریم با خواندن این مقاله توانایی حل و بررسی حالت های مختلف یک بازی ساده را پیدا کرده باشید.

بسیاری از مواقع دانستن این که میتوان کاری را انجام داد، کافی نیست. بلکه لازم است تا تقریبی از سختی انجام دادن آن را نیز در نظر داشت. به طور مثال در این بازی به دست آوردن این که بعد از چند مرحله کشاورز حتماً خروس را میگیرد ( در حالتی که کشاورز میتواند خروس را بگیرد )، تمرین مناسبی برای این امر می باشد.







