Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java-blackjack

블랙잭 미션 저장소

우아한테크코스 코드리뷰

용어 정리

  • Deck : 카드 1묶음. 52장의 모든 카드를 지칭
  • CardDeck : 셔플된 여러 개의 Deck
  • Hit : 카드를 더 뽑는 것
  • Stay : 카드를 더 뽑지 않고 차례를 마치는 것
  • Blackjack : 처음 두 장의 카드 합 21이 되는 것
  • Burst : 21점 초과로 게임 오버 되는 것
  • Push : 무승부. 딜러와 플레이어의 점수가 동일

기능 목록

딜러

  • 처음에 받은 2장의 합계가 16점 이하이면 카드를 1장 획득

플레이어

  • 플레이어 등록
    • 플레이어는 1명 이상
    • 플레이어 이름 중복 불가
    • 플레이어 이름 빈 값 불가
    • 딜러 이름 불가(딜러 or dealer)
  • 21을 넘지 않을 때까지 Hit 가능

블랙잭 게임

  • 게임 준비

    • 게임 시작 시 딜러와 플레이어에게 카드 2장 지급
  • 게임 진행

    • 각 플레이어에게 추가 카드 지급
    • 최초 딜러의 카드 합이 16점 이하이면 카드를 1장 지급
  • 게임 종료

    • 카드 합이 21 또는 21에 가깝게 스코어 계산
      • Ace는 11로 계산 가능
  • 수익 계산

    • 플레이어의 승무패 결과에 따라 수익 계산

수익 계산

  • BLACKJACK_WIN : 플레이어가 블랙잭으로 이긴 경우 - 배팅 금액 * 1.5배
  • WIN : 플레이어가 블랙잭이 아닌 다른 패로 이긴 경우 - 배팅 금액 * 1배
  • LOOSE : 플레이어가 진 경우 - 배팅 금액 * -1배
  • PUSH : 비긴 경우 - 배팅 금액 * 1배

승무패 판단

  • BLACKJACK_WIN
    • 플레이어 blackjack, 딜러 notBlackjack
  • WIN
    • 플레이어 notBurst, 딜러 burst
    • 플레이어 notBurst, 딜러 notBurst, 플레이어 > 딜러
  • LOOSE
    • 플레이어 burst
    • 플레이어 notBurst, 딜러 notBurst, 플레이어 < 딜러
  • PUSH
    • 플레이어 blackjack, 딜러 blackjack
    • 플레이어 notBurst, 딜러 notBurst, 플레이어 = 딜러

카드

  • 카드 생성
    • 숫자와 모양을 가짐
    • 숫자는 2~10와 A,J,K,Q 중 하나
    • 모양은 하트,클로버,다이아,스페이드 중 하나

카드 뭉치

  • 카드 숫자 합 계산
    • King, Queen, Jack은 각 10으로 계산
    • Ace는 1로 계산

카드 덱

  • 덱의 개수만큼 덱을 생성하여 셔플
    • 덱의 개수 1 미만 불가
  • 카드 1장 뽑기

입력

  • 게임에 참여할 사람 이름 입력

    • 이름은 쉼표를 기준으로 분리
    • 이름 앞 뒤 공백 제거
  • 참가자 별 배팅 금액 입력

    • 0보다 큰 정수만 입력
    • 10원 단위로 입력
  • Hit 여부 입력

    • y 와 n 이외의 문자 입력
  • 올바른 입력이 들어올 때까지 재입력

출력

  • 처음 받은 카드 2장 출력
  • Hit 후 보유한 카드 출력
  • 딜러의 카드 획득 여부 출력
  • 최종 카드 현황 및 점수 출력
  • 최종 수익 출력

About

블랙잭 미션 저장소

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors