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

readme 기능목록 작성 #7

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,19 @@
* 숫자 야구 게임 요구사항을 파악한다.
* 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 과제를 제출한다.

## 기능 목록

### 경주 게임
시작한다
입력 된 회차가 끝나면 종료한다
### 자동차
0~9사이 무작위 수에서 4이상인 경우에 전진한다.
0~9사이 무작위 수에서 4미만인 경우에 정지한다.
입력한 숫자에 해당하는 자동차 이름이 부여된다.

## 사용자
숫자를 입력한다
이름을 입력한다

## 과제 제출 과정
* [과제 제출 방법](https://github.com/next-step/nextstep-docs/tree/master/precourse)
* [과제 제출 방법](https://github.com/next-step/nextstep-docs/tree/master/precourse)
25 changes: 25 additions & 0 deletions src/main/java/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import java.util.Random;

public class Car {
private String name;
private int position;

public Car(String name) {
this.name = name;
this.position = 0;
}

public String getName() {
return name;
}

public int getPosition() {
return position;
}

public void moveOrStop(){
Random random = new Random();
int randomNumber = random.nextInt(10);
if(randomNumber >= 4) position++;
}
}
49 changes: 49 additions & 0 deletions src/main/java/Game.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import java.util.ArrayList;
import java.util.List;

public class Game {
private List<Car> cars;

public Game(List<Car> cars) {
this.cars = cars;
}

public List<Car> getCars() {
return cars;
}

private void printCarPosition(Car car) {
System.out.print(car.getName() + " : ");
int carPosition = car.getPosition();
for (int i = 0; i < carPosition; i++) {
System.out.print("-");
}
System.out.println();
}

public void startGame(int rounds){
for (int i = 0; i < rounds; i++) {
for (Car car : cars) {
car.moveOrStop();
printCarPosition(car);
}
System.out.println();
}
decideGameWinner();
}

private void decideGameWinner() {
int maxPosition = 0;
for (Car car : cars) {
maxPosition = Math.max(maxPosition, car.getPosition());
}

List<String> winnerNames = new ArrayList<>();
for (Car car : cars) {
if (car.getPosition() == maxPosition) {
winnerNames.add(car.getName());
}
}
System.out.println("최종 우승자 : " + String.join(", ", winnerNames));
}
}
28 changes: 28 additions & 0 deletions src/main/java/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class User {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.println("경주할 자동차 이름을 입력 하세요. (이름은 쉼표(,)로 구분)");
String input = scanner.nextLine();

String[] splitCarNames = input.split(",");
List<Car> cars = new ArrayList<>();

for (String carName : splitCarNames) {
cars.add(new Car(carName));
}

System.out.println("시도할 회수는 몇회인가요?");
int rounds = scanner.nextInt();
System.out.println("실행 결과");

Game game = new Game(cars);
game.startGame(rounds);

scanner.close();
}
}
Empty file removed src/main/java/empty.txt
Empty file.