GithubHelp home page GithubHelp logo

baseball's Introduction

OOP 숫자 야구 게임

기본적으로 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임이다.

같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 포볼 또는 낫싱이란 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방(컴퓨터)의 수를 맞추면 승리한다.

예) 상대방(컴퓨터)의 수가 425일 때
- 123을 제시한 경우 : 1스트라이크
- 456을 제시한 경우 : 1볼 1스트라이크
- 789를 제시한 경우 : 낫싱

위 숫자 야구 게임에서 상대방의 역할을 컴퓨터가 한다. 컴퓨터는 1에서 9까지 서로 다른 임의의 수 3개를 선택한다. 게임 플레이어는 컴퓨터가 생각하고 있는 3개의 숫자를 입력하고, 컴퓨터는 입력한 숫자에 대한 결과를 출력한다. 이 같은 과정을 반복해 컴퓨터가 선택한 3개의 숫자를 모두 맞히면 게임이 종료된다. 게임을 종료한 후 게임을 다시 시작하거나 완전히 종료할 수 있다. 사용자가 잘못된 값을 입력할 경우 IllegalArgumentException을 발생시킨 후 애플리케이션은 종료되어야 한다.

정리

역할

  • 게임(Game)
    • 게임의 흐름을 제어한다.
    • 게임을 계속 진행할 지 판단한다.
  • 공격(Attack)
    • 사용자가 숫자를 입력해 정답을 맞힌다.
  • 방어(Defence)
    • 정답을 만든다.
  • 심판(Judge)
    • 방어가 만든 정답을 기억한다.
    • 공격이 입력한 숫자와 방어가 제시한 숫자를 비교해 결과를 출력한다.

조건

  • 사용자 입력
    • 정확히 3 글자여야한다.
    • 숫자로만 이루어져야 한다.
    • 중복되는 숫자가 있으면 안된다.
  • 정답
    • 정확히 3 글자여야한다.
    • 숫자로만 이루어져야 한다.
    • 중복되는 숫자가 있으면 안된다.
  • 입력과 정답 비교 결과
    • 같은 수가 같은 자리에 있으면 스트라이크이다.
    • 같은 수가 다른 자리에 있으면 이다.
    • 같은 수가 하나도 없으면 낫싱이다.
    • 전부 일치하면 정답으로 게임이 끝난다.
  • 종료
    • 조건에 맞지 않는 문자열을 입력하면 IllegalArgumentException이 발생하면서 종료된다.
    • 정답을 맞힌 후 사용자가 n또는 N을 입력하면 종료된다.

주의사항

  • 각 역할이 하나의 책임을 갖도록 해야한다.
  • 메시지를 응답하는 객체의 내부 상태를 드러내지 않아야 한다.
  • 메시지가 객체를 선택하도록 해야한다.

참고

Java
OOP

baseball's People

Contributors

neso4 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.