스크래치와 함께하는 프로그래밍 첫걸음_13장 ‘스크래치 보드게임’
'스크래치와 함께하는 프로그래밍 첫걸음' 열세 번째 시간입니다. 지난 시간엔 깜토와 친구들이 기차역까지 가는 과정을 프로그래밍으로 구현해봤는데요. 오늘은 주사위를 굴려 작동하는, 보다 정교한 보드게임을 만들어보려 합니다.
주사위 보드게임, 프로그래밍으로 만들어볼까?
지난 편에서 스크래치와 친구들은 프로그래밍 덕분에 시간에 맞춰 기차역에 도착할 수 있었는데요. 즉흥 여행인 만큼 가고 싶은 목적지도 모두 달라 어디로 떠나야 할지 쉬이 결정이 나질 않네요.
그런데 최근 사교성과 함께 프로그래밍 실력까지 부쩍 늘어난 깜토가 한 가지 제안을 내놨습니다. 프로그래밍으로 보드게임을 만들어 여행지를 정하잔 의견이었는데요. 깜토와 친구들은 과연 무사히 목적지를 정할 수 있을까요?
– 스프라이트와 무대 영역 불러오기
▲왼쪽 사진은 보드게임 무대의 모습, 오른쪽 사진은 스프라이트 영역의 모습입니다
우선 보드게임판이 있어야겠죠? 여기로 접속해서 다운로드한 파일의 압축을 풀면 ‘ch 13’ 폴더가 나오는데요. 스크래치 프로그램을 실행한 다음, 폴더 안에 있는 ‘BoardBameTemplate.sb’ 파일을 불러와주세요.
파일을 열면 보드게임 무대를 확인할 수 있습니다. 스프라이트 영역에 보이는 사각형들은 주사위를 던져 도착할 특정 장소를 나타내는 스프라이트입니다.
– ‘리스트’ 기능 활용하기
깜토의 스크립트를 확인하면 ‘여행길’이란 변수 리스트에 해변, 산 등 여러 장소가 추가된 걸 볼 수 있는데요. 이 장소는 모두 아까 스프라이트 영역에 추가됐던 사각형 스프라이트들의 이름입니다. 하트곰과 스크래치의 스크립트에도 같은 내용이 작성돼 있고요.
장소 스프라이트가 많기 때문에 ‘여행길’ 리스트란 하나의 변수에 저장해 사용하면 편리합니다. 단, 리스트나 변수에 스프라이트의 이름을 저장할 땐 문자 뒤에 빈칸이 있는지 여부를 꼭 확인해야 하는데요. 같은 단어라도 뒤에 공백이 있는 단어와 없는 단어는 서로 다른 정보로 인식되기 때문입니다.
– 캐릭터 스크립트 만들기 1
깜토가 리스트에 추가된 순서대로 보드판 위를 움직이도록 해볼게요. 우선 리스트 첫 번째 아이템의 값을 ‘위치’ 변수에 저장하는 블록부터 만드세요. 그런 다음, ‘위치’ 변수에 저장된 장소로 이동하는 블록을 만들어줍니다. 다음은 이동한 장소에 맞는 배경으로 바뀌도록 방송하는 블록을 넣으면 됩니다.
하트곰과 스크래치가 보드판에서 움직일 스크립트도 깜토 스크립트와 똑같은 방식으로 만들어주세요. 이때 각각 ‘하트곰 이동하기’ 방송과 ‘스크래치 이동하기’ 방송을 받는 블록도 잊지 말고 변경해주세요.
– 주사위 스크립트 만들기 1
주사위를 던지면 예측할 수 없는 숫자 하나가 나오는데요. 스크래치 프로그램에선 연산 팔레트의 ‘난수 블록’을 통해 예측할 수 없는 숫자를 나오게 할 수 있습니다.
‘주사위’ 변수에 난수 블록에서 나오는 수(1부터 6까지)를 저장하도록 블록을 만들어주세요. 이제 주사위를 클릭하면 1부터 6까지의 수가 무작위로 출력될 겁니다. 그리고 저장된 수와 주사위 스프라이트가 나타내는 수가 일치하도록 스크립트를 만들어주세요.
실제로 주사위가 굴러가는 모습을 표현하기 위해 ‘시계방향으로 45도 돌기’ 블록을 추가했습니다. 주사위가 좀 더 오래 굴러가도록 표현하려면 어떻게 해야 할까요? 주사위 변수에 6이나 12, 18 등 6의 배수를 더하면 됩니다. 주사위를 오래 굴리고 싶다면 높은 수를, 조금 굴리고 싶다면 낮은 수를 입력해주세요.
– 캐릭터 스크립트 만들기 2
이제 주사위가 나온 만큼 깜토가 이동하도록 스크립트를 만들어볼게요. 그전에 주사위 던질 순서를 정할 필요가 있는데요. 위 이미지는 스프라이트를 클릭했을 때 만약 순서가 정해진 상태라면 ‘이미 순서를 정했다’란 메시지를 출력하도록, 순서가 정해지지 않았다면 자신의 순서를 출력하도록 각각 블록을 구성한 모습입니다.
하트곰과 스크래치 스크립트도 똑같이 만들면 됩니다. 대신 하트곰 스크립트엔 ‘하트곰 클릭되었을 때’와 ‘하트곰 이동하기’를 넣고 스크래치 스크립트엔 ‘스크래치 클릭되었을 때’와 ‘스크래치 이동하기’를 넣어줘야겠죠?
– 주사위 스크립트 만들기 2
이제 주사위 스프라이트가 주사위 순서 리스트를 확인하면서, 리스트가 담고 있는 내용을 방송하는 블록을 추가할게요.
주사위가 클릭됐을 때 가장 먼저 작동해야 할 기능은 만약 주사위 순서 리스트의 크기가 3(무대에 등장하는 캐릭터 수)보다 작다면(즉, 세 친구 모두 클릭해서 순서를 정하지 않았다면) 주사위가 구르지 않도록 하는 겁니다. 다음으로 주사위 스프라이트가 45도 단위로 돌아가며 임의의 난수를 출력하는 블록을 넣으면 됩니다.
리스트에 담긴 아이템(데이터)을 꺼내는 건 컨베이어 벨트 위 자동으로 움직이는 상자에서 물건을 꺼내보는 것과 비교할 수 있습니다. 첫 번째로 도착한 상자 속 물건을 꺼내 확인하고, 그 다음엔 두 번째로 도착한 상자 속 물건을 꺼내 확인하고… 이런 과정을 반복하면 상자에 어떤 물건이 있는지 순서대로 확인할 수 있겠죠?
깜토와 친구들의 즐거운 여행은 한동안 쭉 이어질 예정인데요. 삼성전자 뉴스룸 독자들도 겨울을 맞아 여행을 떠나보는 건 어떠신가요? 프로그래밍 세상으로 떠날 수 있는 특별한 경품과 함께 깜짝 이벤트를 준비했습니다. 다양한 개성을 지닌 프로그래밍 세상 속 친구 중 여러분의 성격과 꼭 맞는 캐릭터를 하나 콕 집어주세요!
이벤트 참여하기
이벤트 경품 발송 및 연락 이외의 >용도로는 절대 사용되지 않습니다.
*표시는 필수입력사항 입니다.
투모로우 기획 ‘스크래치와 함께하는 프로그래밍 첫걸음’ 이전 콘텐츠는 아래 링크에서 확인하실 수 있습니다
☞[스크래치와 함께하는 프로그래밍 첫걸음] 특별한 모험에 여러분을 초대합니다
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 1_'스크래치'를 소개합니다
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 2_깜토에게 춤을!
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 3_숲 속의 친구 찾기!
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 4_깜토에게 여행을!
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 5_깜토의 연극 감상!
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 6_스크래치네 찾아가기
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 7_장애물 넘어 길 찾기!
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 8_마법 모자를 잡아라!
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 9_깜토의 초대장
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 10_깜토의 꽃밭 꾸미기
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 11_초콜릿 골고루 올리기
☞[스크래치와 함께하는 프로그래밍 첫걸음] Chapter 12_기차 시간을 지키자!
삼성전자 뉴스룸의 직접 제작한 기사와 이미지는 누구나 자유롭게 사용하실 수 있습니다.
그러나 삼성전자 뉴스룸이 제공받은 일부 기사와 이미지는 사용에 제한이 있습니다.
<삼성전자 뉴스룸 콘텐츠 이용에 대한 안내 바로가기>