GithubHelp home page GithubHelp logo

baseball-game's Introduction

숫자 야구 게임 - Java

Code-Squad Online Test

1단계 : 간단 야구 게임 구현하기

구현해야할 기능

  • 야구 게임을 진행할 팀 생성
  • 프로그램이 시작되면 게임시작 메시지 출력
  • 랜덤하게 스트라이크 / 볼 / 안타 / 아웃 네 가지 중 한 결과가 출력
  • 스트라이크인 경우
    • 스크라이크 카운트 1 증가
    • 스트라이크 3회 누적되면 1아웃되게 하기
  • 볼인 경우
    • 볼 카운트 1 증가
    • 볼 4회 누적되면 1안타 되게 하기
  • 안타인 경우
    • 안타 카운트 1 증가
    • "다음 타자가 타석에 입장했습니다." 메시지 출력
    • 경기 진행되고 다음 타자 차례가 됨 ( 현재의 안타, 아웃 카운트는 유지 , 스트라이크와 볼 카운트는 초기화)
  • 아웃인 경우
    • 아웃 카운트 1 증가
    • 3 아웃이 아니라면 , "다음 타자가 타석에 입장했습니다." 메시지 출력
    • 3 아웃이 아니라면 , 경기 진행되고 다음 타자 차례가 됨 ( 현재의 안타, 아웃 카운트는 유지 , 스트라이크와 볼 카운트는 초기화)
    • 3 아웃이라면 , 안타, 아웃, 스트라이크 , 볼 카운트 모두 유지
  • 누적된 스트라이크(S), 볼(B), 아웃(O) 상황을 출력
  • 현재 전체 안타 수 출력 (자유롭게 구현한 부분 입니다.)
  • 3 아웃인 경우 게임 종료하기
  • 게임 종료할 때 최종 전체 안타수 출력, "GAME OVER" 메시지 출력

2단계 : 팀데이터 입력 및 시합 기능 구현

구현해야 할 기능

  • 입력

    • 메뉴 입력
      • 메뉴 1 : 데이터 입력
      • 메뉴 2 : 데이터 출력
        • 데이터 입력 안한 경우 입력부터 하게끔 처리
      • 메뉴 3 : 시합 시작
      • 메뉴 4 : 게임 나가기
    • 데이터 입력
      • 팀 이름 입력 (팀 개수는 총 2개)
      • 선수 데이터 입력 (각 팀마다 입력)
        • 9명의 타자 데이터 입력
          • 타자 이름 & 타율 입력
            • 타율 h는 0.1 < h < 0.5이고 소수 세째 자리까지 입력한다.(ex: 0.347,0.120)
            • 조건 안 맞는 타율인 경우 다시 입력
        • 1명의 투수 데이터 입력
          • 투수 이름 입력
      • 각 입력마다 저장 ( 에러가 없는 경우 )
  • 저장

    • 팀 이름 저장
    • 선수 데이터 저장
      • 타자는 순번, 이름, 타율을 저장
      • 투수는 이름을 저장
  • 출력

    • 게임 메시지 출력
    • 메뉴 출력
      • 메뉴 옵션
      • 메뉴 선택
    • 데이터 출력
      • 각 팀의 팀이름 출력
      • 각 팀의 선수 데이터 출력
        • 타자는 순번, 이름, 타율을 출력
        • 투수는 이름을 출력
    • 경기 상황 출력
      • 경기 진행상황 출력
        • 팀 공격 출력
        • 타자 정보 출력
          • 타저 순번, 타자 이름
          • 스트라이크 / 볼 / 안타 / 아웃 네 가지 중 한 결과가 출력
          • 누적된 스트라이크(S), 볼(B), 아웃(O) 상황을 출력
      • 경기의 최종 결과 출력
    • 에러 메시지 출력
      • 잘못된 입력인 경우 다시 입력하라는 메시지 출력
  • 처리

    • 시합은 6회까지 진행
      • 각회는 회초/ 회말로 나뉨. 회초에는 팀1, 회말에는 팀2의 타자가 경기 진행.
      • 3아웃이 될 경우 공격팀의 공격이 끝남. 회초 공격, 회말 공격이 끝나면 다음 회로 넘어감.
    • 타자는 1번 타자부터 차례로 타석에서 타격을 수행
      • 안타 / 아웃시 다음 선수가 타격을 수행
      • 9번 타자 이후에는 1번 타자로 돌아감
    • 타자의 타격은 안타 / 스트라이크 / 볼 / 아웃 중 하나의 결과를 갖음
      • 타자의 타율의 h라고 할 때 각각의 확률
        • 안타: h, 0.1 < h < 0.5
        • 스트라이크: (1 - h) / 2 - 0.05
        • 볼: (1 - h) / 2 - 0.05
        • 아웃: 0.1
    • 세번의 스트라이크는 아웃, 네번의 볼은 안타
    • 매 회에서 네번의 누적된 안타는 1 득점, 이후부터는 1안타당 추가로 1득점이 발생

3단계 : 전광판 표시 기능

구현해야할 기능

  • 시합시합 시작 이후 각 타석의 상태를 전광판의 형태로 화면에 출력

    • 각 팀 이름 , 회/말 점수 , 전체 누적 점수 출력
    • 각 팀 선수 번호, 이름 출력
    • 현재 회초/말 타자의 SBO(스트라이크, 볼, 아웃) 카운트 출력
    • 각 팀의 총 누적 투구 수 출력
    • 각 팀의 총 누적 삼진 수 출력
    • 각 팀의 총 누적 안타 수 출력
  • 전광판은 사용자의 입력을 받아 한 번에 한 결과씩 보여 주기

    • 사용자 입력하라는 안내말 출력 (다음 투구 보기(enter) or 스킵하고 X회말 후 투구보기(숫자+enter) ?)
    • 편의를 위해 사용자 입력 시 에러 처리 등의 기능을 구현
  • 특정 회말까지의 스킵 기능을 구현

  • 6회말 시작 시 팀2가 승리하고 있다면 곧바로 경기가 종료

baseball-game's People

Contributors

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