Skip to content

자동차 경주 게임 미션을 위한 저장소

Notifications You must be signed in to change notification settings

kunggom/java-racingcar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2주차 미션 - 자동차 경주 게임

요구사항 분석

기능 요구사항

  • 임의의 자동차들을 임의의 횟수만큼 전진 여부를 랜덤하게 결정시켜, 가장 멀리 나간 자동차(들)를 결정하는 게임.
  • 각 자동차에 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;
          }
      
          // 추가 기능 구현
      }
    • 클래스의 기본 생성자는 제시된 것에서 추가할 수 없다.

    • nameposition 변수의 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 함수

해야할 일 (TODO)

  • 요구사항 분석 (완료)
  • 기능 초안 작성 (완료)
  • 실제로 작동하는 초기 버전 메소드 작성 (완료)
  • 실제로 작동하는 초기 버전 게임 전체 작성 (완료)
  • 프로그래밍 요구사항 준수를 위한 수정 (완료)
  • 제출을 위한 Github Push (완료)

About

자동차 경주 게임 미션을 위한 저장소

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%