2-7. 계단 게임 만들기

【마인크래프트 활용】


1. 챕터 목표 알아보기

2. 계단 게임 만들기

1이번 챕터에서 배울 내용에 대해 알아보자

이번 챕터에서는 빌더를 이용하여 명령을 내리고 건축하는 방법을 학습하게 된다. 빌더는 에이전트와 비슷한 역할을 하지만 결정적으로 형태가 없다는 결정적인 특징을 가지고 있다. 형태가 존재하지 않기 때문에 에이전트처럼 장애물에 걸리는 등의 문제가 발생하지 않는다. 그러나 한편으로는 보이지 않기 때문에 더욱 정교한 코드 작성이 요구되기도 한다. 빌더는 에이전트와 마찬가지로 빌더만을 위한 별도의 코드 블록이 존재한다. 다양한 빌더 전용 블록들을 사용하여 간단한 게임을 만들고 친구와 함께 즐겨 보자.

2계단 게임을 만들어 보자

활동
1
빌더로 블록 소환하기

[활동목표]
메이크 코드를 이용해서 빌더로 블록 소환하기
[활동안내]
메이크 코드를 이용해서 계단 게임을 만드는 활동이다. 앞부분에 대한 융합적 사고력 및 응용력이 요구된다.
[활동]
1.마인크래프트 에듀케이션을 실행한다.
2.사용할 블록을 알아본다.
이미지. 빌더 텔레포트 (0,0,0) 블록
이미지. 블록 놓기 블록
3.보이지 않는 빌더로 블록을 소환해 보자.
이미지. 다음 채팅명령어를 입력하면:go 블록

① 채팅창에 ‘go’이라고 타이핑을 하면 블록이 소환되도록 만들어보자.

이미지. 다음 채팅명령어를 입력하면 go 블록, 빌더 텔레포트(0,0,0) 블록이 연결되어 있는 블록, 빌더 텔레포트 블록에 강조표시

② 먼저 빌더를 플레이어의 위치로 소환시켜야 한다.
[빌더] 블록에서
이미지.빌더 텔레포트 :(~0, ~0, ~0) 블록
블록을 좌표 (0, 0, 0)으로 코딩한다.

이미지. 다음 채팅명령어를 입력하면 go 블록, 빌더 텔레포트(0,0,0) 블록, 블록 놓기 황금블록 블록이 연결되어 있는 블록

③ 빌더가 위치한 자리에 ‘황금블럭’을 놓을 수 있도록 [빌더] 블럭에서
이미지. 블록놓기 황금블록
를 가지고 와 황금 블록을 놓을 수 있도록 바꾸어 준다.

이미지. 황금 블록이 놓여진 스크린샷

④ 채팅창에 ‘go’라고 타이핑을 하여 황금블럭이 제대로 나타나는지 확인해 보자.

4.소환할 블록의 위치를 바꾸어 보자.
5.빌더와 에이전트의 장단점에 대해 이야기 나누어 보자.
이미지. 빌더 소환하기 동영상의 스크린샷
[활동팁]

1.빌더는 눈에 보이지 않기 때문에 보통 코드 가장 윗부분에 특정한 장소(주로 플레이어)로 텔레포트 시켜 사용한다.
2.빌더와 에이전트를 사용하는 경우 과정에 차이에 대해 이해할 수 있도록 한다.

활동
2
조건문 사용하여 계단 쌓기

[활동목표]
조건문 사용하여 명령하기
[활동안내]
조건문을 활용하여 계단을 쌓아가는 명령문을 작성해 보자.
[활동]
1.마인크래프트 에듀케이션을 실행한다.
2.사용할 블록을 알아본다.
이미지. 블록 탐지, 잔디블록 위치(0,0,0) 블록
이미지. 빌더 이동 앞으로1 위로 1 왼쪽으로 1 블록
이미지. 만약(if) 참(true)이면(then) 실행 블록
이미지. 반복(repeat) 4회 실행 블록
3.조건문을 사용하는 방법을 알아보자.
4.조건문을 적용할 수 있는 다른 방법에 대해 이야기를 나누어보고, 친구들과 함께 새로운 조건문을 만들어 적용해보자.
이미지. 다음 채팅명령어를 입력하면:go 블록, 빌더 텔레포트(0,0,0) 블록, 반복(repeat) 100회 실행 블록이 연결되어 있는 블록

① 계단을 100개 쌓을 수 있도록 100회 반복하도록 코드를 작성한다.

이미지. 만약(if) 참(true)이면(then) 실행 블록

② 계단이 황금 블록을 밟았을 때만 새롭게 등장하게 만들어보자. 먼저 특정한 조건(황금블록을 밟았을 때)에만 작동해야 하므로 [논리] 블럭에서
이미지. 만약(if) 참(true)이면(then) 실행 블록
이 필요하다.


이미지. 블록 탐지:잔디블록 위치(0,0,0) 블록 이미지. 블록 탐지:황금블록 위치(0,-1,0) 블록

③ 다음으로 ‘내가 밟고 있는 블록이 황금인지 아닌지’를 판단해야 한다.[블록]에서
이미지. 블록 탐지:잔디블록 위치(0,0,0) 블록
를 그림처럼 바꾼다. 내 발 아래(0,-1, 0)에 황금 블록이 있는지를 탐지해주는 것을 의미한다.


이미지. 빌더 앞으로 1 위로 1 왼쪽으로 1 블록

④ 마지막으로 ‘조건이 만족되었을 때’ 빌더를 앞쪽으로 움직여주어야 계단형태가 만들어진다.[빌더] 블럭에서
이미지. 빌더 앞으로 1 위로 1 왼쪽으로 1 블록
블록을 가지고 온다.


이미지. 반복(repeat) 100회 실행 블록, 만약(if) 블록탐지 황금블록 위치(0,-1,0) 이면(then) 실행 블록, 빌더 이동 앞으로1 위로 1 왼쪽으로 1 블록, 블록 놓기 황금블록 블록이 연결되어 있다.

⑤ 완성된 코드는 위와 같다. 다시 한번 정리하자면 ‘황금 블록이 발아래(0, -1, 0)에 있다면 - 빌더는 앞으로 1 위로 1 왼쪽으로 1 움직여서 - 그곳에 황금 블록을 놓아라’라는 명령을 수행하게 된다. 100번 반복이니 100개가 만들어질 것이다.

이미지. 화면 안에 황금블록들이 계단처럼 놓여져 있는 스크린샷

⑥ 채팅창에 ‘go’를 타이핑하여 결과를 확인해보자. 계단이 끝도 없이 늘어져있는 모습이 보인다면 성공!

이미지. 조건문을 사용하여 계단 쌓기 동영상의 스크린샷
[활동팁]

1.조건문을 직접 만드는 것도 중요하지만 코드를 보고 해석하는 능력 또한 매우 중요하다. 조건문을 작성해본 후 친구들끼리 결과를 예측해보는 활동을 병행하여 컴퓨팅 사고력 함양을 도모할 수 있다.

활동
3
들쑥날쑥 계단

[활동목표]
메이크 코드를 이용해서 들쑥날쑥 계단 만들기
[활동안내]
메이크 코드를 이용해서 불규칙한 계단을 만드는 활동이다.
[활동]
1.마인크래프트 에듀케이션을 실행한다.
2.사용할 블록을 알아본다.
이미지. on item 삽 used 블록
이미지. 소환 animal를 위치(0,0,0) 블록
3.불규칙한 계단을 만들어 보자.
이미지. 빌더 앞으로 1 위로, 1과 블록놓기 황금블록, 일시중지 1000(ms)블록이 연결되어 있다.

① 이번에는 플레이어가 계단을 하나 밟을 때, 다음 계단이 나타나도록 속도를 조절해보자.[반복] 블럭에서
이미지. 일시중지 1000ms 블록
블록을 가지고 와서 1000으로 설정한다. 1000ms는 1초다.

이미지. 황금블록으로 만든 계단이 있는 스크린샷

② 채팅창에 ‘go‘를 타이핑하여 결과를 확인해보자. 계단이 천천히 나타난다.

이미지. 다음 채팅어를 입력하면 'go' 블록에 연결된 빌더 텔레포트: ~0,~0,~0 블록, 블록 놓기 블록이 있는 스크린샷.

③ 게임을 조금 복잡하게 하기위해 [계산] 블럭의
이미지. 0 부터 10까지의 정수 랜덤값 블록
블록을 사용해서 수정한다.

이미지. 빌더 이동 앞으로 1 위로 1 왼쪽으로 -1 부터 1 까지의 정수 랜덤값 블록

④ 계단이 왼쪽과 오른쪽으로 무작위로 나타나도록
이미지. 왼쪽으로 -1부터 1까지의 정수 랜덤값 블록
으로 바꾸어준다. 좌표 전체의 값을 바꾸는 것이 아니라면 이렇게
이미지. 점수 랜덤값 블록
을 사용하면 된다.

이미지. 황금블록으로 계단을 만든 화면의 스크린샷

⑤ 계단이 지그재그로 만들어지는 것을 확인할 수 있다.

이미지. 빌더 이동 앞으로 1 부터 2 까지의 정수 랜던값 위로 1 왼쪽으로 -1 부터 1 블록

⑥ 빌더를 앞쪽으로도 랜덤 값으로 움직이게 하면 어떻게 될까?

이미지. 멀리 떨어져있는 계단이 있는 스크린샷

⑦ 멀리 떨어져 있는 계단이 만들어졌다. 건너가려면 점프를 주의해서 해야 한다. 참고로 빌더를 위쪽으로는 랜덤 값을 하지 않아야 한다. 빌더가 2이상으로 위로 움직이게 되면 플레이어의 점프가 낮아서 다음 계단을 밟을 수가 없게 된다.

이미지. 계단 위에 캐릭터가 올라간 스크린샷

⑧ 내 발밑이 잘 보이지 않아 게임이 어렵다. 이럴 때는 키보드 위에 있는 F5키를 누르면 시점이 바뀌어 게임을 진행하기에 편리하다. 한 번 F5키를 누르고 계단을 다시 올라가보자.

4.방법에 익숙해지면 등장하는 블록의 종류를 2개로 늘려보고, 밟고 있는 블록의 종류에 따라 다른 방향, 패턴의 블록이 등장하도록 코드를 바꾸어 보자.
이미지. 계단 게임 동영상의 스크린샷
[활동팁]

1.좌우, 앞뒤는 2칸 떨어져도 점프로 건너갈 수 있으나, 위로 2칸 이상 떨어진 곳에 계단이 생성되어 버리면 점프로는 올라갈 수가 없게 되므로 위쪽으로 다음 계단이 2칸 이상 떨어지지 않게 생성되도록 한다.

활동
4
계단 게임 완성하기

[활동목표]
계단 게임 완성하기
[활동안내]
계단 게임을 완성도 있게 마무리하는 단계다.
[활동]
1.마인크래프트 에듀케이션을 실행한다.
2.사용할 블록을 알아본다.
이미지. 플레이어가 걷고 있으면 실행 블록
이미지. 채팅창에 말하기 hi 블록
3.플레이어의 높이를 알려주어 기록을 측정할 수 있도록 만들어 보자.
이미지. 플레이어가 떨어지고 있으면 실행 블록, 채팅창에 말하기 hi 블록이 연결되어 있는 블록

① 플레이어가 얼마나 높이 올라갔는지 알 수 있도록 높이를 표시하도록 해보자. [플레이어]에서
이미지. 플레이어가 걷고 있으면 실행 블록블록과 이미지. 채팅창에 말하기 hi 블록블록을 사용하여 왼쪽처럼 코드를 작성한다.


이미지. 연결한 문자열 hello, world 블록

② 플레이어가 자신의 높이를 이야기할 수 있도록[문자열]에서
이미지. 연결한 문자열 hello, world 블록
블록을 사용한다.

이미지. 플레이어가 떨어지고 있으면 실행 블록이 연결한 문자열 hello, world 블록에 연결되어 있는 블록

③ ‘hi’ 대신에 문자열 블록을 넣어준다.

이미지.연결한 문자열 : hello, world,  블록. + 버튼에 강조 표시

④ 블록의 오른쪽 끝에 있는 + 표시를 눌러 문자열 칸을 3개로 늘려보자.


이미지. 지금 위치는, world, 입니다 블록. 지금 위치는 과 입니다에 강조표시.

⑤ 문자열 첫 번째 칸에 ‘지금 위치는’, 세 번째 칸에는 ‘입니다’라고 작성해준다.

이미지. 플레이어 절대 좌표 블록

⑥ 플레이어의 현재 높이를 표시하려면[플레이어]블록에서
이미지. 플레이어 절대 좌표 블록
를 사용한다.


이미지. position 에서 다음 정보 얻기: x좌표(동쪽/서쪽)블록

⑦ 우리는 플레이어의 좌표 중 높이를 표시하는 부분만 필요하다. 따라서[위치]블록에 있는
이미지. position 에서 다음 정보 얻기: x좌표(동쪽/서쪽)블록
블록을 가지고 온다.


이미지. 플레이어 절대 좌표에서 다음 정보 얻기 x 좌표(동쪽/서쪽) 블록

⑧ 두 블록은 위와 같이 조립하여 사용한다. position이라고 쓰여 있는 부분에
이미지. 플레이어 절대 좌표 블록
블록을 넣어 준다.

이미지. x좌표(동쪽/서쪽) 블록의 옵션창에서 y좌표 (위쪽/아래쪽)이 선택되어 있다

⑨ 우리는 높이를 나타내는 y좌표만 필요하므로 y좌표를 선택해보자.

이미지.플레이어가 떨어져있으면 실행 블록,, 채팅창에 말하기 연결된 문자열 '지금 위치는' 플레이어 절대 좌표에서 다음 정보 얻기, y 좌표(위쪽, 아래쪽) 입니다. 블록이 연결되어 있다.

[플레이어의 y좌표]를 앞서 만든 ‘world’ 부분에 넣어서 코드를 완성시켜 보자.

이미지. 계단이 끝도 없이 있는 스크린샷.

⑪ 화면 왼편에 플레이어의 높이가 계속해서 변화하는 것이 나타나고 있는 것이 보인다면 완성!

4.상황에 따라 다양한 안내 메시지가 등장할 수 있도록 해보자
5.친구들과 게임을 바꾸어 해보며 자신의 게임을 더욱 발전시킬 수 있는 방법을 찾아보고 수정해보자.
이미지. 계단 게임 마무리 동영상의 스크린샷
[활동팁]

1.4가지의 큰 코드들이 하나하나 작성이 제대로 완성되어야 완성도 높은 게임이 될 수 있다. 학생들이 각각의 과정을 온전히 이해할 수 있도록 충분한 시간과 안내가 필요하다.
2.게임의 특성상 결과에 대한 집착으로 이어질 가능성이 있다. 아이들이 기록에 집착하기보다는 재미있는 게임으로 수정·보완해가는 데에 초점을 맞출 수 있도록 한다.