d라이브러리









[스티브코딩쌤 - 마인크래프트] 건축가 ‘빌더’로 더 멋지게, 화려하게!

 

 

'배열’은 자료를 저장하는 방법 중 하나예요. 하나의 자료만 저장하는 ‘변수’와 달리 배열은 많은 자료를 한 곳에 저장할 수 있지요. 오늘은 배열의 기본적인 사용법을 알고 게임 속에 적용하는 사례도 알아볼게요. 

 

첫 번째 배열의 사용법을 익혀라!

한 단어를 이루는 문자들을 하나씩 배열에 저장하고, 배열에 있는 글자들을 하나씩 불러와 볼게요. 

 

 

➊ 코드작성기에서 ‘시작하면 실행’ 명령블록을 가져오세요.
➋ ‘고급-배열’에서 ‘문자열 리스트에 저장’ 명령블록을 가져오세요. 
➌ ‘+’ 버튼을 눌러 저장 공간을 추가한 뒤 apple의 철자를 순서대로 입력하세요. 문자열 리스트에 a, p, p, l, e 5개의 문자가 저장돼요.

 

 


➍ 채팅명령어 ‘1’로 약속한 뒤 ‘+’ 버튼을 눌러 변수 ‘num1’을 추가하세요.
➎ ‘채팅창에 말하기’ 명령블록을 가져오세요. 
➏ ‘고급-배열’에서 ‘리스트에서 ◯ 번째 위치의 값’ 명령블록을 가져오세요.
➐ ‘리스트’를 ‘문자열 리스트’로 바꾸고 ‘변수’에서 변수 ‘num1’을 위치 값에 넣으세요.
➑ 코드 시작 버튼을 누르고 Alt+Tab을 눌러 마인크래프트로 돌아가 채팅명령어 ‘1 1’을 실행하세요. 변수 num1의 값을 1로 입력했으므로 배열의 첫 번째 값인 a가 나와야 할 것 같지만 두 번째 값인 p가 나와요. 이것은 배열의 위치 값이 1이 아니라 0부터 시작하기 때문이에요. 
➒ 채팅명령어 ‘1 0’을 실행하세요. apple의 첫 번째 글자인 a가 나오는 것을 확인하세요.  

 

 

잠깐!배열과 리스트는 같은 것인가요?
프로그래밍 언어는 대부분 배열(Array)과 리스트(List)를 구분해서 사용해요. 그러나 마인크래프트 코드작성기에서는 구분없이 사용하고 있어서 같은 의미로 생각해도 괜찮아요. 마인크래프트에서 배열의 위치 값이 0부터 시작한다는 걸 꼭 잊지 마세요!

 

 

두 번째 배열에 저장된 자료를 무작위로 뽑자!
이번에는 반복 기능을 이용해서 배열에 쉽게 자료를 저장하고 무작위로 자료를 불러오는 방법을 알아볼게요.

 


➊ 코드작성기에서 앞서 작성했던 ‘시작하면 실행’ 명령블록을 지우고 다시 가져오세요.
➋ ‘변수-변수 만들기’를 눌러 변수 ‘글자’를 만들어 주세요.
➌ ‘변수-글자에 저장’ 명령블록을 가져오세요. 
➍ ‘배열-빈 배열’ 명령블록을 변수 ‘글자’의 값에 넣으세요.
➎ ‘반복-반복(for)’ 명령블록을 가져온 뒤 반복 값을 4로 바꾸세요. 여기서 반복 횟수는 저장할 글자 수를 의미해요.
➏ ‘배열-리스트의 마지막 위치에 추가’ 명령블록을 가져온 뒤 ‘리스트’를 ‘글자’로 바꾸세요.
➐ ‘문자열-this에서 ◯ 번째 위치의 1개 문자’ 명령블록을 가져온 뒤 ‘문자열’을 ‘apple’로 바꾸고 위치 값에 변수 ‘index’를 넣으세요. 이는 ‘apple’의 5개 글자를 배열 글자에 넣는 명령이에요. 

 

 

 

➑ 채팅명령어를 ‘2’로 약속하고 ‘+’를 눌러 변수 ‘num1’을 추가하세요. num1은 배열에서 몇 번째 글자를 불러올지 정하는 변수로 활용될 거예요.
➒ ‘채팅창에 말하기’ 명령블록을 가져오세요. 
➓ ‘문자열-연결한 문자열’을 가져온 뒤 ‘+’를 눌러 문자열을 추가하세요. 
11 첫 번째 문자열에는 변수 ‘num1’을 넣고, 두 번째 문자열에는 ‘번째 글자: ’를 쓰세요.
12 마지막 문자열에는 ‘배열-리스트에서 ◯ 번째 위치의 값’ 명령블록을 가져온 뒤 그림과 같이 코드를 작성하세요. 변수 ‘num1’에서 1을 뺀 이유는 배열에서 첫 번째 자료의 위치 값이 0이기 때문이에요. 
13 코드 시작 버튼을 누르고 Alt+Tab을 눌러 마인크래프트로 돌아가 첫 번째 글자를 표시하는 채팅명령어 ‘2 1’을 실행하세요. 배열에서 위치 값이 0인 a가 채팅창에 표시돼요.  

 

 

14 채팅명령어를 ‘3’으로 약속하세요.
15 ‘게임플레이-메시지 보여주기’ 명령블록을 가져와 대상을 모든 플레이어로 바꾸세요.
16 ‘배열-리스트에서 ◯ 번째 위치의 값 삭제’ 명령블록을 진한 글자 값에 넣으세요. 
17 ‘리스트’를 ‘글자’로 바꾸고 ‘계산-정수 랜덤값’ 명령블록을 가져와 위치 값에 넣으세요.

 

 

 

18 ‘계산-빼기’ 명령블록을 가져와 그림과 같이 코드를 작성하세요.
19 ‘배열-리스트의 길이’ 명령블록을 넣은 뒤 ‘리스트’를 ‘글자’로 바꾸세요. 
20 ‘채팅창에 말하기’ 명령블록과 ‘연결한 문자열’ 명령블록을 가져와 그림과 같이 코드를 작성하세요. 
 코드 시작 버튼을 누르고 Alt+Tab을 눌러 마인크래프트로 돌아가 채팅명령어 ‘3’을 실행하세요. ‘apple’ 중 임의의 글자를 화면에 보여주고 남은 글자 수는 4개라고 채팅창에 떠요. 다시 채팅명령어 ‘3’을 실행하면 아까 나온 글자를 제외한 임의의 글자를 화면에 보여주고 이제 남은 글자 수는 3개라고 채팅창에 떠요. 마지막 글자를 보여줄 때까지 채팅명령어를 실행해 보세요. 
 

 

 

잠깐!‘리스트에서 ◯ 번째 위치의 값’ 명령블록과 ‘리스트에서 ◯ 번째 위치의 값 삭제’ 명령블록의 차이점이 무엇이죠?


‘위치의 값’ 명령블록은 값을 불러오더라도 배열에 그 값이 남아 있어요. 그러나 ‘위치의 값 삭제’ 명령블록은 배열에서 값을 불러오면 그 값이 삭제돼요. 배열에서 값이 삭제되면 배열의 크기도 작아집니다. 만약 배열의 모든 값이 삭제되었다면 불러올 수 있는 값은 없기 때문에 undefined(약속되지 않음)이라는 메시지가 나와요.

 

 

세 번째 배열에 아이템과 몹 저장하고 불러오기 

배열에는 숫자와 문자만이 아니라 마인크래프트의 엔티티나 블록, 아이템도 저장할 수 있어요. 

 

 

 
➊ 채팅명령어를 ‘4’로 약속하세요.
➋ ‘변수-변수 만들기’를 눌러 변수 ‘몬스터’를 만드세요.
➌ ‘배열-리스트에 저장’을 가져온 뒤 ‘리스트’를 ‘몬스터’로 바꾸세요. 
➍ ‘몹-몬스터’ 명령블록을 가져와 그림과 같이 배열 값에 넣은 뒤 자신이 원하는 몬스터로 바꾸세요.
➎ ‘반복’ 명령블록을 가져온 뒤 반복 횟수를 4회로 바꾸세요. 반복 횟수는 소환할 몬스터의 수를 의미해요. 
➏ ‘몹-소환 위치’ 명령블록을 가져오세요.
➐ ‘배열-리스트에서 임의의 값을 가져옵니다’ 명령블록을 가져온 뒤 ‘리스트’를 ‘몬스터’로 바꾸세요. 
➑ 코드 시작 버튼을 누르고 Alt+Tab을 눌러 마인크래프트로 돌아가 채팅명령어 ‘4’를 실행하세요. 몬스터 배열에서 임의의 값을 선택하여 소환해요.

 

 

 

➒ 채팅명령어를 ‘5’로 약속하세요.
➓ ‘변수-변수 만들기’를 눌러 변수 ‘보상’을 만드세요.
11 ‘배열-리스트에 저장’ 명령블록을 가져온 뒤 ‘리스트’를 ‘보상’으로 바꾸세요. 
12 ‘블록-아이템’ 명령블록을 가져와 그림과 같이 배열 값에 넣은 뒤 자신이 원하는 아이템으로 바꾸세요.
13 ‘몹-블록이나 아이템 주기’ 명령블록을 가져온 뒤 대상을 자기 자신으로 바꾸세요. 
14 ‘배열-리스트에서 임의의 값을 가져옵니다’ 명령블록을 ‘블록이나 아이템’ 값에 넣은 뒤 ‘리스트’를 ‘보상’으로 바꾸세요.
15 코드 시작 버튼을 누르고 Alt+Tab을 눌러 마인크래프트로 돌아가 채팅명령어 ‘5’를 실행하세요. 보상 배열에서 임의의 값을 선택하여 플레이어에게 보상으로 줍니다. 
 

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

2021년 22호 어린이과학동아 정보

  • 이상민 교사,크리에이터
  • 에디터

    이다솔 기자 기자

🎓️ 진로 추천

  • 컴퓨터공학
  • 소프트웨어공학
  • 게임공학
이 기사를 읽은 분이 본
다른 인기기사는?