본문 바로가기
JAVA

블랙잭 게임 구현 #1

by mingutistory 2020. 3. 17.
728x90

프로젝트 하면서 딱히 자바를 이해해서 쓴다는 느낌을 많이 못 받아서 고민이었다. DB 연결해서 데이터 입력, 출력만 할 수 있는 정도로 계속 단순한 작업만 했다는 느낌이 들었다.  일단 따로 혼자 할 수 있는 프로젝트를 해봐야겠다고 생각하고 서치 중 밑의 글을 만나고 자바로만 뭔가 만들어봐야겠다고 생각이 들었다. 

 

https://okky.kr/article/358197

 

OKKY | 초보 개발자에게 권장하는 객체지향 모델링 공부 방법

원래 다른 글타래 의 답글로 적던 내용인데 다른 분들에게도 혹시 도움이 될까 싶어서 별도 글타래로 옮깁니다. 따라서 다소 맥락이 어색한 부분이 있는 점 양해부탁 드립니다. 아마도 객체지향 모델링 이라는 표현을 자주 들어보셨을 것입니다. 여기서 이야기하는 모델링(modelling) 은 흔히 말하는 3D 모델링 이나 프라모델 같은 단어에서

okky.kr

이 글에서 예시로 들어주신 블랙잭 게임을 만들어보기로 했다. 

일단 문제는 1. 해 본 적 없음. 2. 고로 룰이나 규칙을 아애 모름. 

그래서 일단 온라인으로 몇 판 해보고 나무위키와 다른 구현 한 분들이 어느 정도까지  구현했는지 참고해서 만들어 보려고 한다. 

 

블랙잭 게임 구현


 

블랙잭 규칙

1. 참여자는 딜러, 게이머 2명만 존재

2. 카드는 총 52장

 - 무늬(다이아, 클로버, 하트, 스페이스)별로 13장

 - 2~10까지는 그대로 점수 반영

 - J, Q, K는 10점. A는 1점

3. 게임 시작시 참여자는 모두 2장을 받고 시작함

 - 게이머는 추가로 카드를 항상 뽑을 수 있음

 - 딜러는 16점 이하인 경우 반드시 1장 뽑고, 17점 이하인 경우 뽑지 않음

4. 딜러, 게이머의 점수와 비교해서 승부

    - 딜러의 카드 1장은 공개하지 않음

 - 카드 오픈 시 카드의 합이 21에 가까운 쪽이 승리

 

블랙잭 용어

힛(Hit) : 처음 2장의 상태에서 카드를 더 뽑는 것. 뽑은 카드와 합산하여 수가 21이 넘으면 그 즉시 짐 (=버스트).

스탠드(Stand) : 카드를 더 뽑지 않고 차례를 마치는 것. 

버스트(Bust) : 카드 총합이 21을 넘는 경우. 참여자가 버스트 당하면 경기 흐름에 상관없이 바로 패배.

 


1. 카드

- 52개의 카드 존재

- 카드 랜덤으로 뽑기 (처음 2장, 그 이후 참여자의 선택에 따라 1장씩)

? 카드 더미를 어디에 저장하고 있어야 하나 

 

2. 게이머

- 카드를 확인하고 행동을 정함. 힛, 스탠드 둘 중 하나 선택 가능

 

3. 딜러

- 처음 받은 카드 합산에 따라 카드 뽑기 실행

 

일단 해본다.

 

300x250

댓글