명절에 친척들이 모이면 윷놀이 한 판을 해도 좋겠다. 이번 게임을 고른 이유는 딱 그거였다. 함께 볼 수 있는 화면 하나를 두고, 두 팀으로 나눠 번갈아 윷을 던지는 게임. 복잡하게 준비하지 않고 바로 시작할 수 있게 만들고 싶었다.
오목과 오델로, 체스에 이어 이번에는 윷놀이로 넘어왔다. 이름은 ‘윷 한 판’. 이번에도 Sonnet을 썼고, 인터넷 연결 없이 브라우저에서 여는 HTML5 게임으로 만들었다.
판을 그리기 전에 정한 것
윷놀이라고 하니 처음에는 주문할 내용도 별로 없을 줄 알았다. 윷 네 개를 던지고 나온 만큼 말을 옮기면 되는 게임 아닌가. 막상 적어 보니 ‘잡으면 한 번 더’, ‘같은 편끼리는 업어서’, ‘모서리에서는 지름길로’ 같은 조건이 계속 붙었다.
이번 판은 청팀과 홍팀이 말 네 개씩을 쓰는 방식으로 정했다. 빽도와 낙은 빼고, 같은 편 말이 만나면 자동으로 업히게 했다. 윷이나 모가 나오면 추가 던지기를 먼저 마친 뒤, 쌓인 결과를 하나씩 골라 쓰도록 했다. 개와 걸이 함께 있어도 무조건 다섯 칸으로 합치는 식은 아니다. 어느 말에 어떤 결과를 쓸지 고르는 재미를 남겨 두고 싶었다.
기본적인 도·개·걸·윷·모의 이동 수와 잡기·업기는 국립민속박물관 교육자료도 참고했다. 다만 세부 규칙은 이 게임에서 사용할 방식으로 정리했다. 모서리에서 출발할 때만 지름길을 타고, 중앙에서 출발하면 출구 쪽으로 간다. 잡았을 때 추가로 던지는 것은 도·개·걸로 잡은 경우에만 적용했다. 윷·모에 따른 추가 던지기와는 중복하지 않는다.
조작도 그 순서를 따라간다. 윷을 던지고, 사용할 결과를 누르고, 움직일 말을 고른다. 도착할 자리에 표시가 뜨면 ‘선택한 말 이동’을 누른다. 클릭 한 번을 더 하더라도 어디로 갈지 보고 결정하는 편이 함께 앉아 하기에는 낫겠다고 봤다.
대기 중인 말 네 개는 업힌 말이 아니었다
첫 규칙 테스트에서 의외의 문제가 나왔다. 대기 중인 말 하나를 출발시켰는데 네 개가 한꺼번에 움직였다. 같은 위치에 있는 말은 함께 움직인다는 업기 처리가, 아직 판에 올라가지 않은 말들까지 한 묶음으로 본 것이다.
말을 업는 기능 자체가 틀린 것은 아니었다. 적용할 범위가 넓었다. 대기 공간에서는 선택한 말 하나만 출발하고, 판 위에서 같은 칸에 모인 말들만 같이 움직이도록 나눴다. 수정 뒤 실제 화면에서도 도를 던져 청팀 말 하나를 내보내고, 대기 말이 세 개 남는 것을 확인했다.
잡기에서도 차례가 꼬였다. 상대 말을 잡아 추가 던지기를 얻었는데, 남은 이동 결과가 없다는 이유로 곧바로 상대 차례가 됐다. ‘이동할 결과가 없다’와 ‘이번 차례가 끝났다’를 같은 조건으로 처리하면 안 됐다. 잡기로 얻은 추가 던지기까지 확인한 뒤 차례를 넘기게 고쳤다.
이런 부분은 판 모양이 다 나왔다고 끝낼 수가 없었다. 말을 하나씩 내보내고, 다시 잡혀 돌아오고, 끝까지 이동하는 흐름을 이어서 봐야 했다. 잡기와 업기, 지름길, 완주, 되돌리기를 포함한 규칙 테스트 12개를 통과시킨 뒤 화면에서도 양쪽 차례를 번갈아 진행했다.
한 판이 끝날 때까지
시험 삼아 진행한 판에서는 홍팀 말 네 개가 먼저 완주했다. 청팀은 세 개가 들어왔고 마지막 말 하나가 판에 남았다. 승리 문구가 나온 뒤에는 윷 던지기와 이동이 멈추는 것까지 확인했다.
‘한 단계 되돌리기’도 넣었다. 윷을 던진 직후 누르면 던지기 전으로, 말을 옮긴 직후 누르면 이동 전으로 돌아간다. 새 게임은 바로 초기화하지 않고 한 번 묻도록 했다. 같이 화면을 보다가 잘못 눌러 한 판을 날리는 일은 피하고 싶었다.
화면 속 윷은 네 가락의 앞뒤가 각각 반반의 확률로 나온다고 가정했다. 실제 나무 윷의 무게나 던지는 힘까지 재현한 것은 아니다. 윷을 손에 쥐고 던지는 맛까지 대신할 수는 없지만, 같은 편 말을 업을지 따로 보낼지 이야기하며 놀 수 있는 판은 마련했다.
이제 명절에 친척들이 모였을 때 꺼내 볼 게임이 하나 더 생겼다. 그 자리에서 설명 없이도 다음 버튼을 누를 수 있을지, 한 판이 끝나고 또 하자는 말이 나올지는 직접 함께 해봐야 알겠다.
직접 실행하기
아래 저장소에서 yutnori.html 파일을 내려받아 브라우저로 열면 된다. 한 기기에서 청팀과 홍팀이 번갈아 하는 방식이다.