این چالش یک مدل انگلیسی از بازی کلمات ژاپنی شیریتوری است. ایدهٔ اصلی این بازی این دو قانون است:
- اولین حرف کلمهٔ بعدی باید با آخرین حرف کلمهٔ قبلی مطابقت داشته باشد.
- کلمه نباید قبلاً گفته شده باشد. در زیر یک مثال از بازی شیریتوری آمده است:
مثال
- [“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” را برگرداند.
مثال:
my_shiritori = Shiritori()
my_shiritori.play("apple") #➞ ["apple"]
my_shiritori.play("ear") #➞ ["apple", "ear"]
my_shiritori.play("rhino") # ➞ ["apple", "ear", "rhino"]
my_shiritori.play("corn") #➞ "game over"
# Corn با "o" شروع نمیشود.
print(my_shiritori.words) #➞ ["apple", "ear", "rhino"]
# کلمات باید قابل دسترس باشند.
my_shiritori.restart() #➞ "game restarted"
print(my_shiritori.words) #➞ []
#لیست کلمات را باید بتوان دوباره به خالی تنظیم کرد.
print(my_shiritori.play("hostess")) #➞ ["hostess"]
print(my_shiritori.play("stash"))# ➞ ["hostess", "stash"]
print(my_shiritori.play("hostess"))# ➞ "game over"
# کلمات نمیتوانند قبلاً گفته شده باشند.
توجه:
- متد play نباید کلمهٔ نامعتبر را به لیست کلمات اضافه کند.
- نباید نگرانی ای درباره بزرگی-کوچکی حروف یا فضای خالی برای ورودیهای متد play وجود داشته باشد. یعنی اگر فاصله خالی قبل و بعد از کلمه بیاید و یا ورودی با حرف بزرگ شروع شود، باید باز هم آن را تشخیص دهد.
- متد play تنها یک آرگومان به عنوان ورودی میپذیرد.
برای ثبت پاسخ خود، ابتدا باید در سایت وارد شوید.
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
user-4pH3
نظرات