- 임의의 자동차들을 임의의 횟수만큼 전진 여부를 랜덤하게 결정시켜, 가장 멀리 나간 자동차(들)를 결정하는 게임.
- 각 자동차에 5글자 이내의 이름을 부여한다.
- 자동차의 이름을 입력받을 때, 각 자동차 이름은 쉼표(
,
)를 기준으로 구분한다. - 사용자는 전진을 시도할 횟수를 입력한다.
- 전진 시마다 컴퓨터는 각 자동차에 대해 0에서 9 사이의 임의의 값을 구하여, 값이 4 이상인 경우에 1칸 전진한다.
- 전진이 끝났을 때, 각 차량의 이름과 전진 정도를 dash(
-
)로 함께 화면에 표시한다. - 각 전진과 전진 사이는 빈 줄 1칸으로 띄운다.
- 모든 전진 시도가 끝나면, 가장 멀리 전진한 자동차를 우승자로 선정하여 화면에 표시한다. 우승자는 1명 이상일 수 있다.
-
다음과 같이 제시된
Car
클래스를 통해 자동차 객체를 작성한다.-
이런 초기 코드로 시작해야 한다.
public class Car { private final String name; private int position = 0; public Car(String name) { this.name = name; } // 추가 기능 구현 }
-
클래스의 기본 생성자는 제시된 것에서 추가할 수 없다.
-
name
과position
변수의private
접근 제어자는 바꿀 수 없다. -
position
변수를 직접 바꾸는 setter 메소드는 구현하지 않는다.
-
-
들여쓰기 깊이는 2까지만 허용한다.
- 함수 안에서
for
문 안에if
문을 쓰면 이를 들여쓰기 깊이 2로 본다고 할 때, 함수 선언부 시작점을 들여쓰기 깊이 0으로 보면if
문 내부의 들여쓰기 깊이는 3탭이 된다. 코딩 컨벤션에서 1탭을 4 space로 보니까 함수 시작 위치를 기준으로 최대 들여쓰기 깊이는 12 space를 넘기면 안 된다.
- 함수 안에서
-
각 메소드의 길이는 15줄을 넘기지 않아야 한다.
- 이 길이 제한이 빈 줄과 주석을 포함하는지는 명확하지 않다.
- 일단 초기 구현 단계에서는 빈 줄과 주석을 해당 제한에 포함하지 않는다.
-
else
를 사용하지 않는다. -
switch/case
를 사용하지 않는다. -
Java 코드 컨벤션을 준수한다.
-
각 메소드 구현이 완료될 때마다 git commit을 수행한다.
- 0에서 9 사이의 임의의 정수 하나를 생성하여 반환
- 자동차 이름을 입력받기
- 이름을 쉼표로 구분
- 5글자 제한 적용
- 총 시도 횟수 입력받기
- 각 시도별로 모든 자동차에 전진 시도하기
- 각 자동차의 현재 상태를 순서대로 출력하기
- 가장 멀리 나간 자동차(들)를 판정하여 출력하기
main
함수
요구사항 분석(완료)기능 초안 작성(완료)실제로 작동하는 초기 버전 메소드 작성(완료)실제로 작동하는 초기 버전 게임 전체 작성(완료)프로그래밍 요구사항 준수를 위한 수정(완료)제출을 위한 Github Push(완료)