- GameCommand
- 게임 시작 커맨드는 "start"다.
- 게임 종료 커맨드는 "end"다.
- 체스 기물 이동 요청 커맨드는 "move 시작위치 이동위치" 이다.
- 위치의 첫 번째 인자는 a~h까지 가능하다.
- 위치의 두 번째 인자는 1~8까지 가능하다.
-
InitialPawnState
- 해당 위치에 아무 말이 없다면 앞으로 한 칸 혹은 두 칸을 갈 수 있다.
- 해당 위치에 상대편 말이 있다면 대각 방향으로 한 칸 이동할 수 있다.
-
MovedPawnState
- 해당 위치에 아무 말이 없다면 앞으로 한 칸 갈 수 있다.
- 해당 위치에 상대편 말이 있다면 대각 방향으로 한 칸 이동할 수 있다.
-
KnightState
- 해당 위치에 같은 색의 기물이 없으면 앞으로 한 칸 이동한 후 같은 방향 대각으로 한 칸 이동할 수 있다.
- 다른 piece 가 중간에 있더라도 뛰어넘을 수 있다
-
BishopState
- 해당 위치에 같은 색의 기물이 없으면 대각 방향으로 원하는 만큼 이동할 수 있다.
-
RookState
- 해당 위치에 같은 색의 기물이 없으면 직선 방향으로 원하는 만큼 이동할 수 있다.
-
QueenState
- 해당 위치에 같은 색의 기물이 없으면 직선 방향으로 원하는 만큼 이동할 수 있다.
- 해당 위치에 같은 색의 기물이 없으면 대각 방향으로 원하는 만큼 이동할 수 있다.
-
KingState
- 직선 혹은 대각 방향으로 한 칸 이동할 수 있다.
- 이름을 가진다.
- 피스 타입을 가진다.
- 움직임 전략을 가진다.
- File 과 Rank 를 갖는다.
- 다른 포지션과의 Rank 순서 차이를 구할 수 있다.
- 다른 포지션과의 File 순서 차이를 구할 수 있다.
- 다른 포지션과의 직선 경로 Position 을 얻을 수 있다.
- [예외] 직선이 아니면 예외가 발생한다.
- Piece 들의 위치를 초기화 한다.
- 보드는 자신의 판 정보를 반환할 수 있다.
- 시작 Position 과 목표 Position 를 입력하면 Piece를 움직일 수 있다.
- start 와 end 를 입력 받는다.
- 체스판을 출력한다.