/jwp-chess

웹 기반 체스 게임 구현을 위한 저장소

Primary LanguageJava

java-chess

체스 게임 구현을 위한 저장소

기능 목록

체스판 초기화

  • 위치
    • 가로 위치는 왼쪽부터 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이 잡혔을 때 게임을 종료해야 한다.
  • 체스 게임은 현재 남아 있는 말에 대한 점수를 구할 수 있어야 한다.