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

3단계 - 자동차 경주 #1179

Open
wants to merge 36 commits into
base: sksskaw
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
d6579d2
클래스 설계
sksskaw Jun 10, 2023
0a389cc
난수 생성 함수 구현
sksskaw Jun 10, 2023
65e5cc8
난수 생성 함수 단위테스트 생성
sksskaw Jun 10, 2023
b6a707e
car 구현
sksskaw Jun 10, 2023
89800ba
RacingField 구현
sksskaw Jun 10, 2023
1e10266
안내 메세지 view 클래스 구현
sksskaw Jun 10, 2023
79dbf57
자동차수, 실행횟수 입력로직 구현
sksskaw Jun 11, 2023
e526b93
UI 테스트 제외
sksskaw Jun 11, 2023
8d7e0d0
경주 실행 함수 구현
sksskaw Jun 11, 2023
cbab930
CarTest 코드 작성
sksskaw Jun 11, 2023
734d12b
불필요 테스트 제거
sksskaw Jun 11, 2023
2ea612f
Car 상수 리팩토링
sksskaw Jun 11, 2023
898f250
CarTest 불필요 테스트 제거
sksskaw Jun 11, 2023
18b9fa4
racingFieldSetGameCountTest 테스트 코드 수정
sksskaw Jun 11, 2023
32d0518
RacingField의 ResultView 의존성 제거
sksskaw Jun 11, 2023
0d2b28e
gameStart 함수 수정
sksskaw Jun 11, 2023
4b12b88
gameStart 함수 수정에 따른 main 로직 수정
sksskaw Jun 11, 2023
4c3d54b
InputView enum InputType으로 리팩토링
sksskaw Jun 11, 2023
ba2303c
RacingField 생성자 리팩토링
sksskaw Jun 11, 2023
ad20d7f
RacingField 수정에 따른 테스트 코드 수정
sksskaw Jun 11, 2023
392ae80
InputType print 책임 수정
Jun 12, 2023
20277d6
car distance 필드 숨기기
Jun 12, 2023
8d1a29f
repeat 적용하기
Jun 12, 2023
705fe34
입력값 음수 체크 추가
Jun 12, 2023
6259c0a
CarMoveTest 테스트 코드 작성
Jun 12, 2023
0eb9eb2
System.getenv("OPERA TE_MODE") NPE 처리
Jun 12, 2023
0022183
Elvis 표현식 적용
sksskaw Jun 12, 2023
fa451f7
cars 타입 mutable -> non-mutable 수정
sksskaw Jun 12, 2023
78bf4bc
경기 결과 출력 로직 수정
sksskaw Jun 12, 2023
1e7d6b3
RandomNumber 난수 생성기 interface로 리팩토링,
sksskaw Jun 12, 2023
d3d4436
프로젝트 패키징
sksskaw Jun 12, 2023
628653b
테스트 명 수정
sksskaw Jun 12, 2023
a91b693
기대값이 null일 경우 isEqualTo로 수정
sksskaw Jun 12, 2023
fd66916
RacingField 생성 시 필드변수 양수 강제주입
sksskaw Jun 12, 2023
9450131
readOnlyDistance 커스텀 접근자 적용
sksskaw Jun 13, 2023
a04e357
불필요 코드 제거
sksskaw Jun 13, 2023
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
RacingField 생성자 리팩토링
sksskaw committed Jun 11, 2023
commit ba2303c3072e2ea12807ea4a25651b580b207a53
13 changes: 7 additions & 6 deletions src/main/kotlin/RacingField.kt
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
class RacingField(
val cars: MutableList<Car> = mutableListOf(),
private var gameCount: Int = 0
private val cars: MutableList<Car>,
private var gameCount: Int
) {
constructor(carCount: Int, gameCount: Int) : this(mutableListOf(), 0) {
createCars(carCount)
this.gameCount = gameCount
}

fun createCars(count: Int) {
for (i in 1..count) {
cars.add(Car())
}
}

fun setGameCount(count: Int) {
gameCount = count
}

fun getGameCount(): Int {
return gameCount
}
13 changes: 5 additions & 8 deletions src/main/kotlin/main.kt
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
fun main() {
val inputIO = InputIO()
val racingField = RacingField()
val resultView = ResultView()
val carCount = inputIO.inputNumber(InputType.CAR_COUNT)
val gameCount = inputIO.inputNumber(InputType.GAME_COUNT)

racingField.createCars(
inputIO.inputNumber(InputType.CAR_COUNT)
)
val racingField = RacingField(carCount, gameCount)

racingField.setGameCount(
inputIO.inputNumber(InputType.GAME_COUNT)
)
val resultView = ResultView()
resultView.resultMessage()

for (i in 1..racingField.getGameCount()) {
resultView.carDistanceDisplay(racingField.gameStart())