트랙
/
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이 유령을 먹을 수 있는지에 대한 불리언 값을 반환해요. Pac-Man이 파워 펠릿을 활성화한 상태에서 유령에 닿아 있을 때만 True를 반환해야 해요.

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이 점을 모두 먹었고 3번에서 정의한 인자들에 따라 지지 않았으면 True를 반환해야 해요.

win(False, True, False)
// -> False
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Gleam Exercism

팩맨 규칙 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Gleam 트랙을 개념 33개연습 문제 122개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.