Python 인강 Day 11 / Day 100 - 블랙잭 카드게임
개발/파이썬2023. 3. 16. 20:10
728x90
반응형
#Day 11 = 블랙잭 게임
from random import randint , sample
while True:
card = [1,2,3,4,5,6,7,8,9,10,10,10,10,11]
dealer = sample(card, 2)
player = sample(card, 2)
sum_player = int(player[0] + player[1])
sum_dealer = int(dealer[0] + dealer[1])
print(f"당신의 카드는 {player[0],player[1]} 입니다.")
add_one = input("카드를 한장 추가 하시려면 y , 아니면 n 을 눌러주세요 > >")
if sum_dealer <=16:
sec_dealer = sample(card, 1)
dealer.append(sec_dealer[0])
sum_dealer += int(sec_dealer[0])
if add_one == "y" or add_one == "Y":
sec_player = sample(card,1)
sum_player += int(sec_player[0] )
print(f"카드는 {sec_player[0]} 입니다.")
yprint(f"당신의 총점은 {sum_player}")
print(f"딜러의 카드는 {dealer}")
print(f"딜러의 총점은 {sum_dealer}")
if sum_dealer >= 21 and sum_player <= 21:
print("딜러 버스트 당신의 승리입니다.")
elif sum_player >= 21:
print("버스트 입니다 , 패배했습니다")
elif sum_player > sum_dealer:
print("당신이 승리했습니다!")
elif sum_player < sum_dealer:
print("당신이 패배했습니다!")
else:
print("동점입니다.")
if add_one == "n" or add_one == "N":
print(f"당신의 총점은 {sum_player}")
print(f"딜러의 카드는 {dealer}")
print(f"딜러의 총점은 {sum_dealer}")
if sum_dealer >= 21 and sum_player <= 21:
print("딜러 버스트 당신의 승리입니다.")
elif sum_player >= 21:
print("버스트 입니다 , 패배했습니다")
elif sum_player > sum_dealer:
print("당신이 승리했습니다!")
elif sum_player < sum_dealer:
print("당신이 패배했습니다!")
else:
print("동점입니다.")
play_again = input("게임을 다시 시작 하시겠습니까? y 를 누르면 다시시작 or n 을 누르면 종료 > > ")
if play_again == "n" or play_again == "N":
break
어찌어찌 동작은하는데 코드가 상당히 복잡해졌다.
def 문으로 함수를 만들어서 리팩토링이 가능할 것 같다.
728x90
반응형
'개발 > 파이썬' 카테고리의 다른 글
.torrent 파일 일괄 삭제 프로그램 (파이썬 코드 , 실행파일 다운) (0) | 2023.04.15 |
---|---|
Python 인강 / 객체지향 커피머신 만들기 (1) | 2023.03.22 |
Python 인강 Day10 / Day 100 (0) | 2023.03.16 |
유튜브 영상,음원 추출하여 다운받기. 파이썬 코드 (1) | 2023.03.14 |
Python 인강 Day 9 / day 100 (비밀 경매 프로젝트) (1) | 2023.03.13 |
댓글()