/OOP_Project-Germ_War

OOP_Project-Germ_War

Primary LanguageC++

OOP_Project-Germ_War

OOP_Project-Germ_War

Germ War (Game)

세균전은 2인용 게임으로 아래의 왼쪽 같은 게임 판으로 시작하여, 플레이어 2명이 번갈아 가면서 규칙대로 말을 이동 또는 복제하여 칸을 더 많이 차지하는 플레이어가 승리하게 된다.

  1. 보드의 크기는 N x M 행렬로 구성된다.
  2. 2명의 플레이어가 번갈아 가면서 자신의 순서에 말을 선택을 하고, 옮길 곳을 지정한다. 선택한 말에서의 거리가 한 칸 차이면 복제, 두 칸은 이동이 된다.
  3. 옮긴 곳(복제 또는 이동)을 중심으로 인접해 있는 상대방의 말은 모두 내 것이 된다.
  4. 두 플레이어 모두 옮길 곳이 없으면 게임이 종료된다.
  5. 게임이 종료 시, 더 많은 곳에 말을 둔 플레이어가 승리한다. 플레이어들은 자신의 순서에서 방향키를 움직여서 게임 판에서 칸을 이동할 수 있다.(◇, ◆, _ 표시)

사용자 입력으로 사용되는 키는 다음과 같다.

  • i(위), j(왼쪽), k(아래), l(오른쪽): 커서를 움직이는 방향키 (단, 게임 판의 경계에서는 바깥으로 움직이려고 해도 커서가 움직이지 않는다.)
  • space 키: (1) 자신의 말의 위치에서 스페이스를 누르면 옮길 말이 선택된다(√ 표시). 선택된 말을 취소하고 다른 자신의 말을 선택하고 싶으면, 단순히 다른 말로 커서를 이동 후, 스페이스를 누르면 된다. (2) 말이 선택된 경우, 이동(또는 복제)이 가능한 빈 칸에서 스페이스를 누르면 그 위치로 규칙에 따라 이동(또는 복제)이 된다.

적절하지 않은 입력은 아무 일도 일어나지 않는다.

  • 위에서 명시한 키 외의 입력
  • 다른 플레이어의 말의 위치에서 스페이스 입력
  • 이동 불가능한 위치에서 스페이스 입력 플레이어가 말을 두게 되면, 둔 곳으로부터 인접한 지점(가로, 세로, 대각선으로 한칸 떨어진곳)에 상대방의 말이 있을 경우 그 말은 모두 자신의 말로 바뀐다. 한 플레이어가 자신의 말을 이동(또는 복제)하고 나면, 상대방 플레이어가 자신의 말을 선택하여 이동(또는 복제)하게 된다. 이렇게 순서를 번갈아가면서 게임을 진행하다가, 두 플레이어 모두 더 이상 둘 곳이 없으면 게임이 끝나게 된다.

게임 종료 조건

  • 말이 게임판 전체에 가득찬 경우
  • 어느 한쪽 플레이어의 말만 남은 경우