# 1주차 요구사항 (체스게임)
- 모델
보드
피스
폰
나이트
...
게임
커맨드
프린터 (현황 출력, 스코어, 플레이어 턴- black, white)
- 로직 (게임 룰)
프로젝트는 iOS APP으로 생성을 하고, 처음에는 테스트 코드를 통해 명령어를 입력 받도록 한다.
구현사항
- 8x8 보드 만들기
- 가로는 A-H 세로는 1-8 값을 가진다.
- 명령어 입력
- "현재 위치 -> 이동 위치" 형태로 입력한다. (A1->A2) -> 1주차
- 터치 받는다거나? -> 2주차 UI 구현?
- 피스 생성
- 폰
- 폰은 앞으로 한칸만 전진만 가능하다.
- 폰은 첫 턴에는 두칸 전진이 가능하다.
- 폰은 말을 잡을 때 대각선 앞으로만 이동이 가능하다.
- 폰 특수룰 -> 3주차
- 앙파상
- 프로모션
- 킹
- 킹은 모든 방향으로 한 칸만 이동이 가능하다.
- 킹이 잡히거나 구조 불가능한 상태가 되면(체크메이트) 게임 오버 -> 2주차
- 킹 특수룰 -> 3주차
- 캐슬링
- 나이트
-----------
- 비숍
- 룩
- 퀸
- 게임 룰
- 플레이어는 피스를 이동하면 턴을 체인지 한다.
- 자신의 피스가 상대 피스를 모두 잡으면 게임이 종료된다. 1주차
- 킹만 잡거나 체크메이트로 끝나는 걸로 수정 (2주차)
- 턴이 변경될 때마다 현재 체스보드 상황을 커맨드창에 출력한다. 1주차
- UI에 표시되게 변경 (2주차)
- UI 관련 (2주차)
- 피스를 선택하면 이동 가능한 위치를 표시
- 이동 가능한 위치를 선택하면 이동 및 피스를 잡는 것까지
- 이동 불가능한 위치를 선택하면 피스 선택 캔슬
- 피스 선택 중 다른 피스를 선택하면 피스 선택 변경
1주차: 보드 및 일부 피스 생성(이동 룰) // 플레이어 턴 바꾼다.
2주차: 남은 피스 생성(이동 룰) + UI 구현(명령어 -> 테스트에서 UI 터치 이벤트)
3주차: 특수 룰