Coder Social home page Coder Social logo

mirror-java-blackjack's Introduction

🃏 BLACKJACK Game with TDD & Pair Programming

  • Java로 구현한 블랙잭 게임입니다.
  • TDD와 Pair Programming을 통해 구현했습니다.

🎮 프로그램 내용

게임에 참여할 사람의 이름을 입력하세요.(쉼표 기준으로 분리)
pobi,jason

pobi의 배팅 금액은?
10000

jason의 배팅 금액은?
20000

딜러와 pobi, jason에게 2장의 카드를 나누었습니다.
딜러: 3다이아몬드
pobi카드: 2하트, 8스페이드
jason카드: 7클로버, K스페이드

pobi는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)
y
pobi카드: 2하트, 8스페이드, A클로버
pobi는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)
n
jason은 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)
n
jason카드: 7클로버, K스페이드

딜러는 16이하라 한장의 카드를 더 받았습니다.

딜러 카드: 3다이아몬드, 9클로버, 8다이아몬드 - 결과: 20
pobi카드: 2하트, 8스페이드, A클로버 - 결과: 21
jason카드: 7클로버, K스페이드 - 결과: 17

## 최종 수익
딜러: 10000
pobi: 10000
jason: -20000

📌 기능 구현 목록

입력

  • 게임에 참여할 플레이어를 입력받는다.
  • 카드를 추가로 받을지 여부를 입력 받는다.
    • 입력 값이 (y / n) 이외의 값인 경우 예외가 발생한다.
  • 입력 값이 null 이거나 empty인 경우 예외가 발생한다.

출력

  • 초기 카드 배분 안내 메시지를 출력한다.
  • 딜러와 플레이어의 초기 카드를 출력한다.
    • 딜러는 첫 번째 1장, 플레이어는 2장 모두 출력한다.
  • 플레이어에게 추가 카드 배분 안내 메시지를 출력한다.
    • 카드를 추가로 받은 경우, 플레이어의 전체 카드를 출력한다.
    • 카드를 추가로 한 번도 받지 않은 경우, 플레이어의 전체 카드를 출력한다.
  • 딜러의 카드 합에 따라, 추가 카드 배분 여부 안내 메시지를 출력한다.
  • 딜러와 전체 플레이어의 최종 카드와 합을 출력한다.
  • 최종 승패를 출력한다.

카드

  • 카드 무늬

    • 스페이스, 다이아몬드, 하트, 클럽 4 가지의 무늬를 갖는다.
  • 카드

    • 무늬, 값, 시그니처를 갖는다.
    • 에이스 카드는 1 또는 11 카드 값을 결정해서 반환한다.
  • 카드 모음

    • 카드 합을 계산한다.

게임

    • 무늬별로 숫자, 메이저, 에이스 카드를 총 52장의 카드를 갖는다.
    • 카드를 섞는다.
    • 중복되지 않는 숫자, 메이저, 에이스 카드를 1장을 반환한다.
    • 초기 딜을 위한 중복되지 않는 카드 2장을 반환한다.
    • 남은 카드 개수를 확인한다.
  • 테이블

    • 딜러에게 초기 카드 배분한다.
    • 딜러의 추가 카드 배분을 진행한다.
  • 딜러

    • 처음 받은 카드를 오픈한다.
    • 딜러의 카드 합이 16 이하인 경우 한 장의 카드를 추가한다.
  • 플레이어

    • 모든 패를 오픈한다.
    • 카드를 한 장씩 추가한다.
  • 블랙잭 게임

    • 테이블을 생성한다.
    • 플레이어에게 초기 카드를 배분한다.
    • 플레이어의 hit / stand 여부에 따라 카드를 추가한다.
  • 게임 승패

    • 딜러와 플레이어의 카드 합을 비교한다.
      • 카드의 합이 21을 넘는 경우, 패한다.
      • 카드가 블랙잭인 경우 승한다.
      • 카드 합을 비교하여, 카드의 합이 21과 가까운 경우 승한다.
      • 카드 합을 비교하여, 카드의 합이 같은 경우 무승부다.
    • 모든 플레이어와 비교하여 딜러의 승/패/무 횟수를 반환한다.

mirror-java-blackjack's People

Contributors

jiwoo-kimm avatar pageprologue avatar wbluke 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.