Skip to content

woowacourse-code-review-study/java-chess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

기능목록

1단계

컨트롤러

  • GameCommand
    • 게임 시작 커맨드는 "start"다.
    • 게임 종료 커맨드는 "end"다.
    • 체스 기물 이동 요청 커맨드는 "move 시작위치 이동위치" 이다.
      • 위치의 첫 번째 인자는 a~h까지 가능하다.
      • 위치의 두 번째 인자는 1~8까지 가능하다.

도메인

state

  • InitialPawnState

    • 해당 위치에 아무 말이 없다면 앞으로 한 칸 혹은 두 칸을 갈 수 있다.
    • 해당 위치에 상대편 말이 있다면 대각 방향으로 한 칸 이동할 수 있다.
  • MovedPawnState

    • 해당 위치에 아무 말이 없다면 앞으로 한 칸 갈 수 있다.
    • 해당 위치에 상대편 말이 있다면 대각 방향으로 한 칸 이동할 수 있다.
  • KnightState

    • 해당 위치에 같은 색의 기물이 없으면 앞으로 한 칸 이동한 후 같은 방향 대각으로 한 칸 이동할 수 있다.
    • 다른 piece 가 중간에 있더라도 뛰어넘을 수 있다
  • BishopState

    • 해당 위치에 같은 색의 기물이 없으면 대각 방향으로 원하는 만큼 이동할 수 있다.
  • RookState

    • 해당 위치에 같은 색의 기물이 없으면 직선 방향으로 원하는 만큼 이동할 수 있다.
  • QueenState

    • 해당 위치에 같은 색의 기물이 없으면 직선 방향으로 원하는 만큼 이동할 수 있다.
    • 해당 위치에 같은 색의 기물이 없으면 대각 방향으로 원하는 만큼 이동할 수 있다.
  • KingState

    • 직선 혹은 대각 방향으로 한 칸 이동할 수 있다.

piece

  • 이름을 가진다.
  • 피스 타입을 가진다.
  • 움직임 전략을 가진다.

Position

  • File 과 Rank 를 갖는다.
  • 다른 포지션과의 Rank 순서 차이를 구할 수 있다.
  • 다른 포지션과의 File 순서 차이를 구할 수 있다.
  • 다른 포지션과의 직선 경로 Position 을 얻을 수 있다.
    • [예외] 직선이 아니면 예외가 발생한다.

Board

  • Piece 들의 위치를 초기화 한다.
  • 보드는 자신의 판 정보를 반환할 수 있다.
  • 시작 Position 과 목표 Position 를 입력하면 Piece를 움직일 수 있다.

InputView

  • start 와 end 를 입력 받는다.

OutputView

  • 체스판을 출력한다.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 81.4%
  • HTML 18.6%