Skip to content

Conversation

@cussle
Copy link

@cussle cussle commented Jun 9, 2024

No description provided.

cussle added 16 commits June 10, 2024 03:59
프로젝트의 개요, 기능 목록, 요구 사항 등을 포함한 README.md 파일 작성
- 사용자로부터 쉼표(,)로 구분된 자동차 이름을 입력받고, 각 이름의 유효성을 검증하는 기능 구현
- 자동차 이름은 1자 이상 5자 이하로 제한
- 유효하지 않은 이름이 입력된 경우 IllegalArgumentException을 발생시키고, [ERROR] 메시지를 출력
- 유효한 이름을 리스트로 반환
- Scanner 대신 BufferedReader를 사용하여 입력을 받도록 변경하여 입력 속도 개선
- 메시지 출력을 위해 StringBuilder를 사용하여 출력 성능 최적화
- IOException을 처리하여 입력 중 오류를 명확하게 처리
- 사용자로부터 경주 횟수를 입력받고 이를 검증하는 기능 추가
- 경주 횟수는 유효한 숫자여야 하며, 1 이상이어야 함
- 유효하지 않은 입력에 대해 IllegalArgumentException을 발생시키고, [ERROR] 메시지를 출력
- 각 이름을 기반으로 Car 객체를 생성
- Car 객체는 이름을 가지며, 위치는 아직 초기화하지 않음
- Car 객체 생성 후 위치를 초기화하는 로직 추가
- 각 Car 객체는 이름과 초기 위치(0)를 가짐
- 각 자동차가 무작위 값을 통해 전진 여부를 결정하는 로직 추가
- 무작위 값이 4 이상이면 자동차가 한 칸 전진
- 경주가 진행되는 동안 각 회차의 결과를 출력하는 로직 추가
- 자동차의 이름과 현재 위치를 '-' 문자로 표시
- 경주가 끝난 후 모든 자동차 중에서 가장 멀리 이동한 자동차를 결정하는 로직 추가
- 최대 이동 거리를 계산하고, 이를 바탕으로 우승자를 선정
- 경주가 끝난 후 우승자를 출력하는 로직 추가
- 우승자가 여러 명일 경우 쉼표로 구분하여 출력
- 우승자가 한 명일 때와 여러 명일 때 모두 지원
- 잘못된 자동차 이름이나 경주 횟수 입력 시 예외를 처리하고 재입력을 요청하는 로직 추가
- 유효하지 않은 입력에 대해 [ERROR] 메시지를 출력하고, 올바른 값이 입력될 때까지 재입력 요청
- Car 클래스의 이름 유효성, 위치 초기화 및 전진 기능 테스트 추가
- 레이스 로직을 처리하기 위한 Race 클래스를 추가하여 모델 확장
- CarRaceController의 책임을 단순화하여 사용자 입력 및 레이스 관리 역할만 수행
- Race 클래스에 대한 단위 테스트 추가
- System.out.println을 OutputView.printMessage로 대체하여 출력 관리 개선
- OutputView에서 불필요한 StringBuilder 사용 제거
- 더 많은 테스트 케이스를 추가하여 모델의 신뢰성 향상
- Race 클래스의 출력 로직을 OutputView로 이동하여 책임 분리
- Random 객체를 static final로 선언하여 성능 최적화
- Car 클래스에서 name 필드를 final로 선언하여 불변성을 유지
- 생성자에서 position을 0으로 초기화하여 명확성 향상
- 불필요한 initializePosition 메서드를 제거하여 클래스 간결화
- 테스트 케이스 추가로 정확도 검증의 신뢰성 강화
- Race 클래스의 run 메서드에서 각 라운드가 끝날 때마다 자동차 위치를 출력하도록 OutputView.printRaceStatus 호출 추가
- 자동차 경주 진행 중 각 라운드의 현재 상태를 확인 가능
@cussle cussle changed the title [충남대 BE_이경빈] 미션 제출합니다 [충남대 BE_이경빈] 미션 제출합니다. Jun 9, 2024
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.

1 participant