체스 미션 저장소
- 게임 여부를 입력 받는다.
- 게임 시작은 start, 게임 종료는 end
- 게임 시작 시에 게임 방 이름을 입력 받는다.
- 게임 이동 위치를 입력 받는다.
- move 뒤에 위치를 입력 받는다.
- 게임의 현 상황을 출력하기 위한 명령어를 받는다.
- source를 받는다.
- 진행 하던 게임을 재시작 하기 위해 게임 방 이름을 입력 받는다.
- 안내 문구를 출력한다.
- 체스판을 출력한다.
- 체스 결과를 출력한다.
- 체스 점수를 각각 출력한다.
- 체스판을 생성
- 8 X 8 크기를 갖는다.
- 검은색, 하얀색 진영으로 나뉜다.
- 각 진영은 폰(8개), 퀸(1개), 킹(1개), 나이트(2개), 비숍(2개), 루크(2개) 를 가진다.
- 말 이동
- 말은 각각의 방법에 따라 이동한다.
- 이동하려는 위치가 체스판을 넘을 수 없다.
- 이동하려는 위치에 같은 진영의 말이 있을 경우 움직을 수 없다.
- 나이트를 제외한 말은 다른 말을 넘어갈 수 없다.
- 승패 및 점수
- 체스 게임은 상대편 King이 잡히는 경우 게임에서 진다. King이 잡혔을 때 게임을 종료해야 한다.
- 체스 게임은 현재 남아 있는 말에 대한 점수를 구할 수 있어야 한다.
- 각 말의 점수는 queen은 9점, rook은 5점, bishop은 3점, knight는 2.5점이다.
- pawn의 기본 점수는 1점이다. 하지만 같은 세로줄에 같은 색의 폰이 있는 경우 1점이 아닌 0.5점을 준다.
- king은 잡히는 경우 경기가 끝나기 때문에 점수가 없다.
- 한 번에 한 쪽의 점수만을 계산해야 한다.
- 진행 중인 게임 저장
- 게임방 이름으로 진행 중인 게임을 저장한다.
- 이 전에 진행하던 게임을 다시 불러와서 진행한다.