Git Product home page Git Product logo

java-racingcar-precourse's Introduction

미션 - 자동차 경주 게임 by 박병욱

📃 프로젝트 소개

  • 본 레포지토리는 자동차 경주 게임을 구현한 프로젝트를 담고 있습니다.
  • 경주할 자동차들의 이름과 시도할 횟수 n을 입력하면 자동차 게임이 진행 됩니다.
  • 자동차 경주는 총 n회의 시도를 걸쳐서 진행됩니다.
  • 매 회당 각 자동차들은 랜덤 값을 뽑고, 그 값이 4이상일 경우에만 전진합니다.
  • 자동차 경주가 종료되면 전진한 거리에 따라 우승한 자동차들이 정해지고, 이름이 출력됩니다. (우승자는 다수일 수 있습니다. )

🛠️ 프로그램 기능 목록

⌨️ 입력

  • 자동차들의 이름을 입력받는 기능
    • 각 자동차들의 이름은 쉼표(,)로 구분하여 입력받는다. 입력 예시 : pobi, woni, jun
    • [예외] 쉼표(,) 구분자가 입력에 없는 경우
    • [예외] 쉼표로 자동차 이름들을 구분할 수 없는 입력인 경우
    • [예외] 자동차 이름이 5자 초과일 경우
    • [예외] 자동차 이름에 특수 문자가 포함되는 경우
    • [예외] 자동차 이름이 중복되는 경우
    • [예외] 쉼표(,)만 입력으로 들어오는 경우
  • 자동차들의 총 이동 횟수를 입력받는 기능
    • [예외] 숫자가 아닌 값이 입력으로 들어오는 경우
    • [예외] 0 또는 음수가 입력값으로 들어오는 경우

👨‍💻 처리

  • 주어진 이동 횟수만큼 모든 자동차가 전진하고 멈추는 기능
    • 아래 조건을 만족하는 자동차를 전진(이동) 시킨다.
    • 매 횟수마다 각 자동차는 0 ~ 9 사이의 random 값을 구한다.
      • random 값이 4 이상의 값일 경우는 전진한다.
      • random 값이 3 이하의 값이면 전진하지 않는다.
  • 자동차 경주 게임 완료후 우승자를 결정하는 기능
    • 우승자는 한 명 이상일 수 있다.

🖥️ 출력

  • 각 횟수를 진행할 때마다의 모든 실행 결과를 출력하는 기능
    • 실행 결과는 매 회에서의 자동차들의 이동 거리를 뜻한다.
    • 출력 형식 : 자동차 이름 : 이동 거리
    • 이동 거리는 자동차가 이제까지 이동한 총 거리다. 이동거리 1당 - 문자 1개로 표현한다.
    • ex) park가 7번 이동한 경우 출력 예시 : park : -------
  • 최종 우승자를 출력하는 기능
    • 단독 우승자 안내 문구 출력 형식 : 최종 우승자 : 자동차이름1
    • 공동 우승자 안내 문구 출력 형식 : 최종 우승자 : 자동차이름1, 자동차이름2

📝메모

  • 예외 상황시 에러문구를 출력해야한다. 출력 형식은 [ERROR]로 시작한다. ex) [ERROR] 시도 횟수는 숫자여야 한다.

java-racingcar-precourse's People

Contributors

gracefulbrown avatar jujubebat avatar pobiconan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.