این تمرین بر اساس بازی Uno نوشته شده است.
تابعی بنویسید که دارای دو آرگومان باشد: (1) دست فعلی بازیکن و (2) بالاترین کارت فعلی روی میز. اگر بازیکن بتواند کارتی بگذارد، این تابع True برمیگرداند، و اگر بازیکن مجبور باشد از از بیرون کارت بکشد، False را برمیگرداند.
طبق قانون این بازی، در دو صورت بازیکن می تواند روی کارت فعلی کارت بگذارد:
- کارتی هم رنگ با کارت فعلی روی میز داشته باشد
- کارتی هم عدد با کارت فعلی روی میز داشته باشد
can_play(["yellow 3", "yellow 7", "blue 8", "red 9", "red 2"], "red 1") ➞ True
# بازیکن کارت قرمز دارد، و آخرین کارت روی میز نیز قرمز است.
can_play(["yellow 3", "yellow 7"], "blue 7") ➞ True
# بازیکن کارت شماره 7 دارد و آخرین کارت روی میز 7 است.
نمونه ورودی و خروجی
CanPlay(["yellow 3", "yellow 5", "red 8"], "red 2") ➞ True
CanPlay(["yellow 3", "yellow 5", "red 8"], "blue 5") ➞ True
CanPlay(["yellow 3", "blue 5", "red 8", "red 9"], "green 4") ➞ False
نکات
- اگر بازیکن هیچ کارتی نداشت (رشته خالی)، False برگردانده شود.
Assert.True(Backendbaz.CanPlay(new string[] { "yellow 3", "yellow 5", "red 8" }, "red 2")); Assert.True(Backendbaz.CanPlay(new string[] { "yellow 3", "yellow 5", "red 8" }, "blue 5")); Assert.False(Backendbaz.CanPlay(new string[] { "yellow 3", "blue 5", "red 8", "red 9" }, "green 4")); Assert.False(Backendbaz.CanPlay(new string[] { "yellow 3", "red 8" }, "green 2"));
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات