Skip to content

Latest commit

 

History

History
50 lines (46 loc) · 2.65 KB

README.md

File metadata and controls

50 lines (46 loc) · 2.65 KB

java-chess

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

체스 1단계 - 체스판 초기화

기능 요구사항

  • 콘솔 UI에서 체스 게임을 할 수 있는 기능을 구현한다.
  • 1단계는 체스 게임을 할 수 있는 체스판을 초기화한다.
  • 체스판에서 말의 위치 값은 가로 위치는 왼쪽부터 a ~ h이고, 세로는 아래부터 위로 1 ~ 8로 구현한다.
  • 체스판에서 각 진영은 검은색(대문자)과 흰색(소문자) 편으로 구분한다.

체스 2단계 - 말 이동

기능 요구사항

  • 콘솔 UI에서 체스 게임을 할 수 있는 기능을 구현한다.
  • 체스 말의 이동 규칙을 찾아보고 체스 말이 이동할 수 있도록 구현한다.
  • move source위치 target위치을 실행해 이동한다.
  • 체스판의 위치 값은 가로 위치는 왼쪽부터 a ~ h이고, 세로는 아래부터 위로 1 ~ 8로 구현한다.

체스 3단계 - 승패 및 점수

기능 요구사항

  • 체스 게임은 상대편 King이 잡히는 경우 게임에서 진다. King이 잡혔을 때 게임을 종료해야 한다.
  • 체스 게임은 현재 남아 있는 말에 대한 점수를 구할 수 있어야 한다.
  • "status" 명령을 입력하면 각 진영의 점수를 출력하고 어느 진영이 이겼는지 결과를 볼 수 있어야 한다. #####점수 계산 규칙
  • 체스 프로그램에서 현재까지 남아 있는 말에 따라 점수를 계산할 수 있어야 한다.
  • 각 말의 점수는 queen은 9점, rook은 5점, bishop은 3점, knight는 2.5점이다.
  • pawn의 기본 점수는 1점이다. 하지만 같은 세로줄에 같은 색의 폰이 있는 경우 1점이 아닌 0.5점을 준다.
  • king은 잡히는 경우 경기가 끝나기 때문에 점수가 없다.
  • 한 번에 한 쪽의 점수만을 계산해야 한다.

구현해야 할 기능

1단계
  • 체스판을 만드는 기능
  • 체스판에 말을 배치하는 기능
2단계
  • 체스판의 말을 움직이는 기능
    • [예외] 출발지와 목적지가 같을 경우 예외 처리
    • [예외] 나이트를 제외한 말들의 가는 경로에 다른 말이 있을 경우 예외 처리
    • 가고자 하는 위치에 상대편 말이 있을 경우 말을 죽이는 기능
  • 체스판의 말들에 이동 규칙 적용
    • 나이트
    • 비숍
3단계
  • 킹이 잡혔을 때 게임을 종료하는 기능
  • 각 진영의 남은 말로 점수를 계산하는 기능
  • status 명령을 입력받으면 각 진영의 점수를 출력하는 기능
  • 각 말들에 점수를 매기는 기능