# disclaimer! i don't know how to optimise gambling. condolences if you're looking at this and you found 278 different flaws in my code. oops! import random cards = [2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K", "A"] facecards = ["J", "Q", "K"] playagain = "y" while playagain == "y": deck = [] for card in cards: for i in range(4): deck.append(card) playerhand = [] dealerhand = [] dealerscore = 0 playerscore = 0 gambling = "y" random.shuffle(deck) for i in range(2): dealerhand.append(deck[0]) if deck[0] == "A": dealerscore += 11 elif deck[0] in facecards: dealerscore += 10 else: dealerscore += deck[0] del deck[0] playerhand.append(deck[0]) if deck[0] == "A": acescore = 0 while acescore != 1 and acescore != 11: print(playerhand, playerscore, "player") acescore = int(input("ace drew, 1 or 11?\n")) playerscore += acescore elif deck[0] in facecards: playerscore += 10 else: playerscore += deck[0] del deck[0] while playerscore < 21 and gambling == "y": print(dealerhand, dealerscore, "dealer") print(playerhand, playerscore, "player") gambling = input("keep gambling? (y/n)\n") if gambling == "y": playerhand.append(deck[0]) if deck[0] == "A": acescore = 0 while acescore != 1 and acescore != 11: acescore = int(input("ace drew, 1 or 11?\n")) playerscore += acescore elif deck[0] in facecards: playerscore += 10 else: playerscore += deck[0] del deck[0] while playerscore < 21 and dealerscore < 17: dealerhand.append(deck[0]) if deck[0] == "A": dealerscore += 11 elif deck[0] in facecards: dealerscore += 10 else: dealerscore += deck[0] del deck[0] if dealerscore > 21 and "A" in dealerhand: dealerscore -= 10 print(dealerhand, dealerscore, "dealer") print(playerhand, playerscore, "player") if playerscore > 21: print("lose, you busted") elif dealerscore > 21: print("win, dealer busted") elif 22 > playerscore > dealerscore: print("win") elif dealerscore == playerscore: print("tie.") elif dealerscore == 21: print("lose, dealer hit 21") else: print("lose") playagain = input("\nplay again? (y/n)\n") print("thanks for playing oomfie")