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

[자동차 경주] 김도영 미션 제출합니다. #216

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 15 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
##기능 목록

* 전진하는 조건은 0~9사이의 숫자를 구한 후 4 이상일 경우 전진, 4미만일 경우 정지
* camp.nextstep.edu.missionutils.Randoms의 pickNumberInRange()를 활용한다.
* 자동차 이름 입력 후 횟수 입력
* camp.nextstep.edu.missionutils.Console의 readLine()을 활용한다.
* 자동차 이름은 5자 이하만 사용가능
* 쉼표로 구분(글자와 쉼표를 붙여서 사용)
* 횟수 입력(숫자만 사용 가능)

* 전진 횟수가 가장 많은 차량이 우승 - 출력 이름
* 여러 대 일수도 있음
* 출력도 쉼표로 구분(쉼표 이후 공백 한칸)
* indent depth는 최대 2까지 허용
* 함수 축소화 할껏
64 changes: 63 additions & 1 deletion src/main/kotlin/racingcar/Application.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,67 @@
package racingcar

import camp.nextstep.edu.missionutils.Randoms
import camp.nextstep.edu.missionutils.Console

fun f_input_car_name() :List<String> {
println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분")
var input_car_name = Console.readLine()
var car_name_list = input_car_name.split(",")
for(i in 0..car_name_list.size - 1) {
if(car_name_list[i].length >= 6) throw IllegalArgumentException()
}
return car_name_list
}

fun f_try_number() : Int {
println("시도할 횟수는 몇 회인가요?")
try {
var try_number = Console.readLine().toInt()
return try_number
}catch (e : IllegalArgumentException) {
return throw e
}
}

fun racing_garme(car_name_list : List<String>, try_number : Int) {
println("실행 결과")
var forward_list : ArrayList<Int> = arrayListOf<Int>()
for(i in 0..car_name_list.size - 1) {
forward_list.add(0)
}
for (k in 0 .. try_number) {
for (i in 0..car_name_list.size - 1) {
var random_number = Randoms.pickNumberInRange(0, 9)
if(random_number >= 4 ) forward_list[i]++
print(car_name_list[i] + " : ")
for(j in 0 .. forward_list[i] - 1) {
print("-")
}
println()
}
println()
}
var max_forward = 0
for(i in 0 .. car_name_list.size - 1) {
if(max_forward < forward_list[i]) {
max_forward = forward_list[i]
}
}
var winner : ArrayList<String> = ArrayList<String>()
for (i in 0 .. car_name_list.size - 1) {
if(max_forward == forward_list[i]) {
winner.add(car_name_list[i])
}
}
print("최종 우승자 : ")
print(winner.joinToString(", "))
}

fun main() {
// TODO: 프로그램 구현
}
var car_name_list = f_input_car_name()

var try_number = f_try_number()

racing_garme(car_name_list, try_number)
}