Git Product home page Git Product logo

java-blackjack-precourse's Introduction

블랙잭게임

: 우아한테크코스 프리코스 3주차 - 블랙잭 게임을 진행하는 프로그램을 구현한다.

1. 게임 규칙

  1. 블랙잭은 딜러와 플레이어 중 카드의 합이 21 또는 21에 가장 가까운 숫자를 가지는 쪽이 이기는 게임이다.
  2. 플레이어는 게임을 시작할 때 배팅 금액을 정한다.
  3. 카드의 숫자 계산은 카드 숫자를 기본으로 하며, Ace는 1 또는 11로 계산, King, Queen, Jack은 각각 10으로 계산한다.
  4. 게임을 시작하면 플레이어는 두 장의 카드를 지급 받으며, 두 장의 카드 숫자를 합쳐 21을 초과하지 않으면서 21에 가깝게 만들면 이긴다. 21을 넘지 않을 경우 원한다면 얼마든지 카드를 계속 뽑을 수 있다. 단, 카드를 뽑아 21을 초과할 경우 배팅 금액을 모두 잃게 된다.
  5. 처음 두 장의 카드 합이 21일 경우 블랙잭이 되어 베팅 금액의 1.5배를 딜러에게 받는다. 딜러와 플레이어가 동시에 블랙잭인 경우 플레이어는 베팅한 금액을 돌려받는다.
  6. 딜러는 처음에 받은 2장의 합계가 16이하면 반드시 1장의 카드를 추가로 받고, 17점 이상이라면 추가로 받을 수 없다. 딜러가 21을 초과하면 그 시점까지 남아 있던 플레이어들은 가지고 있던 패에 상관없이 승리해 베팅 금액을 받는다.

2. 기능 목록

1. 게임

  • 카드와 딜러 객체를 생성한다.
  • 플레이어 이름을 쉼표를 기준으로 입력받는다.
  • 입력된 이름을 쉼표를 기준으로 분리한다.
    • 예외: 입력받은 이름들이 5자 이하의 빈 문자열이 아닌지 검증한다.
    • 예외: 입력받은 이름이 5개 이하인지 검증한다.
  • 각 플레이어에게 배팅 금액을 입력받는다.
    • 예외: 입력받은 배팅 금액이 양의 실수인지 검증한다.
  • 플레이어 객체를 생성한다.
  • 딜러와 각 플레이어에게 카드를 2장씩 나누어준다.
  • 딜러와 플레이어에게 분배한 카드를 확인요청한다.
  • 플레이어에게 카드를 추가로 나누어준다.
  • 딜러의 카드를 확인해서 합이 16이하이면 카드를 추가로 준다.
  • 딜러와 플레이어가 받은 최종 카드와 카드 합을 요청한다.
  • 딜러와 플레이어의 승부를 판단한다.
  • 승부에 따라 최종 수익을 배분한다.

2. 판단자

  • 딜러 혹은 플레이어가 블랙잭인지 판단한다.
  • 딜러 혹은 플레이어가 버스트인지 판단한다.
  • 플레이어가 블랙잭으로 승리, 승리, 무승부 혹은 패배했는지 판단한다.

3. 딜러

  • 카드를 받는다.
  • 받은 카드를 한 장만 보여준다.
  • 가지고 있는 카드가 최초의 카드인지 확인한다.
  • 카드의 합을 계산한다.
  • 가지고 있는 모든 카드와 결과를 보여준다.
  • 게임 결과에 따라 정산한다.

4. 플레이어

  • 배팅 금액을 입력한다.
  • 카드를 받는다.
  • 가지고 있는 카드를 모두 보여준다.
  • 가지고 있는 카드가 최초의 카드인지 확인한다.
  • 카드를 추가로 받거나 받지 않는다.
  • 카드의 합을 계산한다.
  • 가지고 있는 모든 카드와 결과를 보여준다.
  • 게임 결과에 따라 정산한다.

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.