Skip to content

Commit

Permalink
[디디] 체스 1주차 미션 제출합니다. (#52)
Browse files Browse the repository at this point in the history
* docs : README.md 업데이트

* feat : Coordinate 구현

* [feat] Position 객체 생성

	- Position은 내부적으로 file과 rank를 알고 있다.
	- Position을 map으로 캐싱해서 String 입력 값에 따라 해당하는 position 객체를 반환

* feat: Piece, Knight 일부 구현

	- Piece는 자신의 위치를 안다
	- Piece는 자신이 속한 Player를 안다

* feat: board 생성

	- Board를 초기화하기 위한 BoardInitializer 인터페이스 추가
	- Board initializer가 사용할 초기 데이터인 InitialPieceRepository 추가
	- EnumRepositoryBoardInitializer에서 repository를 참고하여 board 초기화

* feat: board에서 move에 대한 로직을 간단하게 구현

	Todo.
	- 장애물이 있을 경우 판단하는 로직 구현 필요
	- Knight를 제외한 다른 piece의 이동 규칙 구현 필요

* refactoring/feature: 전체 프로그램 설계 변경 및 기능 구현

	- 게임의 진행 상태를 나타내는 State 생성
	- Application 로직에 있던 내용을 Controller로 이동
	- InputView의 리팩토링
	- Board 출력을 위한 ResponseDto 생성
	- OutputView에서 ResponseDto로 출력하는 로직 구현
	- Piece의 색에 따라 toString 구현
	- 한 게임을 관리하는 ChessGame 생성
	- 이동을 위한 파라미터 객체인 MoveParameter 생성

* refactoring: EnumRepository의 구현을 변경

	- EnumRepository에서 생성된 피스를 가지지 않고, 피스 generator를 가지고 있도록 변경
	- EnumRespositoryInitializer에서는 해당하는 generator로 피스를 생성하여 보드 초기화

* rafactoring/feat : Knight, MovedPawn 테스트 및 이동 구현

- 이동 규칙에 적합하게 움직이는 지 테스트
- 중복되는 메서드를 템플릿 메서드로 분리
- PieceState를 적절하게 반환하도록 구현

* refactoring/feat : PieceState 구현

- Piece의 상태에 따라 Ready, Running, End로 분리

* feat : Rook 이동 구현

- Rook Test 구현
- Direction 개념 구현
- Direction 에 맞게 position 이동 구현
- Rook 이동 구현

* refactoring/feat : 기존 이동 로직 수정 및 Bishop 이동 구현

- Bishop Test 구현
- Direction 이 음수도 나오도록 수정
- Direction 에 맞게 position 이동 수정
- Bishop 이동 구현

* refactoring/feat : King 이동 구현

- King Test 구현
- Direction 에 존재하지 않는 target의 경우 예외처리
- King 이동 구현

* refactoring/feat : 전체 Piece 이동 로직 리팩토링, Turn 구현

 - 현재 Trun인 플레이어만 move가 가능하도록 구현
 - 각 Piece 이동에 맞게 테스트 refactor
 - Pawn 이동 규칙에 맞게 분리

* feat: Status 로직 구현, King이 죽으면 게임종료 구현

* refactor : king 죽음 리팩토링

 - 플레이어 체크 안되는 버그 수정

* refactor : 컨벤션 리팩토링

- 접근제어자 추가
- 불필요한 객체 삭제
- 매직넘버 상수화
- 가독성이 떨어지는 메서드 분리

* refactor/feat : 설계 리팩토링

- indent 줄이기 위해 메서드 분리
- status 결과 객체 구현
- 결과 계산시 종료 구현

* refactor : 설계 리팩토링

              - 컨벤션 리팩토링
              - 테스트 에러 수정

* refactor : 리뷰 반영

* refactor : 불필요한 설계 수정

- state 패턴 삭제
- service layer 추가
- indent 규칙에 맞게 리팩토링
- 기타 컨벤션에 맞게 수정

* refactor : 불필요한 테스트 삭제

* feat : Status Test 추가

* refactor : package 이름 수정

* 임시 commit

* feat : Web 환경 설계 및 DB 연동

- Index page에 접근가능하도록 구현
- Index page에서 현재 존재하는 방 목록 보여주도록 구현
- DB에 접근하여 방 목록을 가져오도록 구현

* feat : 게임방 기능 구현

- 저장시 DB에 저장
- 불러오기 시 DB 로부터 게임 load
- 진행중인 게임을 저장하지 않고 종료시 DB 삭제
- 진행중인 게임에서 새 게임 플레이 가능

* refactor : 불필요한 메서드 삭제

* feat : ChessService 테스트 구현

* fix, style : 완료된 게임 저장시 버그 수정, 클래스 명 수정

* refactor : 불필요한 throw 문 삭제

* refactor : 불필요한 setter 메서드를 생성자로 대체

* style : local 변수를 상수로 대체

* style : 일부 stream 표현을 foreach 로 대체

* fix : 우승 표시가 올바르지 않게 표시되던 버그 수정

* style : 불필요한 문장 삭제, 변수명 수정

* refactor : 테스트 저장소 초기화

* refactor : responseDto에 unknown 필드 추가

* refactor : ResponseDto 필드 접근제어자 변경, ChessService Start Command 처리 수정
  • Loading branch information
fucct authored Jun 14, 2020
1 parent 250cb50 commit 966229b
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/main/java/chess/controller/dto/ResponseDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import java.util.Objects;

public class ResponseDto {
private static final ResponseDto unknownResponse = new ResponseDto("알 수 없는 명령어 입니다.");
public static final ResponseDto unknownResponse = new ResponseDto("알 수 없는 명령어 입니다.");
private List<Long> roomId;
private Map<Position, String> board;
private Status status;
Expand Down

0 comments on commit 966229b

Please sign in to comment.