Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1단계 - 보드 초기화, 기물 이동] 윌슨(박형균) 미션 제출합니다. #40

Open
wants to merge 84 commits into
base: phk1128
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
5b26e65
🔴red: 폰이 이동 가능한 위치를 리스트로 반환하는 기능 레드 테스트
phk1128 Mar 18, 2025
46d3565
🟢green(Pawn): 폰이 이동 가능한 위치를 리스트로 반환하는 기능 그린 테스트
phk1128 Mar 18, 2025
392eec0
🛠️refactor(Pawn): 폰이 이동 가능한 위치를 리스트로 반환하는 기능 리팩토링
phk1128 Mar 18, 2025
39e1459
🔴red: 목적지의 위치를 알려줄 수 있다 테스트 작성
minSsan Mar 18, 2025
dc4aec8
🟢green: 목적지의 위치를 알려줄 수 있다 테스트 통과 로직 작성
minSsan Mar 18, 2025
6448dd8
🛠️refactor: 기물이 가능한 이동 경로 리스트를 반환하도록 변경
minSsan Mar 18, 2025
56f7a91
feat: 기물 타입 정의
phk1128 Mar 18, 2025
733bc05
feat: 팀 타입 정의
phk1128 Mar 18, 2025
873e99d
feat: 기물 타입 재정의
phk1128 Mar 18, 2025
cedbe32
🛠️refactor: 기물 추상화 및 변수 이름 변경
phk1128 Mar 18, 2025
0201a24
🔴red: 보드 초기화 레드 테스트
phk1128 Mar 18, 2025
865d9b9
🟢green: 보드 초기화 그린 테스트
phk1128 Mar 18, 2025
94ba1f2
🛠️refactor: 보드 초기화 기능 및 기물 추상 클래스 인터페이스로 리팩토링
phk1128 Mar 18, 2025
4726799
feat: 기물 객체 정의
phk1128 Mar 18, 2025
bbca0a9
🛠️refactor: 기물 객체 생성자 추가 및 보드 초기화 리팩토링
phk1128 Mar 18, 2025
e014055
🛠️refactor: 기물을 초기화하는 책임을 ChessPiecePositions으로 이동 및 테스트
phk1128 Mar 18, 2025
ef5e7f0
🛠️refactor: 기물들의 위치를 초기화하는 테스트 리팩토링
phk1128 Mar 18, 2025
a617810
docs: 과제 진행 사항 작성
phk1128 Mar 18, 2025
49fa706
🛠️refactor: 보드 객체 프로덕션 레벨로 이동
phk1128 Mar 18, 2025
d1de6cb
🔴red: 위치 생성 검증 테스트 작성
minSsan Mar 19, 2025
643db30
🟢green: 위치 생성 검증 테스트 통과 코드 작성
minSsan Mar 19, 2025
adce400
🛠️refactor: 위치 검증 로직 리팩터링
minSsan Mar 19, 2025
8ea0b2c
refactor: 위치 검증 로직 추가에 따른 ChessPiece 로직 변경
minSsan Mar 19, 2025
471d4e8
refactor: 초기 위치의 기물 목록을 생성하는 책임을 기물에게 옮기기
minSsan Mar 19, 2025
b20ae07
🔴red: 마의 이동 경로를 반환하는 기능 레드 테스트
phk1128 Mar 19, 2025
5714adc
🛠️refactor: Path 객체 equals 재정의
phk1128 Mar 19, 2025
446c45e
🟢green: 마의 이동경로를 반환하는 기능 그린 테스트
phk1128 Mar 19, 2025
72068ac
feat: 방향 enum 정의
phk1128 Mar 19, 2025
58dcbb5
feat: Elephant 이동 경로 탐색 기능 구현
phk1128 Mar 19, 2025
4c1aa67
feat: Horse 이동 경로 탐색 기능 구현
phk1128 Mar 19, 2025
6c9db55
feat: 위치가 갱신된 ChessPosition을 반환하는 메서드 구현
phk1128 Mar 19, 2025
a09a943
🛠️refactor: 사용하지 않는 클래스 삭제
phk1128 Mar 19, 2025
81e9984
feat: 차 이동 경로 계산 기능 구현
phk1128 Mar 19, 2025
a224ab3
🛠️refactor: 경로를 탐색할때 시작점을 넣지 않는것으로 수정
phk1128 Mar 19, 2025
da3198e
refactor: 장기 기물을 타입 계층으로 변경
minSsan Mar 20, 2025
09c9fcc
refactor: 장기 기물을 타입 계층으로 변경 - 포, 차
minSsan Mar 20, 2025
b517669
🔴red: 폰이 이동할 수 있는 목적지 리스트를 반환할 수 있다 테스트
minSsan Mar 20, 2025
543ffde
refactor: getCoordinateDestinations() 메서드 시그니처 변경
phk1128 Mar 20, 2025
1a6750a
🟢green: 폰의 이동 경로를 반환하는 기능 그린 테스트
phk1128 Mar 20, 2025
aa0fa69
🛠️refactor: 폰의 이동 경로를 반환하는 기능 리팩토링
phk1128 Mar 20, 2025
e87ffc4
🔴red: 마의 이동 가능한 경로를 계산하는 기능 레드 테스트
phk1128 Mar 20, 2025
1564053
🟢green: 마의 이동 가능한 경로를 계산하는 기능 그린 테스트
phk1128 Mar 20, 2025
57c867e
🔴red: 장애물이 있을때 마의 이동 경로를 계산하는 기능 레드 테스트
phk1128 Mar 20, 2025
6999184
🟢green: 장애물이 있을때 마의 이동 경로 계산 기능 그린 테스트
phk1128 Mar 20, 2025
5c77bda
🛠️refactor: 장애물이 있을때 마의 이동 경로 계산 기능 리팩토링
phk1128 Mar 20, 2025
7c03318
🔴red: 상대방의 포가 존재하지 않을때 포의 이동 경로를 계산하는 기능 레드 테스트
phk1128 Mar 20, 2025
8971b00
🟢green: 상대방의 포가 존재하지 않을때 포의 이동 경로를 계산하는 기능 그린 테스트
phk1128 Mar 20, 2025
689cc58
🔴red: 상대방의 포가 존재할때 포의 이동 경로를 계산하는 기능 레드 테스트
phk1128 Mar 20, 2025
5e2170c
🟢green: 상대방의 포가 존재할때 포의 이동 경로를 계산하는 기능 그린 테스트
phk1128 Mar 20, 2025
77ed67d
🔴red: 차의 이동경로를 계산하는 기능 레드 테스트
phk1128 Mar 20, 2025
47995de
🟢green: 차의 이동경로를 계산하는 기능 그린 테스트
phk1128 Mar 20, 2025
f2e53e7
🛠️refactor: 차의 이동경로를 계산하는 기능 리팩토링
phk1128 Mar 20, 2025
95820bc
🟢green: 폰이 이동할 수 있는 목적지 리스트를 반환할 수 있다 테스트 통과 로직 작성
minSsan Mar 20, 2025
bc1d1dc
🔴red: 상이 이동할 수 있는 목적지 리스트를 반환할 수 있다 테스트 작성
minSsan Mar 20, 2025
0a03292
🟢green: 장애물이 없는 경우 상의 목적지 반환 통과 로직 작성
minSsan Mar 20, 2025
8dd4cef
refactor: 테스트 검증 메서드 수정
minSsan Mar 20, 2025
a2f2781
🔴red: 장애물이 있는 경우 상이 모든 목적지를 반환할 수 있다 테스트 작성
minSsan Mar 20, 2025
47ee3cd
🟢green: 장애물이 있는 경우 상이 모든 목적지를 반환할 수 있다 테스트 통과 로직 작성
minSsan Mar 20, 2025
42e19ff
refactor: 목적지에 상대 기물이 있는 경우도 움직일 수 있다
minSsan Mar 20, 2025
fb988b8
refactor: 차는 적의 말이 있는 위치로 이동할 수 있다
minSsan Mar 20, 2025
b15c53e
chore: 공백 삭제
minSsan Mar 20, 2025
a1fef29
refactor: LimitedChessPiece 구현체의 코드 중복 삭제
minSsan Mar 20, 2025
1e5d703
chore: 미사용 클래스 삭제
minSsan Mar 20, 2025
23545b0
docs(README.md): 요구사항 리스트 반영
minSsan Mar 20, 2025
67bdd69
refactor: 메서드 분리
minSsan Mar 20, 2025
5ee128b
refactor: LimitedChessPiece.java -> LimitedMoveChessPiece 이름 변경
minSsan Mar 20, 2025
60fd543
refactor: 패키지 분리
minSsan Mar 21, 2025
a121444
feat: ChessPiecePositions 초기화를 담당하는 ChessPiecePositionsGenerator 추가
minSsan Mar 21, 2025
53e9e5c
fix(Cannon): 포를 만난 경우 더이상 탐색을 이어가지 않도록 변경
minSsan Mar 21, 2025
6e85953
refactor: ChessPiece 의 ChessPosition 필드 삭제
minSsan Mar 22, 2025
48373a0
refactor: 장애물 관련 로직을 별도의 클래스로 분리 및 합성
minSsan Mar 23, 2025
7fdc907
chore: LimitedMoveChessPiece, UnlimitedMoveChessPiece 의 getCoordinate…
minSsan Mar 23, 2025
cf74248
chore: 메서드 final 키워드 추가
minSsan Mar 23, 2025
8fcd07d
chore: 메서드명 수정
minSsan Mar 23, 2025
6d7a389
chore: static import 삭제
minSsan Mar 23, 2025
e8b8b08
refactor(ChessPosition): 위치 검증 메서드 삭제 및 canMove 메서드 추가
minSsan Mar 23, 2025
5657669
chore: test 클래스 패키지 분리
minSsan Mar 23, 2025
728790d
feat: Board에 장기 이동 책임 연결
minSsan Mar 24, 2025
dac11aa
feat(Pawn): 졸/병의 누락된 초기 위치 추가
minSsan Mar 24, 2025
4348045
chore(Path): 불필요한 equals 재정의 삭제
minSsan Mar 24, 2025
9922508
feat: 뷰 연결
minSsan Mar 24, 2025
d4e8d98
refactor: ChessPiece, ChessPiecePositions 순환 참조 문제 개선
phk1128 Mar 24, 2025
388ea70
refactor: 왕, 가드 제거
phk1128 Mar 25, 2025
d4cfb5d
refactor: 추상 메서드는 자식에서 구현 하므로 제거
phk1128 Mar 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
🔴red: 마의 이동 가능한 경로를 계산하는 기능 레드 테스트
phk1128 committed Mar 20, 2025
commit e87ffc42e088fa6008edb8bf1057a2bbcaffcf1d
35 changes: 35 additions & 0 deletions src/test/java/domain/HorseTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package domain;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;

import java.util.List;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

class HorseTest {

@Test
@DisplayName("마의 이동 경로를 반환한다")
void test1() {
//given
final ChessPosition chessPosition = new ChessPosition(4, 4);
final List<ChessPosition> expected = List.of(new ChessPosition(6, 5),
new ChessPosition(6, 3),
new ChessPosition(2, 3),
new ChessPosition(2, 5),
new ChessPosition(5, 6),
new ChessPosition(3, 6),
new ChessPosition(3, 2),
new ChessPosition(5, 2));

//when
final Horse horse = new Horse(chessPosition, ChessTeam.BLUE);
final List<ChessPosition> destinations = horse.getDestinations(ChessPiecePositions.empty());

//then
assertThat(destinations).containsAll(expected);

}

}