Skip to content

Conversation

@ChungGyeon
Copy link

#구현목록

  1. 입력기능

    1.1 경주할 자동차 이름들을 쉼표(,)를 기준으로 구분하여 입력받는다.

    1.2 사용자가 시도할 이동횟수를 입력받는다.

  2. 로직1

    2.1 각 자동차는 0~9 사이의 무작위 값을 구한다. 이때의 값은 INT형으로 제한한다.

    2.2 무작위 값이 4이상일 경우, 해당 자동차는 1칸 전진한다.

    2.3 무작위 값이 3이하일 경우, 해당 자동차는 현재 위치를 유지한다.

    2.4 사용자의 입력에서 받은 횟수만큼 위 과정을 반복한다.

  3. 출력 기능

    3.1 각 라운드별로 각 자동차의 이름과 현재까지의 전진 상태를 출력한다. (ex: pobi : --)

    3.2 모든 라운드가 종료된 후, 가장 많이 전진한 자동차를 최종 우숭자로 선정한다.

    3.3 우승자가 여러 대일 경우, 쉼표(,)를 기준으로 구분하여 모두 출력한다.

  4. Validator class (예외처리 구현)

    4.1 사용자가 입력한 자동차 이름이 5글자를 초과하는 경우,

    IllegalArgumentException을 발생시키고 애플리케이션을 종료한다.

    4.2 사용자가 유효하지않은 값을 입력할 경우, IllegalArgumentException을 발생시키고 애플리케이션을 종료한다.

  5. RacingRoundController class (로직2 구현)

    1,2,3,4를 수행하는 로직을 구성한다.

    5.1 - 입력기능(자동차의 이름과 이동횟수)을 오케스트레이션한다.
    5.2 - 3.1에서 입력받은 정보대로 자동차들을 구현한다. 이때, 5.1(예외처리)를 처리한다.
    5.3 - 3.1에서 입력받은 정보대로 게임을 구성한다. 이때 5.2(예외처리)를 처리한다.
    5.4 - 4.1(출력기능)을 오케스트레이션한다.
    5.5 - 3.4가 종료될때, 4.2(우승자 선정)을 수행한다.
    5.6 - 3.5가 종료될 때, 4.3(우승자 출력)을 수행한다.

자동차의 이름을 받는 함수와 시도 횟수 입력을 받는 함수를 구현
indent depth 3을 넘지 않도록 자동차 이름의 개수같은 조건문은 다른 곳에서 구현하고자 함
자동차 클래스에서 자동차의 이름을 설정, 글자수 판단, 랜덤값 생성,
조건에 따른 전진을 수행한다.
각 라운드에 따른 상황과, 최종 우승자를 출력하는 함수를 작성
다만, 출력함수부를 위한 함수를 Car Class에서 추가
이 출력부도 별도의 클래스로 나눠야할 듯하다.

-현재 라운드에 따른 각 자동차 name과 position을 출력하는 printRoundResult()
-최종 우승자를 출력하는 printWinners()
-각 자동차는 List로 관리한다.
indent를 지키기 위해 따로 제작하고자 기능요구를 다시 나누어 제작함
RacingRoundController class가 수행하는 기능을 Application Class에 일부 구현되어 있어,
이를 다시 RacingRoundContoller에 이식할 예정이다.
추가적으로 RacingRoundController class의 line 95에 있던 함수를 boolean타입으로 변경

-isAtPosition()은 현재 비교되는 자동차의 위치가 주어진값(maxPosition)에 도달하는지 판단
-맞다면 이 자동차가 우승차량임을 알게 됨
이곳에서 자동차의 이름조건, 이동횟수를 입력받아 주어진 조건에따라 예외처리한다.
일단 숫자 출력하게 만들어놓고 까먹고 -으로 바꾸지 않았음
이를 수행하도록 Car Class에 getPositionBar()를 구현하여 이를 수정함
직접 테스트할땐 왜 안되지 했는데, 생각해보니 애플리케이션이 종료되아함을 까먹었다.
try/catch를 지워 종료되게 변경
@bloodmoon3929
Copy link

코드 잘 봤습니다. 이번주차 문제를 보면 테스트 코드를 작성하는 것을 독려하는데 이를 올려주시지 않아 아쉽네요, 그리고 README 같은 것을 작성하여 코드를 설명해주시면 더 좋았을거 같아요 이번주차도 화이팅 합시다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants