d라이브러리









[게임 디자인 씽킹] 게임 상태를 관리한다! 자료구조

컴퓨터게임 중에는 사각형 격자를 붙여 만든 그리드에서 진행하는 게임이 많아요. 이번 화에서는 사각형 그리드 게임을 제작하는데 어떤 자료구조를 사용하는지 알아볼게요. 자료구조란 프로그램에서 데이터의 저장과 연산을 위해 사용하는 특정한 형식이에요. 자료구조를 어떻게 정하느냐에 따라 프로그래밍의 복잡도나 효율성은 크게 달라지지요.

 

틱택토는 3x3 사각형 그리드에서 진행하는 게임이에요. 2명이 번갈아 ‘O’와 ‘X’를 표시하면서, 가로세로 또는 대각선 3칸을 먼저 같은 문자로 배치하면 승리해요. 틱택토를 컴퓨터로 구현하려면 3x3 칸을 이차원 리스트 형태의 자료구조로 만들면 돼요. ‘O’ 또는 ‘X’가 추가될 때마다 자료구조의 값을 변경해야 하지요. 그리고 이차원 리스트의 자료구조를 3x3 칸의 값으로 읽어와서 승패를 판정해요.

 

 

 

사각형 그리드에서 동작하는 게임으로 ‘타워 디팬스 게임’이 있어요. 길 주변에 타워를 설치해 지정된 길을 따라 이동하는 적들을 물리치는 게임이에요. 이런 타워 디팬스 게임의 자료구조를 알아보기 위해 게임을 단순화해 볼게요. 게임을 실행하면 4x6 사각형 그리드로 만들어진 맵에서  고양이 캐릭터가 사과가 있는 방향으로 이동해요. 4x6 사각형 그리드 각각은 벽이 있거나 이동 방향(화살표)에 대한 정보를 가져요.

 

 

만약 그리드에 들어가는 값을 벽(0), 위(1), 오른쪽(2), 아래(3), 왼쪽(4)으로 정의한다면 24칸에 대응되는 자료구조를 이차원 리스트로 정의할 수 있어요. 그리고 해당 숫자를 값으로 고양이 캐릭터의 이동을 관리할 수 있지요.

 

고양이 캐릭터의 이동 방향을 알기 위해서는 캐릭터의 현재 위치에 대응하는 리스트에 저장된 이동 방향 값을 알아야 해요. 이 값을 계산하기 위해서는 프로그램에서 사용하는 좌표계, 이미지의 원점 위치, 리스트의 차원 등을 고려해서 식을 만들어야 하지요.

 

오늘 소개한 코드를 이해할 수 있다면 가로세로 크기와 미로 구조도 바꿀 수 있어요. 코드를 바꿔 보면서 여러분만의 그리드 게임을 만들어 보세요!

2021년 12월 수학동아 정보

  • 오규환(아주대학교 과학영재교육원 지도교수)
  • 진행

    조가현 기자

🎓️ 진로 추천

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