پایتون مقادیر «درست» و «غلط» را با نوع bool نمایش میدهد که زیرکلاسی از int است.
این نوع تنها دو مقدار دارد: True و False.
میتوان این مقادیر را به یک متغیر نسبت داد:
>>> true_variable = True
>>> false_variable = False
میتوانیم عبارات منطقی را با عملگرهای and، or و not ارزیابی کنیم:
>>> true_variable = True and True
>>> false_variable = True and False
>>> true_variable = False or True
>>> false_variable = False or False
>>> true_variable = not False
>>> false_variable = not True
در این تمرین باید چند قاعده از Pac-Man، بازی آرکید کلاسیک دههی ۱۹۸۰، را پیادهسازی کنید.
چهار قاعده برای پیادهسازی دارید که همه به حالتهای بازی مربوط میشوند.
نگران این نباشید که آرگومانها چگونه به دست میآیند؛ فقط روی ترکیب آرگومانها تمرکز کنید تا نتیجهی موردنظر را برگردانید.
تابع eat_ghost() را تعریف کنید که دو پارامتر میگیرد (اینکه آیا Pac-Man قرص قدرت فعال دارد و اینکه آیا Pac-Man با شبح در تماس است) و اگر Pac-Man بتواند شبح بخورد، یک مقدار «منطقی» برمیگرداند.
تابع باید فقط در صورتی True برگرداند که Pac-Man قرص قدرت فعال داشته باشد و با شبح در تماس باشد.
>>> eat_ghost(False, True)
...
False
تابع score() را تعریف کنید که دو پارامتر میگیرد (اینکه آیا Pac-Man با قرص قدرت در تماس است و اینکه آیا Pac-Man با نقطهای در تماس است) و اگر Pac-Man امتیاز گرفته باشد، یک مقدار منطقی برمیگرداند.
تابع باید در صورتی True برگرداند که Pac-Man با یک قرص قدرت یا یک نقطه در تماس باشد.
>>> score(True, True)
...
True
تابع lose() را تعریف کنید که دو پارامتر میگیرد (اینکه آیا Pac-Man قرص قدرت فعال دارد و اینکه آیا Pac-Man با شبح در تماس است) و اگر Pac-Man ببازد، یک مقدار منطقی برمیگرداند.
تابع باید در صورتی True برگرداند که Pac-Man با شبح در تماس باشد و قرص قدرت فعالی نداشته باشد.
>>> lose(False, True)
...
True
تابع win() را تعریف کنید که سه پارامتر میگیرد (اینکه آیا Pac-Man همهی نقطهها را خورده است، اینکه آیا Pac-Man قرص قدرت فعال دارد و اینکه آیا Pac-Man با شبح در تماس است) و اگر Pac-Man برنده شود، یک مقدار منطقی برمیگرداند.
تابع باید در صورتی True برگرداند که Pac-Man همهی نقطهها را خورده باشد و بر اساس قواعد تعریفشده در بخش ۳ نباخته باشد.
>>> win(False, True, False)
...
False