Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

자동차 미션 게임 제출합니다 #526

Open
wants to merge 24 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1e4652e
feat: gitignore 파일 설정을 통한 자원 범위 설정
juno-junho Dec 12, 2022
b05468e
docs(README): 기능목록 작성 완료
juno-junho Dec 12, 2022
e0a61f8
feat(InputView): 차의 이름을 입력받는 메서드 구현
juno-junho Dec 12, 2022
38bfd3a
feat(Util): string을 int로 변환하는 메서드 구현
juno-junho Dec 12, 2022
4b832d0
feat: 기본적인 뼈대 생성
juno-junho Dec 12, 2022
9f9d29a
feat(Validator): 자동차 이름 유효성 검사
juno-junho Dec 12, 2022
44acfb9
feat(InputView): 시도 횟수를 입력받는 메서드 생성
juno-junho Dec 12, 2022
e7a3fb1
fix(InputView): 시도 횟수를 입력받는 메서드 생성
juno-junho Dec 12, 2022
f0dfd24
feat(Validator): 유효성 검사 메서드 생성
juno-junho Dec 12, 2022
15215a9
feat(Util): int보다 큰 값을 입력했을 경우 체크
juno-junho Dec 12, 2022
1f5d00d
docs(README): input 기능목록 완료 항목 체크
juno-junho Dec 12, 2022
0659724
feat(domain): car를 생성하는 객체 생성
juno-junho Dec 12, 2022
cf2979f
feat(OutputView): 결과를 출력하는 메서드 생성
juno-junho Dec 12, 2022
5b3be30
feat(Util): -를 position 개수만큼 생성하는 메서드 생성
juno-junho Dec 12, 2022
26cb4bf
feat(Car): getter와 게임 진행시 position 증가 메서드 생성
juno-junho Dec 12, 2022
894d366
feat(domain): 게임 결과를 생성하는 메서드 생성
juno-junho Dec 12, 2022
4e9050b
feat(OutputView): 최종 우승자를 출력하는 메서드 생성
juno-junho Dec 12, 2022
fdd063b
docs(README): 출력 및 로직 구현 기능 목록 체크
juno-junho Dec 12, 2022
f30b329
feat(OutputView): 에러를 출력하는 메서드 생성
juno-junho Dec 12, 2022
c0eb120
fix(OutputView): 에러를 출력하는 메서드 수정
juno-junho Dec 12, 2022
94e245f
feat(controller): 컨트롤러 로직 생성
juno-junho Dec 12, 2022
60ba880
docs(README): 모든 기능목록 체크
juno-junho Dec 12, 2022
8f6867c
feat: controller 기능 구현 완료
juno-junho Dec 12, 2022
a685a17
feat(InputView): 예외발생시 다시 입력받는 기능 구현 완료
juno-junho Dec 12, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,9 @@ bin/
.idea
*.iws
*.iml
*.ipr
*.ipr

### personal gitignore setting
/gradle
gradle*
settings.gradle
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ dependencies {

java {
toolchain {
languageVersion = JavaLanguageVersion.of(8)
languageVersion = JavaLanguageVersion.of(11)
}
}

Expand Down
61 changes: 61 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# :pushpin: 자동차 경주 게임 기능 목록

## 구현 기능 목록
<details>
<summary><b>입력</b></summary>
<div markdown="1">

- [x] 경주할 자동차 이름을 입력 받기

**예외처리**
> - [x] 공백을 입력했을 경우.(자동차가 한대도 없는 경우)
> - [x] ,로 분리 했을때 자동차 길이가 공백이거나 비어 있을 경우
> - [x] 자동차 이름은 5글자 이하
> - [x] 같은 이름의 자동차 있을시 중복 체크
- [x] 시도할 회수를 입력 받기
> - [x] 숫자아닌 문자 예외 체크
> - [x] 0 이하 숫자 입력시 예외 체크
> - [x] integer 최대 수 보다 큰 수 입력시 예외 생성
> - **예외처리**
- [x]사용자가 잘못된 값을 입력할 경우 [ERROR]로 시작하는 에러 메시지를 출력 후 그 부분부터 다시 입력 받기

</div>
</details>

<details>
<summary><b>출력</b></summary>
<div markdown="1">

- [x] 각 차수별 진행 결과 출력
> - [x] 아래 형식 준수하기 (전진하는 자동차를 출력할 때 자동차 이름을 같이 출력하기)
```
pobi : --
woni : ----
jun : ---
```
- [x] 단독 우승자 안내 문구 출력하기
- [x] 공동 우승자 안내 문구 출력하기
> - [x] 우승자가 여러명일 경우 , 통해서 구분하기
- [x] 예외 상황 시 [ERROR]로 시작하는 에러 문구를 출력

</div>
</details>

<details>
<summary><b>체크리스트 및 구현 로직</b></summary>
<div markdown="1">

- [x] Car 객체를 활용해 구현 한다.
> - [x] 기본생성자 추가 불가, private 접근제어자 변경 불가, setPosition 메서드 사용 불가

- [x] 전진하는 로직 구현
> - [x] 게임 실행횟수만큼 실행한다
> - [x] 1. 일단 list돌면서 Car마다 playTheGame메서드 실행
> - [x] 2. list 돌면서 `car이름 : getPosition()\n` 마다 string으로 변환
> - [x] list를 돌면서 `car이름 : `을 생성하고 게임을 실행해서
> - [x] 전진하는 조건은 0에서 9 사이에서 무작위 값을 구한 후 무작위 값이 4 이상일 경우이다.

- [x] position의 길이가 최대인 우승자 계산

</div>
</details>
2 changes: 0 additions & 2 deletions gradle.properties

This file was deleted.

Binary file removed gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 0 additions & 5 deletions gradle/wrapper/gradle-wrapper.properties

This file was deleted.

172 changes: 0 additions & 172 deletions gradlew

This file was deleted.

84 changes: 0 additions & 84 deletions gradlew.bat

This file was deleted.

5 changes: 4 additions & 1 deletion src/main/java/racingcar/Application.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package racingcar;

import racingcar.controller.RacingGameController;

public class Application {
public static void main(String[] args) {
// TODO 구현 진행
RacingGameController controller = new RacingGameController();
controller.run();
}
}
15 changes: 15 additions & 0 deletions src/main/java/racingcar/Car.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package racingcar;

import camp.nextstep.edu.missionutils.Randoms;

public class Car {
private final String name;
private int position = 0;
Expand All @@ -9,4 +11,17 @@ public Car(String name) {
}

// 추가 기능 구현
public void playGame(){
if(Randoms.pickNumberInRange(0, 9) >= 4){
position += 1;
}
}

public String getName() {
return name;
}

public int getPosition() {
return position;
}
}
Loading