بکندباز

این چالش یک مدل انگلیسی از بازی کلمات ژاپنی شیریتوری است. ایدهٔ اصلی این بازی این دو قانون است:

  1. اولین حرف کلمهٔ بعدی باید با آخرین حرف کلمهٔ قبلی مطابقت داشته باشد.
  2. کلمه نباید قبلاً گفته شده باشد. در زیر یک مثال از بازی شیریتوری آمده است:

مثال

  • [“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 تنها یک آرگومان به عنوان ورودی می‌پذیرد.

پاسخ های کاربران به این تمرین

NoT_Mamad
امتیاز:‌ 1347
0 0
‎پایتون‎
12 آذر 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

Amir_Shz87
امتیاز:‌ 1347
0 0
‎پایتون‎
10 آبان 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

user-bKmx
امتیاز:‌ 1347
0 0
‎پایتون‎
17 شهريور 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

user-Tg9h
امتیاز:‌ 1347
0 0
‎پایتون‎
12 شهريور 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

FDK2077
امتیاز:‌ 1347
0 0
‎پایتون‎
30 ارديبهشت 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

mantix
امتیاز:‌ 1347
0 0
‎پایتون‎
11 ارديبهشت 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

نظرات

*
*