Repository files navigation
주어진 횟수 동안 n대의 자동차 는 전진 또는 멈출 수 있다.
각 자동차에 이름 을 부여할 수 있다. 전진하는 자동차를 출력할 때 자동차 이름을 같이 출력한다.
자동차 이름은 쉼표(,)를 기준으로 구분하며 이름은 5자 이하 만 가능하다.
사용자는 몇 번의 이동을 할 것인지를 입력 할 수 있어야 한다.
전진하는 조건 은 0에서 9 사이 에서 무작위 값을 구한 후 무작위 값이 4 이상 일 경우이다.
자동차 경주 게임을 완료한 후 누가 우승했는지를 알려준다. 우승자는 한 명 이상 일 수 있다.
우승자가 여러 명일 경우 쉼표(,)를 이용하여 구분 한다.
사용자가 잘못된 값을 입력할 경우 IllegalArgumentException 를 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.
아래의 프로그래밍 실행 결과 예시와 동일하게 입력과 출력이 이루어져야 한다.
자동차 이름
빈 값 혹은 공백을 포함하지 않는다.
자동차 이름은 ","로 시작하거나 끝날 수 없다.
경주에 참가할 자동차는 최소 두 대 이상이어야 한다.
자동차 이름은 중복될 수 없다.
시도 횟수
빈 값 혹은 공백을 포함하지 않는다.
0은 포함될 수 없다.
자바 코드 컨벤션을 지키면서 프로그래밍한다.
기본적으로 Google Java Style Guide을 원칙으로 한다.
단, 들여쓰기는 '2 spaces'가 아닌 '4 spaces'로 한다.
indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다.
예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다.
힌트: indent(인덴트, 들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 된다.
else 예약어를 쓰지 않는다.
힌트: if 조건절에서 값을 return하는 방식으로 구현하면 else를 사용하지 않아도 된다.
else를 쓰지 말라고 하니 switch/case로 구현하는 경우가 있는데 switch/case도 허용하지 않는다.
3항 연산자를 쓰지 않는다.
함수(또는 메소드)가 한 가지 일만 하도록 최대한 작게 만들어라.
모든 기능을 TDD로 구현해 단위 테스트가 존재해야 한다. 단, UI(System.out, System.in) 로직은 제외
핵심 로직을 구현하는 코드와 UI를 담당하는 로직을 구분한다.
UI 로직을 InputView, ResultView와 같은 클래스를 추가해 분리한다.
모든 원시 값과 문자열을 포장한다.
일급 컬렉션을 쓴다
Car
CarName
Game
InputView
ResultView
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.