04 4 강 - 청기 / 적기 게임 만들기
스위치로 청색 / 적색 맞추기
이번 강의를 끝으로 청기 / 적기 게임의 첫 번째 완성형을 만들게 됩니다. 전 강의에서는 사용하지 않았던 두 개의 버튼 스위치를 위한 세팅을 하고, 정답을 맞히는 코드를 작성합니다. loop 속의 코드는 한 번의 게임입니다. 실제로는 무한 반복하기 때문에 계속해서 게임을 하게 되겠죠.
주어진 코드의 동작 과정은 다음과 같습니다.
- 먼저 두 개의 변수를 추가합니다. 이는 스위치의 핀 번호를 담을 변수입니다.
- 적기 때 누를 버튼을 7번, 청기 때 누를 버튼을 6번으로 할당합니다.
- setup 에 두 버튼을
INPUT_PULLUP
으로 설정합니다. - 먼저
rand, clicked, right
변수 세 가지를 정하고 초기화시킵니다. loop 함수 안의 코드는 한 게임이 기준이기 때문입니다. rand
변수에는 홀수(1), 짝수(0)가 담기게 되며 이번 게임이 청기, 적기인지 상태를 저장하기 위함입니다. 이 변수는 청기 / 적기를 켤 때와 정답을 맞힐 때 사용됩니다.clicked
는 버튼이 눌렸는지 눌리지 않았는지는 확인하는 변수로 0은 눌리지 않음. 1을 눌림으로 정했습니다.right
는 정답을 맞혔는지를 확인하는 것으로 마지막까지right
변수의 값이 0이라면 오답. 1이라면 정답이 됩니다.- 버튼이 클릭 되기 전까지
while
문이 무한 반복됩니다. - 청기 버튼, 적기 버튼을 누르면
clicked
변수의 값이 1로 바뀌며while
문을 빠져나오게 되며, 난수의 값과 비교하여 정답을 맞췄는지, 틀렸는지를 판별합니다. 맞췄을 경우right
변수의 값은 1로 변하게 됩니다. - 이제 사용자가 정답을 맞혔는지 알 수 있으므로. 정답 여부에 따라 녹색 LED를 통해 정답 또는 오답을 표현한 후, 한 게임이 종료되게 됩니다.
loop
함수는 무한 반복되기 때문에 다시 새로운 게임이 시작되게 됩니다.