مسیرها
/
Gleam
Gleam
/
تمرین‌ها
/
قوانین پکمن
قوانین پکمن

قوانین پکمن

تمرین یادگیری

مقدمه

مقدار منطقی

زبان Gleam مقادیر «درست» و «غلط» را با نوع Bool نمایش می‌دهد. این نوع فقط دو مقدار دارد: True و False. می‌توان این مقادیر را به یک متغیر نسبت داد:

let true_variable = True
let false_variable = False

می‌توان از عملگرهای &&، || و ! برای کار با مقادیر منطقی استفاده کرد:

True && True  // -> True
True && False // -> False

False || True  // -> True
False || False // -> False

!False // -> True
!True  // -> False

عملگرهای && و || از «ارزیابی اتصال کوتاه» استفاده می‌کنند؛ یعنی عبارت سمت راست عملگر فقط در صورت نیاز ارزیابی می‌شود.

هر یک از این عملگرها اولویت متفاوتی دارد؛ ! پیش از && و || ارزیابی می‌شود. از آکولادها می‌توان استفاده کرد تا بخشی از عبارت پیش از بخش‌های دیگر ارزیابی شود:

!True && False   // -> False
!{True && False} // -> True

دستورالعمل‌ها

در این تمرین، باید چند قانون از بازی کلاسیک Pac-Man را به توابع Gleam ترجمه کنید.

چهار قانون برای ترجمه دارید که همه به حالت‌های بازی مربوط می‌شوند.

نگران این نباشید که آرگومان‌ها چگونه به دست می‌آیند؛ فقط روی ترکیب آرگومان‌ها تمرکز کنید تا نتیجه‌ی موردنظر را برگردانید.

1. تعریف کنید که آیا Pac-Man یک روح را می‌خورد

تابع eat_ghost را تعریف کنید که دو آرگومان می‌گیرد (آیا Pac-Man قرص قدرت فعال دارد و آیا Pac-Man با یک روح در تماس است) و اگر Pac-Man بتواند آن روح را بخورد، یک مقدار منطقی برمی‌گرداند. تابع باید فقط در صورتی True را برگرداند که Pac-Man قرص قدرت فعال داشته باشد و با یک روح در تماس باشد.

eat_ghost(False, True)
// -> False

2. تعریف کنید که آیا Pac-Man امتیاز می‌گیرد

تابع score را تعریف کنید که دو آرگومان می‌گیرد (آیا Pac-Man با یک قرص قدرت در تماس است و آیا Pac-Man با یک نقطه در تماس است) و اگر Pac-Man امتیاز گرفته باشد، یک مقدار منطقی برمی‌گرداند. تابع باید اگر Pac-Man با یک قرص قدرت یا یک نقطه در تماس باشد، True را برگرداند.

score(True, True)
// -> True

3. تعریف کنید که آیا Pac-Man می‌بازد

تابع lose را تعریف کنید که دو آرگومان می‌گیرد (آیا Pac-Man قرص قدرت فعال دارد و آیا Pac-Man با یک روح در تماس است) و اگر Pac-Man ببازد، یک مقدار منطقی برمی‌گرداند. تابع باید اگر Pac-Man با یک روح در تماس باشد و قرص قدرت فعالی نداشته باشد، True را برگرداند.

lose(False, True)
// -> True

4. تعریف کنید که آیا Pac-Man برنده می‌شود

تابع win را تعریف کنید که سه آرگومان می‌گیرد (آیا Pac-Man همه‌ی نقطه‌ها را خورده است، آیا Pac-Man قرص قدرت فعال دارد و آیا Pac-Man با یک روح در تماس است) و اگر Pac-Man برنده شود، یک مقدار منطقی برمی‌گرداند. تابع باید اگر Pac-Man همه‌ی نقطه‌ها را خورده باشد و بر اساس آرگومان‌های تعریف‌شده در بخش ۳ نباخته باشد، True را برگرداند.

win(False, True, False)
// -> False
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Gleam Exercism

آماده‌اید قوانین پکمن را شروع کنید؟

در Exercism ثبت‌نام کنید تا Gleam را همراه با 33 مفهوم122 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.