بکندباز

این تمرین بر اساس بازی 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"));

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

Aliak
امتیاز:‌ 9506
تصحیح اتوماتیک 0 0
‎C#‎
11 مرداد 1402

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

mantix
امتیاز:‌ 9506
تصحیح اتوماتیک 0 0
‎C#‎
24 ارديبهشت 1402

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

نظرات

*
*