8000 GitHub - YuYangWoo/java-racingcar: 자동차 경주용 게임을 관리하는 저장소
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

YuYangWoo/java-racingcar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

자동차 경주 게임

진행 방법

  • 자동차 경주 게임 요구사항을 파악한다.
  • 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 코드 리뷰 요청을 한다.
  • 코드 리뷰 피드백에 대한 개선 작업을 하고 다시 PUSH한다.
  • 모든 피드백을 완료하면 다음 단계를 도전하고 앞의 과정을 반복한다.

온라인 코드 리뷰 과정

목차

  1. [문자열 계산기][# 문자열 계산기]
  2. [자동차 경주 게임][# 자동차 경주]

문자열 계산기

기능 요구 사항

사용자가 입력한 문자열 값에 따라 사칙 연산을 수행할 수 있는 계산기를 구현해야 한다. 문자열 계산기는 사칙 연산의 계산 우선순위가 아닌 입력 값에 따라 계산 순서가 결정된다. 즉, 수학에서는 곱셈, 나눗셈이 덧셈, 뺄셈 보다 먼저 계산해야 하지만 이를 무시한다. 예를 들어 "2 + 3 * 4 / 2"와 같은 문자열을 입력할 경우 2 + 3 * 4 / 2 실행 결과인 10을 출력해야 한다. 테스트할 수 있는 단위로 나누어 구현 목록을 만든다.

기능 구현

  • 입력한 문자열 값에 따라 사칙 연산을 수행하는 기능. 사칙 연산을 모두 포함하는 기능 구현 - Calculator
    • 덧셈 - add()
    • 뺄셈 - sub()
    • 곱셈 - multiply()
    • 나눗셈 - divide()
  • 공백 문자열을 빈 공백 문자로 분리하려면 String 클래스의 split(" ") 메소드를 활용한다. 반복적인 패턴을 찾아 반복문으로 구현한다. - FormulaUtil
  • 사용자에게 문자열 입력을 받아 유효성을 검증하는 기능 구현 - FormulaInput#getFormula()
    • 입력값이 null이거나 빈 공백 문자일 경우 IllegalArgumentException throw
    • 사칙연산 기호가 아닌 경우 IllegalArgumentException throw

자동차 경주

기능 요구 사항

초간단 자동차 경주 게임을 구현한다.

  • 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.
  • 각 자동차에 이름을 부여할 수 있다. 자동차 이름은 5자를 초과할 수 없다.
  • 자동차 이름은 쉼표(,)를 기준으로 구분한다.
  • 전진하는 자동차를 출력할 때 자동차 이름을 같이 출력한다.
  • 사용자는 몇 대의 자동차로 몇 번의 이동을 할 것인지를 입력할 수 있어야 한다.
  • 전진하는 조건은 0에서 9 사이에서 무작위 값을 구한 후 무작위 값이 4 이상일 경우이다.
  • 자동차의 상태를 화면에 출력한다. 어느 시점에 출력할 것인지에 대한 제약은 없다.
  • 자동차 경주 게임을 완료한 후 누가 우승했는지를 알려준다. 우승자는 한 명 이상일 수 있다.

기능 구현

  • 사용자에게 경주할 자동차 이름을 입력받는 기능 구현 - RacingCarInput#getCarName
    • 입력 값이 쉼표를 기준으로 구분되는지 검증 - isCommaSeperated()
    • 시도할 횟수가 입력받는 기능 구현 - getRaceCount()
  • 자동차 이름, 위치정보를 저장하는 자동차 클래스 - RacingCar
    • 자동차 이름의 길이가 5이하인지 검증 - isCorrectNameSize()
    • 전진 하는 메서드 - moveForward()
  • 자동차게임 실행하는 클래스 - GameLauncher
    • 필드로 자동차 리스트 관리
    • 여러 자동차 한번에 전진 - start()
    • 시도마다 결과를 출력 - printRacing()
    • 우승자를 선정해서 출력 - printWinner()
  • 랜덤값 생성 클래스 - RandomUtil
    • 랜덤값 생성기능 구현 - createRandomNumber()

About

자동차 경주용 게임을 관리하는 저장소

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%
0