introduce {
name("박세준")
company("에스이랩")
skills {
soft("A passion for problem solving")
soft("Good communication skills")
hard("Kotlin")
}
languages {
"Korean" level 5
"Japanese" level 3
"English" level 1
}
}
introudce 메소드를 통해 Person 을 리턴한다!
- 스킬을 입력받을 수 있다.
- 언어를 입력 받을 수 있다.
블랙잭 게임을 변형한 프로그램을 구현한다. 블랙잭 게임은 딜러와 플레이어 중 카드의 합이 21 또는 21에 가장 가까운 숫자를 가지는 쪽이 이기는 게임이다.
카드의 숫자 계산은 카드 숫자를 기본으로 하며, 예외로 Ace는 1 또는 11로 계산할 수 있으며, King, Queen, Jack은 각각 10으로 계산한다. 게임을 시작하면 플레이어는 두 장의 카드를 지급 받으며, 두 장의 카드 숫자를 합쳐 21을 초과하지 않으면서 21에 가깝게 만들면 이긴다. 21을 넘지 않을 경우 원한다면 얼마든지 카드를 계속 뽑을 수 있다.
게임에 참여할 사람의 이름을 입력하세요.(쉼표 기준으로 분리)
pobi,jason
pobi, jason에게 2장의 나누었습니다.
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스페이드
pobi카드: 2하트, 8스페이드, A클로버 - 결과: 21
jason카드: 7클로버, K스페이드 - 결과: 17
- 게임에 참여할 사람의 이름을 입력받는다. -InputView
- 참여자들에게 카드를 두 장 나누어 진다. -Dealer
- 참여자들은 여러 장의 카드를 가질 수 있다. - Player
- 덱에는 카드가 52장 저장되어 있다. -Deck
- 덱에는 한장을 뽑는다. 카드는 중복 될 수 없다. -Deck
- 카드는 번호와 심볼을 가지고 있다. - Card
- 플레이어의 손패를 공지한다. -OutputView
- 참여자는 추가로 카드를 받는 Hit과 더 이상 받지 않는 Stay를 선택할 수 있다. - Player
- 참여자 손패의 카드합이 21이상이라면 Bust 더이상 카드를 받지 못한다. - HandsCalculator
- 손패의 카드 합을 더한다. J, Q, K는 10이다. A는 1이거나 11이다. Hands
- 손패 총합 값을 계산한다. - HandsCalculator
- 결과를 발표한다. -Table
딜러는 처음에 받은 2장의 합계가 16이하이면 반드시 1장의 카드를 추가로 받아야 하고, 17점 이상이면 추가로 받을 수 없다. 딜러가 21을 초과하면 그 시점까지 남아 있던 플레이어들은 가지고 있는 패에 상관 없이 승리한다. 게임을 완료한 후 각 플레이어별로 승패를 출력한다.
게임에 참여할 사람의 이름을 입력하세요.(쉼표 기준으로 분리)
pobi,jason
딜러와 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
## 최종 승패
딜러: 1승 1패
pobi: 승
jason: 패
- 딜러가 자신의 패도 갖는다.
- 만약 딜러의 패가 합이 16이하라면 1장의 카드를 추가로 받는다.
- 각자 플레이어가 승패를 계산한다.
- 딜러가 Bust 된다면(패가 21 초과) 그 시점 까지 남아 있던 플레이어는 승리한다.
- 결과를 발표할때에 승패도 보여준다.
기능 요구사항 블랙잭 게임을 변형한 프로그램을 구현한다. 블랙잭 게임은 딜러와 플레이어 중 카드의 합이 21 또는 21에 가장 가까운 숫자를 가지는 쪽이 이기는 게임이다.
플레이어는 게임을 시작할 때 베팅 금액을 정해야 한다. 카드의 숫자 계산은 카드 숫자를 기본으로 하며, 예외로 Ace는 1 또는 11로 계산할 수 있으며, King, Queen, Jack은 각각 10으로 계산한다. 게임을 시작하면 플레이어는 두 장의 카드를 지급 받으며, 두 장의 카드 숫자를 합쳐 21을 초과하지 않으면서 21에 가깝게 만들면 이긴다. 21을 넘지 않을 경우 원한다면 얼마든지 카드를 계속 뽑을 수 있다. 단, 카드를 추가로 뽑아 21을 초과할 경우 베팅 금액을 모두 잃게 된다. 처음 두 장의 카드 합이 21일 경우 블랙잭이 되면 베팅 금액의 1.5 배를 딜러에게 받는다. 딜러와 플레이어가 모두 동시에 블랙잭인 경우 플레이어는 베팅한 금액을 돌려받는다. 딜러는 처음에 받은 2장의 합계가 16이하이면 반드시 1장의 카드를 추가로 받아야 하고, 17점 이상이면 추가로 받을 수 없다. 딜러가 21을 초과하면 그 시점까지 남아 있던 플레이어들은 가지고 있는 패에 상관 없이 승리해 베팅 금액을 받는다.
실행 결과
게임에 참여할 사람의 이름을 입력하세요.(쉼표 기준으로 분리)
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
- 플레이어가 돈을 가진다.
- 플레이어는 게임이 끝날때 손익을 정산한다
- 게임에 승/패에 따라 딜러나 플레이어가 배팅한 만큼의 돈을 가진다.
- 딜러가 Bust 된다면(패가 21 초과) 그 시점 까지 남아있던 플레이어만 승리한다.
- 플레이어가 처음 뽑은 2자리의 값이 블랙잭(21)이라면 1.5배를 돌려받는다.