기술자료

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

스크래치 프로그래밍 맛보기 : 숫자 요리사

기술자료
DBMS별 분류
Etc
작성자
dataonair
작성일
2016-01-25 00:00
조회
3471



스크래치 프로그래밍 맛보기

숫자 요리사



스크래치는 MIT 대학교에서 2007년에 만든 교육용 프로그래밍 언어다. 다른 프로그래밍 언어와 달리 마치 레고 블록을 쌓듯 프로그램을 만들 수 있어 배우기 쉽다. 스크래치 홈페이지(scratch.mit.edu)에서 직접 프로그램을 만들 수 있고, 오프라인 버전을 다운로드 받아 사용할 수도 있다.



올해 여름에 ‘제 1회 주니어 소프트웨어 창작대회’가 열린다는 소식을 들었다. 이 대회는 삼성전자와 미래창조과학부가 주최하고 교육부가 후원하는 대회다. 주제는 ‘가족을 위한 소프트웨어’였는데, 마침 내가 만들던 게임이 할머니와 사촌동생을 위한 프로그램이라 나도 지원했다. 초·중·고교 모두 합해서 1000팀이 넘게 지원했는데, 이 중 60팀이 선발돼 9월에 1박2일로 부트캠프를 다녀왔다. 10월에는 최종 프레젠테이션 발표도 했다. 내가 만든 “숫자 요리사” 게임이 초등 일반소프트웨어(SW) 부문에서 최우수상을 받게 돼 지난 11월 13일에 시상식에도 참가했다. 이번 글에서는 내가 이 게임을 만든 동기와 진행과정을 설명하겠다.



숫자 요리사 게임은

숫자 요리사는 아이들부터 할아버지, 할머니까지 온 가족이 함께 즐길 수 있는 재미있고 유익한 교육용 게임이다. 귀엽고 친근한 숫자 요리사가 등장해 숫자가 적힌 재료로 손님이 주문한 번호의 김밥을 만든다. 세 가지 난이도 게임을 통해 사용자는 김밥을 만들고 돈을 벌면서 자연스럽게 연산 능력도 좋아지고 두뇌도 계발된다.

김밥 재료는 모두 아홉가지가 있고 재료마다 숫자 번호가 붙어있다. 손님이 주문을 하면 테이블에 놓여있는 재료를 사용해 주문한 번호에 맞는 김밥을 만든다. 제대로 만들었으면 사용한 재료의 개수에 따라 돈을 벌게 되지만, 틀리게 만들었거나 제한시간 안에 만들지 못하면 돈을 받을 수 없다.

<그림 1>에서는 테이블 위에 단무지(1번), 당근(3번), 치즈(7번), 오이(8번)가 놓여 있고, 손님이 “21번 김밥주세요”라는 주문을 했다. 요리사는 3×7(당근과 치즈 사용) 또는 13+8(단무지, 당근, 오이 사용)과 같은 방법으로 21번 김밥을 만들 수 있다. 만약 3×7로 김밥을 만들었다면 재료를 2개만 사용했기 때문에 2000원을 벌게 되고, 13+8의 경우는 재료를 세 개 사용했으므로 3000원을 벌게 된다.



tech_img4266.png

개발 동기

숫자 요리사 게임을 처음 생각한 것은 1학년 수학시간에 더하기, 빼기를 배울 때였다. 교과서에 나온 ‘1+2=’ 같은 형태의 문제만 계속 풀며 지루함을 느끼던 중, 문득 거꾸로 답을 알려준 다음 그 답을 만들 수 있는 식을 알아맞히는 게임을 만들면 재미있지 않을까라는 생각이 들었다. 하지만 내가 원하는 게임을 만들기에는 그 당시의 실력이 부족해서 나중에 만들기로 했다.

스크래치 프로그래밍 실력이 점점 쌓여감에 따라 숫자 요리사 게임을 조금씩 만들기 시작했다. 만들면서 수를 이용한 게임은 수학공부에도 도움이 될 것이라고 생각을 했다. 그리고 할머니께서 기억력이 안 좋으신데, 머리를 많이 사용해야 하는 게임을 만든다면 치매 예방에도 도움이 될 것이라고 생각했다. 그래서 숫자 요리사 게임을 만들게 됐다.



스토리 추가

처음 만든 버전은 단순하게 숫자와 연산자만 나오는 게임이었다. 다 만들고 나서 가족들에게 보여주었는데, 수학 공부에 도움은 되지만 너무 숫자만 나와서 지루해 보인다고 했다. 어떻게 하면 더 재미있게 만들 수 있을까 생각을 많이 해 봤다. 그러던 어느 날 김밥을 싸다가 김, 단무지, 오이, 당근, 밥 등 여러 가지 재료가 말아져 김밥이 된다는 아이디어가 생각났다. 이 아이디어를 다시 프로그램으로 만든 것이 숫자 요리사 게임이다. 요리사가 숫자 재료를 사용해 김밥을 만든다는 스토리로 게임을 만드니 훨씬 재밌어졌다. 게임 스토리에 맞추어 김밥 재료와 같은 그림을 하나씩 그려 넣을 때마다 점점 더 멋진 게임이 됐다. 가족들은 게임이 재미있다면서 누가 돈을 더 많이 버는지 시합을 하기도 했다.



그림 그리기

김밥을 만들어 판다는 스토리에 맞춰 필요한 그림을 스크래치로 그렸다. 스크래치 안에는 그래픽 에디터가 있어서 필요한 그림을 쉽게 그릴 수 있다. 숫자 요리사에 필요한 그림은 요리사, 1~9번까지의 숫자 재료, 더하기, 빼기, 곱하기의 연산자, 등호, 김밥 그림, 김밥 싸는 대나무 발 등 꽤 많다.

tech_img4267.png

이 중에서 숫자 요리사는 스크래치에 포함돼어 있는 ‘Nano’ 캐릭터에 요리사 모자와 앞치마를 그려서 만들었다. 그 외의 그림은 모두 처음부터 새로 만들었다. 이 중에서 3번 당근을 예로 들어 단계별로 스크래치로 그림 그리는 방법은 <표 1>과 같다. <그림 3>의 왼쪽 그림은 ‘당근1’ 모양 그림인데, 숫자 재료로 사용되고 있다. 오른쪽 그림은 ‘당근2’ 모양의 그림으로 ‘채 썬 당근’이 밥 위에 올라갈 때 사용된다. 다른 그림들도 당근을 그린 것처럼 원이나 사각형을 그린 후, ‘형태 고치기’로 모양을 만들어 모두 그렸다.



tech_img4269.png

tech_img4268.png

영어 버전

외국인들도 숫자 요리사 게임을 즐길 수 있도록 영어 버전도 만들었다. 옵션 창에서 언어를 바꾸면 영어로 게임을 할 수 있다. 외국인들에게 우리 나라의 김밥을 알리면 좋겠다는 생각이 들어 게임 안에 김밥에 대한 설명과 만드는 방법 등을 안내하는 페이지도 넣었다. “숫자 요리사” 프로그램은 scratch.mit.edu/projects/87822490에서 실행해 볼 수 있고 프로그램 소스 코드를 볼 수 있다. 가족들과 함께 게임을 하면 재미도 있고 연산능력도 좋아질 것이다. “숫자 요리사”에 대해 소개하는 유튜브 동영상은 www.youtube.com/watchv=Y7FGD3RNf7U에서 볼 수 있다.



출처 : 마이크로소프트웨어 12월호

제공 : 데이터 전문가 지식포털 DBguide.net