diff --git a/docs/README.md b/docs/README.md index e69de29b..15d50bb2 100644 --- a/docs/README.md +++ b/docs/README.md @@ -0,0 +1,4 @@ +feat : 자동차 이름 입력 +feat : 이름 글자 5글자 이상시 오류 발생 +feat : 시도할 횟수 입력 +feat : 0~9중에서 랜덤한 정수 생성하는 클래스 생성 \ No newline at end of file diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index a17a52e7..07bfd504 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,7 +1,77 @@ package racingcar; +import camp.nextstep.edu.missionutils.Console; +import camp.nextstep.edu.missionutils.Randoms; + +import java.util.Scanner; + class RandomNum{ + private int num = 0; + private int car_num = 0; + public int random_num(){ + num = Randoms.pickNumberInRange(0, 9); + if(num >= 4) car_num += 1; + return car_num; + } +} +class Carprint{ + StringBuilder car_position = new StringBuilder(); + + public String print_car(int go_car_int){ + String car_position = "-".repeat(go_car_int); + return car_position; + } +} +class Winner { + //우승자 출력 +} + public class Application { public static void main(String[] args) { - // TODO: 프로그램 구현 + System.out.println("경주할 자동차 이름을 입력하세요."); + String input = Console.readLine(); + String[] name = input.split(","); + for(int k = 0; k < name.length; k++){ + if(name[k].length() >= 5){ + throw new IllegalArgumentException(); + } + } + //글자가 5이상으로 입력되고 난 뒤에 다시 입력을 받아야 하는데 이미 name 배열의 크기가 정해져 버림 + //다시 입력을 받을때 name 배열도 다시 입력되어야됨.. + + System.out.println("시도할 횟수는 몇번인가요?"); + int input_num = Integer.parseInt(Console.readLine()); + System.out.println(input_num); + RandomNum[] cars = new RandomNum[name.length]; + Carprint[] p_cars = new Carprint[name.length]; + int[] go_number = new int[name.length]; + for(int i = 0; i < name.length; i++){ + cars[i] = new RandomNum(); + p_cars[i] = new Carprint(); + } + + + for(int k = 0; k < input_num; k++){ + for(int j = 0; j < name.length; j++){ + go_number[j] = cars[j].random_num(); + } + + for(int j = 0; j < name.length; j++){ + System.out.println(name[j] + " : " + p_cars[j].print_car(go_number[j])); + } + } + + int max = go_number[0]; + for(int i = 0; i < name.length; i++){ + if(go_number[i] > max){ + max = go_number[i]; + } + } + + System.out.println("최종 우승자 : "); + for(int i = 0; i < name.length; i++){ + if(go_number[i] == max){ + System.out.println(name[i]+","); + } + } } } diff --git a/src/test/java/racingcar/ApplicationTest.java b/src/test/java/racingcar/ApplicationTest.java index 764ba4c6..30259644 100644 --- a/src/test/java/racingcar/ApplicationTest.java +++ b/src/test/java/racingcar/ApplicationTest.java @@ -1,12 +1,15 @@ package racingcar; +import camp.nextstep.edu.missionutils.Randoms; import camp.nextstep.edu.missionutils.test.NsTest; import org.junit.jupiter.api.Test; +import java.util.Scanner; import static camp.nextstep.edu.missionutils.test.Assertions.assertRandomNumberInRangeTest; import static camp.nextstep.edu.missionutils.test.Assertions.assertSimpleTest; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.InstanceOfAssertFactories.ARRAY; class ApplicationTest extends NsTest { private static final int MOVING_FORWARD = 4; @@ -31,8 +34,13 @@ class ApplicationTest extends NsTest { ); } + public class Random{ + + } @Override public void runMain() { + Application.main(new String[]{}); + } }