‘마인크래프트’ 이름 속 ‘마인(mine)’은 광산이라는 뜻이에요. 마인크래프트에서 광물을 채굴하는 것이 매우 중요하기 때문에 이런 이름이 붙었지요. 이번 시간에는 다양한 광물을 빨리 찾아야 하는 게임을 만들어 볼게요. 플레이어가 찾아야 하는 광물이 무엇인지 알려주고, 플레이어가 해당 광물을 찾아 채굴하면 점수를 얻는 게임이에요.
첫 번째 광물 정보 저장 코드
‘광물들’이라는 변수를 만들어 플레이어가 찾아야 할 광물을 모두 저장해 볼게요.
➊ 코드 작성기에서 ‘반복-시작하면 실행’ 명령블록을 가져오세요.
➋ ‘변수-변수 만들기’를 눌러 ‘광물들’이라는 이름의 변수를 만드세요.
➌ ‘배열-문자열 리스트에 저장’ 명령블록을 가져온 뒤 변수를 ‘광물들’로 바꾸고 화면과 같이 광물의 이름을 넣으세요.
두 번째 광물 확인 코드
게임에서 문제로 나온 광물을 플레이어가 채굴하면 정답이 맞는지 알려주고 점수를 주는 코드를 작성할게요.
➊ ‘블록-블록이 깨지면 실행’ 명령블록을 가져와 블록 값을 ‘다이아몬드’로 바꾸세요.
➋ ‘논리-만약(if)’ 명령블록을 가져오세요.
➌ ‘변수-변수 만들기’에서 ‘찾을광물’이라는 이름의 변수를 만드세요.
➍ ‘논리-등호’, ‘변수-찾을광물’, ‘문자열-’ 명령블록을 가져와 화면과 같이 조건식을 작성하세요. 문자열을 넣을 수 있는 명령블록(
)을 넣어야만 ‘다이아몬드’라고 입력할 수 있어요.
➎ ‘플레이어-채팅창에 말하기’ 명령블록, ‘변수-찾을광물’, ‘문자열-연결한 문자열’ 명령블록을 가져와 화면과 같이 작성하세요.
➏ ‘변수-변수 만들기’를 눌러 ‘점수’라는 이름의 변수를 만들고 ‘변수 값 1 증가’ 명령블록을 가져오세요.
➐ ‘변수-변수 만들기’를 눌러 ‘찾는중’이라는 이름의 변수를 만들고 ‘변수에 저장’ 명령블록을 가져오세요.
➑ ‘논리-거짓’ 명령블록을 가져와 변수 ‘찾는중’을 거짓으로 약속하세요.
➒ ‘플레이어-다음 채팅명령어를 실행’ 명령블록을 가져와 채팅명령어를 ‘1’로 약속하세요. 채팅명령어 1을 눌렀을 때 실행할 코드는 잠시 후 작성할 거예요.
➓ 같은 방법으로 금광석, 철광석, 석탄광석을 찾았을 때 실행하는 코드를 작성하세요.
잠깐! 변수 ‘찾는중’은 어떤 역할을 하죠?
변수의 값을 참 혹은 거짓으로도 약속할 수 있어요. 여기서 변수 ‘찾는중’의 값이 참이면 플레이어가 아직 블록을 찾지 못했다는 뜻이고, 거짓이면 플레이어가 블록을 찾았다는 뜻이에요. 앞에서는 플레이어가 문제로 나온 블록을 채굴하면 변수 ‘찾는중’의 값이 거짓이 되면서 다음에 찾을 블록을 알려주도록 코딩을 했지요. 그러면 다시 변수 ‘찾는중’은 참이 돼요. 이렇게 변수를 이용해서 게임 진행 상황을 조정할 수 있답니다.
세 번째 게임 진행 코드
플레이어가 어떤 광물을 찾아야 할지 문제를 내고 제한 시간이 끝나면 게임을 종료하는 코드를 작성할게요.
➊ 채팅명령어를 ‘1’로 약속하세요.
➋ ‘변수-변수 만들기’를 눌러 ‘찾을광물’이라는 이름의 변수를 만드세요.
➌ ‘변수-‘찾을광물’ 변수 저장’, ‘변수-변수 ‘광물들’’, ‘배열-임의의 값을 가져옵니다’ 명령블록을 가져와 화면과 같이 코드를 작성하세요. 배열 ‘광물들’에서 무작위로 하나의 값을 가져와 변수 ‘찾을광물’에 저장하는 명령이에요.
➍ ‘게임플레이-메시지 보여주기’, ‘변수-변수 ‘찾을광물’’ 명령블록을 가져와 화면과 같이 코드를 작성하세요.
➎ ‘변수-‘찾는중’ 변수 저장’, ‘논리-참’ 명령블록을 가져와 변수 ‘찾는중’을 참으로 저장하세요.
➏ ‘변수-변수 만들기’를 눌러 ‘시간’이라는 이름의 변수를 만든 뒤 ‘변수 저장’ 명령블록을 가져와 변숫값을 ‘60’으로 저장하세요. 이 변숫값은 플레이어에게 주어진 제한 시간이에요.
➐ ‘반복-반복(while)’ 명령블록을 가져온 뒤 조건식에 변수 ‘찾는중’을 넣으세요. 변수 ‘찾는중’이 참인 동안 계속해서 아래 코드를 반복하는 명령이에요.
➑ ‘반복-일시중지’ 명령블록을 가져와 값을 ‘1000’으로 바꾸세요.
➒ ‘변수-시간 값 증가’를 가져와 증가 값을 ‘-1’로 바꾸세요.
➓ ‘논리-만약(if)’, ‘논리-등호’, ‘변수-변수 ‘시간’’, ‘계산-나머지(mod)’ 명령블록을 가져와 화면과 같이 코드를 작성하세요. 10초, 20초 등 시간 값이 10의 배수일 때 아래 코드를 실행하도록 하는 명령이에요.
11 ‘플레이어-채팅창에 말하기’, ‘문자열-연결한 문자열’ 명령블록, ‘변수-변수 ‘시간’’ 명령블록을 가져와 화면과 같이 코드를 작성하세요. 시간 값이 10의 배수일 때마다 남은 시간을 보여줘요.
12 ‘논리-만약(if)’, ‘논리-등호’ 명령블록, ‘변수-변수 ‘시간’’을 가져와 화면과 같이 코드를 작성하세요. 제한 시간이 다 지났을 때 실행되는 조건문이에요.
13 ‘게임 플레이-메시지 보여주기’, ‘문자열-연결한 문자열’ 명령블록과 ‘변수-변수 ‘점수’’를 가져와 화면과 같이 코드를 작성하세요. 제한 시간이 다 지나 게임이 종료될 때 점수를 알려주는 코드예요.
14 ‘변수-‘찾는중’ 변수 저장’, ‘논리-거짓’ 명령블록을 가져와 화면과 같이 코드를 작성하세요. 변수 ‘찾는중’ 값을 ‘거짓’으로 저장해 더 이상 반복문(while)이 반복되지 않도록 해요.
15 코드 시작 버튼을 누르고 ‘Alt+Tab’을 눌러 마인크래프트로 돌아가 채팅명령어 ‘1’을 실행하세요. 화면에 문제로 나오는 광물을 확인한 뒤 해당 광물을 찾아서 채굴하세요. 제한 시간이 다 되면 점수를 알려주고 게임이 끝나요.
잠깐! 광물을 더 추가해 볼까요?
배열 ‘광물들’에 광물의 이름을 추가하고 ‘블록이 깨지면 실행’ 명령블록을 가져와 같은 방법으로 코드를 작성하세요. 광물들이 늘어나 찾기가 어렵다면 변수 ‘시간’의 값을 ‘60’에서 더 큰 값으로 바꾸는 것도 좋아요.
그동안 ‘스티브코딩쌤-마인크래프트’를 사랑해주셔서 감사합니다.