Треки
/
Gleam
Gleam
/
Вправи
/
Правила Pacman
Правила Pacman

Правила Pacman

Навчальна вправа

Вступ

Булеві значення (англ. Boolean)

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 привида) і повертає булеве значення (англ. Boolean) залежно від того, чи може Pac-Man зʼїсти привида. Функція має повертати True лише тоді, коли в Pac-Man активна енергетична кулька і він торкається привида.

eat_ghost(False, True)
// -> False

2. Визначте, чи Pac-Man набирає очки

Визначте функцію score, яка приймає два аргументи (чи торкається Pac-Man енергетичної кульки і чи торкається Pac-Man точки) і повертає булеве значення залежно від того, чи набрав Pac-Man очки. Функція має повертати True, якщо Pac-Man торкається енергетичної кульки або точки.

score(True, True)
// -> True

3. Визначте, чи Pac-Man програє

Визначте функцію lose, яка приймає два аргументи (чи в Pac-Man активна енергетична кулька і чи торкається Pac-Man привида) і повертає булеве значення залежно від того, чи програє Pac-Man. Функція має повертати True, якщо Pac-Man торкається привида і в нього немає активної енергетичної кульки.

lose(False, True)
// -> True

4. Визначте, чи Pac-Man перемагає

Визначте функцію win, яка приймає три аргументи (чи зʼїв Pac-Man усі точки, чи в Pac-Man активна енергетична кулька і чи торкається Pac-Man привида) і повертає булеве значення залежно від того, чи перемагає Pac-Man. Функція має повертати True, якщо Pac-Man зʼїв усі точки і не програв за аргументами, визначеними в частині 3.

win(False, True, False)
// -> False
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Gleam Exercism

Час розпочати Правила Pacman?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Gleam, а також 33 концепції122 вправи та справжнє наставництво від людей, і все це безкоштовно.