체스 게임 구현을 위한 저장소
- 위치
- 가로 위치는 왼쪽부터 a~h
- 세로 위치는 아래부터 위로 1~8
- 진영
- 검은색(대문자)
- 흰색(소문자)
- 시작 위차와 종료 위치를 입력하여 말을 이동할 수 있다.
- 예외
- source 위치에 말이 존재하지 않는 경우
- target 위치에 아군 말이 존재하는 경우
- 이동할 말이 움직일 수 없는 방향인 경우
- source 와 target 사이에 아군 혹은 적군의 말이 있는 경우
- 움직일 말이 폰인 경우에는 일반적인 말과 다른 규칙을 적용한다.
- 대각선 위치로 이동하는 경우 반드시 적군이 있어야 한다.
- 직선으로 이동하는 경우 말이 존재하지 않아야 한다.
- 초기 위치에 있는 경우에만 직선으로 두 칸 이동할 수 있다.
- 예외
- 게임을 처음 시작하면 흰색 말을 먼저 움직일 수 있다.
- 이동 후에는 턴을 상대 편으로 넘긴다.
- 체스 프로그램에서 현재까지 남아 있는 말에 따라 점수를 계산할 수 있어야 한다.
- 각 말의 점수는 queen은 9점, rook은 5점, bishop은 3점, knight는 2.5점이다.
- pawn의 기본 점수는 1점이다. 하지만 같은 세로줄에 같은 색의 폰이 있는 경우 1점이 아닌 0.5점을 준다.
- king은 잡히는 경우 경기가 끝나기 때문에 점수가 없다.
- 한 번에 한 쪽의 점수만을 계산해야 한다.
- 체스 게임은 상대편 King이 잡히는 경우 게임에서 진다. King이 잡혔을 때 게임을 종료해야 한다.
- 체스 게임은 현재 남아 있는 말에 대한 점수를 구할 수 있어야 한다.