Skip to content

[사다리] 김의천 미션 제출합니다. #34

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

Open
wants to merge 18 commits into
base: wzrabbit
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
52d07e8
✨ feat: 사다리 행 클래스를 구현
wzrabbit Feb 24, 2025
ed36c10
✨ feat: 사다리 클래스를 구현
wzrabbit Feb 24, 2025
7488fa2
✨ feat: 불리언 값을 생성하는 메서드가 포함되는 인터페이스를 구현
wzrabbit Feb 24, 2025
61db22a
✨ feat: 단일 불리언 값을 랜덤으로 생성하는 클래스를 구현
wzrabbit Feb 24, 2025
4cf72cc
🧪 test: 단일 불리언 값을 모킹하여 생성하는 클래스를 구현
wzrabbit Feb 24, 2025
b53b159
✨ feat: 사다리를 무작위로 생성해 반환하는 클래스를 구현
wzrabbit Feb 24, 2025
9fd10c3
✨ feat: 참가자 이름 / 참가자 이름 목록을 관리하는 클래스 구현
wzrabbit Feb 24, 2025
291d0a7
✨ feat: 실행 결과 / 실행 결과 목록을 관리하는 클래스 구현
wzrabbit Feb 24, 2025
dbf81cd
✨ feat: 사다리 게임의 결과를 저장하는 DTO 구현
wzrabbit Feb 24, 2025
273efea
✨ feat: 사다리 게임의 상태를 저장하는 DTO 구현
wzrabbit Feb 24, 2025
1c1faaf
✨ feat: 사다리 게임 클래스를 구현
wzrabbit Feb 24, 2025
5a69f09
✨ feat: 사다리 게임의 입력을 담당하는 View 클래스 구현
wzrabbit Feb 24, 2025
78c4c89
✨ feat: 사다리 게임의 출력을 담당하는 View 클래스 구현
wzrabbit Feb 24, 2025
bb897a0
✨ feat: 사다리 게임에서 model과 view를 이어주는 컨트롤러 구현
wzrabbit Feb 24, 2025
c947713
✨ feat: 사다리 게임을 진행하는 시작점 클래스 구현
wzrabbit Feb 24, 2025
7263db0
🧪 test: LadderGenerator에 대응하는 테스트 작성
wzrabbit Feb 24, 2025
5a588ed
🧪 test: Ladder에 대응하는 테스트 작성
wzrabbit Feb 24, 2025
4a85f14
🧪 test: LadderGame에 대응하는 테스트 작성
wzrabbit Feb 24, 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
✨ feat: 사다리를 무작위로 생성해 반환하는 클래스를 구현
- 항상 올바른 사다리만을 반환하는 것이 보장됨
- 구현 실수로 올바른 사다리가 만들어지지 못할 경우 `LadderRow` 컬렉션과 `Ladder` 컬렉션 검증에서 예외 발생
  • Loading branch information
wzrabbit committed Feb 24, 2025
commit b53b1590c7f10bcc0c17623a4eede4514429f8eb
37 changes: 37 additions & 0 deletions src/main/java/model/LadderGenerator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package model;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class LadderGenerator {
private final BooleanValueGenerator booleanValueGenerator;

public LadderGenerator(BooleanValueGenerator booleanValueGenerator) {
this.booleanValueGenerator = booleanValueGenerator;
}

public Ladder generateLadder(int rowCount, int columnCount) {
List<LadderRow> ladder = IntStream.range(0, rowCount)
.mapToObj((index) -> generateRow(columnCount - 1))
.collect(Collectors.toList());

return new Ladder(ladder);
}

private LadderRow generateRow(int ladderRowSize) {
List<Boolean> ladderRow = new ArrayList<>();

while (ladderRow.size() < ladderRowSize) {
if (ladderRow.size() == 0 || !ladderRow.get(ladderRow.size() - 1)) {
ladderRow.add(booleanValueGenerator.generate());
continue;
}

ladderRow.add(false);
}

return new LadderRow(ladderRow);
}
}