6주차 반응 속도 게임(블록코딩)

From Arduwiki

6주차에서 우리는 도트 매트릭스와 버튼을 이용해 반응 속도 게임기를 만들어 볼 것 입니다.

반응 속도 게임기는 두 사람이 함께 하는 게임입니다.

도트 매트릭스에 "O" 모양이 뜨는 순간 버튼을 누르고 먼저 누른 사람 쪽으로 화살표 모양을 출력하는 게임입니다.

누가 반응 속도가 더 빠른지 게임을 통해 확인해봅시다!

1. 도트 매트릭스로 동그라미, 화살표 모양 출력하기

1-1. [실습] 동그라미 모양 출력하는 함수 만들기

우리는 저번 시간 도트 매트릭스를 이용해 다양한 모양을 출력해보았습니다.

일단 도트 매트릭스에 동그라미 모양을 출력하는 함수를 만들고 실행해봅시다.

프레임없음|438x438픽셀

"O" 모양은 쉽게 위의 블록을 이용해 출력해봅시다!

1-2. [실습] 왼쪽 화살표 만들기

왼쪽 화살표 모양을 출력하는 정의블록을 만들어봅시다.


단, 도트매트릭스가 세로로 조립되어야하기 때문에 아래 사진처럼 도트매트릭스를 두고 동그라미 모양을 출력하도록 만들어봅시다.

프레임없음|778x778픽셀

프레임없음|298x298픽셀


위의 그림을 보고 왼쪽 화살표로 표시할 부분 LED를 ON시켜 왼쪽 화살표 모양이 표시될 수 있도록 코딩해봅시다.

1-3. [실습] 오른쪽 화살표 만들기

위의 1-2 실습을 참고하여 오른쪽 화살표를 출력하는 함수도 만들어 실행해봅시다.

2. 난수 블록 사용하기

아두이노에서 난수 블록 "[ ] 부터 [ ] 사이 임의의 수" 블록을 사용해봅시다.

난수 블록을 사용하는 이유는 동그라미 모양을 무작위 시간에 띄울 수 있도록 코딩하기 위함입니다.

"[min] 부터 [max] 사이 임의의 수" 으로 사용할 수 있으며 (min ~ max) 사이의 값을 랜덤으로 얻을 수 있습니다.

예를 들어, "[1] 부터 [10] 사이 임의의 수" 라면 1~10 사이의 랜덤 값를 반환할 수 있습니다.

2-1. 임의의 초만큼 기다렸다가 LED 켜기

난수 블록을 이용해 그 값을 출력하고 그만큼 "기다리기" 블록을 이용해 코드 진행을 지연시켜 봅시다.

없음|섬네일|0.5초~5초 사이 임의의 시간을 기다기다가 아두이노 [L] 옆의 LED를 켜게 만들기


2-2. 난수 블록을 이용해 동그라미 모양 출력하기

이번에는 그럼 랜덤 시간으로 동그라미 모양을 출력하는 코드를 작성해 봅시다.

동그라미 모양은 1초만 켜고 0.5~3초 사이 랜덤의 시간 동안 도트 매트릭스가 꺼졌다가 다시 동그라미를 출력하는 프로그램을 작성해봅시다.

프레임없음|444x444픽셀

(동그라미 모양은 다를 수 있어요!)

3. "[ ] 이(가) 참일 때까지 기다리기" 블록과 작품 완성하기

3-1. [ ] 이(가) 참일 때까지 기다리기

"[ ] 이(가) 참일 때까지 기다리기" 블록에 대해서 배워봅시다.

프레임없음

위 블록은 조건이 "참"이 될 때까지 기다리는 블록입니다.

위 블록 아래에 있는 코드는 [조건]이 "참"이 될 때까지 실행되지 않습니다. [조건]이 참이 되는 순간 아래로 내려가 아래의 코드가 순차적으로 실행됩니다.

3-2. 버튼이 입력될 때까지 기다리기

프레임없음|813x813픽셀

반응 속도 게임기를 만들기 위해서는 "[ ] 이(가) 참일 때까지 기다리기"과 버튼 관련 블록을 함께 사용해야 합니다.

난수를 이용해 랜덤의 시간을 기다린 후 "O" 모양이 도트 매트릭스에 출력되면 두 명의 사람 중 먼저 버튼을 누른 사람이 승리하는 게임입니다.

"O" 모양을 출력한 후 2개의 버튼 중 하나의 버튼이라도 눌릴 때까지 기다리다가 버튼이 눌리는 순간 아래로 내려가 어떤 사람이 승리했는지 확인하는 코드를 작성하면 됩니다.

3-3. [실습] 반응 속도 게임기 프로그램 완성하기.

자. 이제 배운 문법을 이용해 반응 속도 게임기 프로그램을 완성해봅시다.

  1. 도트 매트릭스의 LED를 "스마일" 모양으로 출력해주세요.
  2. 1~5초 사이 무작위 시간을 기다리다가 "O" 모양이 도트 매트릭스에 출력되게 만들어주세요.
  3. "[ ] 이(가) 참일 때까지 기다리기" 블록을 이용해 버튼 2개 중 어떤 버튼이 눌릴 때까지 기다리도록 만들어주세요.
    1. 만약 두 버튼 중 하나라도 버튼이 눌렸다면 도트 매트릭스의 LED 전체를 끄고 아래 코드가 실행됩니다.
    2. 왼쪽 버튼이 눌린다면 "왼쪽 화살표" 모양을 도트 매트릭스에 출력한 후 1초 기다립니다.
    3. 오른쪽 버튼이 눌린다면 "오른쪽 화살표" 모양을 도트 매트릭스에 출력한 후 1초 기다립니다.
  4. 위의 과정을 반복합니다.


프레임없음|717x717픽셀

실습 참고하기

1-1. [실습] 동그라미 모양 출력하는 함수 만들기

프레임없음

1-2. [실습] 왼쪽 화살표 만들기

프레임없음|929x929픽셀

1-3. [실습] 오른쪽 화살표 만들기

프레임없음|916x916픽셀

3-3. [실습] 반응 속도 게임기 프로그램 완성하기.

프레임없음|863x863픽셀프레임없음

프레임없음

프레임없음