این چالش یک مدل انگلیسی از بازی کلمات ژاپنی شیریتوری است. ایدهٔ اصلی این بازی این دو قانون است:
- اولین حرف کلمهٔ بعدی باید با آخرین حرف کلمهٔ قبلی مطابقت داشته باشد.
- کلمه نباید قبلاً گفته شده باشد. در زیر یک مثال از بازی شیریتوری آمده است:
مثال
- [“word”, “dowry”, “yodel”, “leader”, “righteous”, “serpent”] # معتبر!
- [“motive”, “beach”] # نامعتبر! – beach باید با “e” شروع شود.
- [“hive”, “eh”, “hive”] # نامعتبر! – “hive” قبلاً گفته شده است.
یک کلاس Shiritori بنویسید که دو متغیر نمونه داشته باشد:
words: یک لیست از کلماتی که قبلاً گفته شدهاند.
game_over: یک متغیر بولین که اگر بازی تمام شده باشد، مقدار true را دارد.
و دو متد نمونه:
play: یک متدی که یک کلمه به عنوان ورودی میگیرد و بررسی میکند که آیا معتبر است یا خیر (کلمه باید قوانین #1 و #2 بالا را رعایت کند).
اگر معتبر بود، کلمه را به لیست کلمات اضافه کرده و لیست کلمات را برمیگرداند. اگر نامعتبر بود (هر کدام از قوانین را نقض میکند)، “game over” را برمیگرداند و مقدار متغیر game_over را به true تنظیم میکند.
restart: یک متدی که لیست کلمات را به یک لیست خالی [] تنظیم کرده و مقدار متغیر game_over را به false میکند. باید “game restarted” را برگرداند.
مثال:
توجه:
- متد play نباید کلمهٔ نامعتبر را به لیست کلمات اضافه کند.
- نباید نگرانی ای درباره بزرگی-کوچکی حروف یا فضای خالی برای ورودیهای متد play وجود داشته باشد. یعنی اگر فاصله خالی قبل و بعد از کلمه بیاید و یا ورودی با حرف بزرگ شروع شود، باید باز هم آن را تشخیص دهد.
- متد play تنها یک آرگومان به عنوان ورودی میپذیرد.
نظرات