개발자로 가는길 :: Python 인강 Day 11 / Day 100 - 블랙잭 카드게임

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
반응형

댓글()