Skip to content

woowacourse-code-review-study/java-chess

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date
Feb 7, 2022
Mar 24, 2023
Feb 7, 2022
Mar 22, 2023
Mar 22, 2023
Feb 7, 2022
Feb 7, 2022
Feb 7, 2022

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%