import random import time import os import sys animation = ["[│]", "[/]", "[─]", "[╲]", "[│]", "[/]", "[─]", "[╲]", "[!]"] card_values = { 'A': 11, # value of the ace is high until it needs to be low '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '10': 10, 'J': 10, 'Q': 10, 'K': 10 } def title(): print("\n") time.sleep(.1) print(".------..------..------..------..------. .------..------..------..------.") time.sleep(.1) print("|B.--. ||L.--. ||A.--. ||C.--. ||K.--. | |J.--. ||A.--. ||C.--. ||K.--. |") time.sleep(.1) print("| :(): || :/\: || (\/) || :/\: || :/\: | | :(): || (\/) || :/\: || :/\: |") time.sleep(.1) print("| ()() || (__) || :\/: || :\/: || :\/: | | ()() || :\/: || :\/: || :\/: |") time.sleep(.1) print("| '--'B|| '--'L|| '--'A|| '--'C|| '--'K| | '--'J|| '--'A|| '--'C|| '--'K|") time.sleep(.1) print("`------'`------'`------'`------'`------' `------'`------'`------'`------'") time.sleep(.1) print("\n") def LoadingAnim(seconds): delay = seconds / 9 for i in range(len(animation)): time.sleep(delay) sys.stdout.write("\r" + animation[i % len(animation)]) sys.stdout.flush() def instructions(): print() def clear_screen(): os.system('cls' if os.name=='nt' else 'clear') #Variables playertotal = 0 dealertotal = 0 playagain = "y" win = "n" player_cards = [] dealer_cards = [] number = "" suite = "" def DealCards(num): repeat = 1 while repeat <= num: number = random.randint(2, 12) suite = random.randint(1, 4) card1 = (number, suite) player_cards.append(card1) number = random.randint(2, 12) suite = random.randint(1, 4) card2 = (number, suite) while card2 == card1: number = random.randint(2, 12) suite = random.randint(1, 4) card2 = (number, suite) dealer_cards.append(card2) repeat = repeat + 1 def DealCard(target, num): repeat = 1 while repeat <= num: number = random.randint(2,12) suite = random.randint(1,4) card = (number, suite) if target == "d": buffer = 1 while buffer <= len(dealer_cards): checknum = dealer_cards[buffer-1][0] checksuite = dealer_cards[buffer-1][1] while checknum == number and checksuite == suite: number = random.randint(2,12) suite = random.randint(1,4) dealer_cards.append(card) else: player_cards.append(card) repeat = repeat + 1 def PrintPlayerCards(): print("Your Hand:") cardnum = 1 while cardnum <= len(player_cards): value = player_cards[cardnum-1][0] if value == 11: value = "A" if value == 12: royalnum = random.randint(1,3) if royalnum == 1: value = "J" if royalnum == 2: value = "Q" if royalnum == 3: value = "K" suite = player_cards[cardnum-1][1] if value == 10: if suite == 1: print(" _____ ") print("|{}. |".format(value)) print("| /.\ |") print("|(_._)|") print("| | |") print("|_____|") if suite == 2: print(" _____ ") print("|{}^ |".format(value)) print("| / \ |") print("| \ / |") print("| . |") print("|_____|") if suite == 3: print(" _____ ") print("|{}_ |".format(value)) print("| ( ) |") print("|(_'_)|") print("| | |") print("|_____|") if suite == 4: print(" _____ ") print("|{}_ _|".format(value)) print("|( v )|") print("| \ / |") print("| . |") print("|_____|") else: if suite == 1: print(" _____ ") print("|{} . |".format(value)) print("| /.\ |") print("|(_._)|") print("| | |") print("|_____|") if suite == 2: print(" _____ ") print("|{} ^ |".format(value)) print("| / \ |") print("| \ / |") print("| . |") print("|_____|") if suite == 3: print(" _____ ") print("|{} _ |".format(value)) print("| ( ) |") print("|(_'_)|") print("| | |") print("|_____|") if suite == 4: print(" _____ ") print("|{}_ _ |".format(value)) print("|( v )|") print("| \ / |") print("| . |") print("|_____|") if value == "A": index = cardnum - 1 answer = input("What value would you like to give your ace? (1 or 11)?") if answer == "11": ace = 11 else: ace = 1 card_list = list(player_cards[index]) acesuite = card_list[1] del card_list[0] del card_list[0] card_list.append(ace) card_list.append(acesuite) player_cards[index] = tuple(card_list) cardnum = cardnum + 1 time.sleep(.1) def PrintDealerCards(): print("Dealer's Hand:") cardnum = 1 while cardnum <= len(dealer_cards): value = dealer_cards[cardnum-1][0] if value == 11: value = "A" suite = dealer_cards[cardnum-1][1] if value == 10: if suite == 1: print(" _____ ") print("|{}. |".format(value)) print("| /.\ |") print("|(_._)|") print("| | |") print("|_____|") if suite == 2: print(" _____ ") print("|{}^ |".format(value)) print("| / \ |") print("| \ / |") print("| . |") print("|_____|") if suite == 3: print(" _____ ") print("|{}_ |".format(value)) print("| ( ) |") print("|(_'_)|") print("| | |") print("|_____|") if suite == 4: print(" _____ ") print("|{}_ _|".format(value)) print("|( v )|") print("| \ / |") print("| . |") print("|_____|") else: if suite == 1: print(" _____ ") print("|{} . |".format(value)) print("| /.\ |") print("|(_._)|") print("| | |") print("|_____|") if suite == 2: print(" _____ ") print("|{} ^ |".format(value)) print("| / \ |") print("| \ / |") print("| . |") print("|_____|") if suite == 3: print(" _____ ") print("|{} _ |".format(value)) print("| ( ) |") print("|(_'_)|") print("| | |") print("|_____|") if suite == 4: print(" _____ ") print("|{}_ _ |".format(value)) print("|( v )|") print("| \ / |") print("| . |") print("|_____|") if value == "A": index = cardnum - 1 acevalue = dealer_cards[cardnum-1][0] rand = random.randint(1, 2) if rand == 1: ace = 1 else: ace = 11 card_list = list(dealer_cards[index]) acesuite = card_list[1] del card_list[0] del card_list[0] card_list.append(ace) card_list.append(acesuite) dealer_cards[index] = tuple(card_list) cardnum = cardnum + 1 time.sleep(.1) def PrintDealerCardsFirst(): print("Dealer's Hand:") cardnum = 1 while cardnum == 1: value = dealer_cards[cardnum-1][0] if value == 11: value = "A" suite = dealer_cards[cardnum-1][1] if value == 10: if suite == 1: print(" _____ ") print("|{}. |".format(value)) print("| /.\ |") print("|(_._)|") print("| | |") print("|_____|") if suite == 2: print(" _____ ") print("|{}^ |".format(value)) print("| / \ |") print("| \ / |") print("| . |") print("|_____|") if suite == 3: print(" _____ ") print("|{}_ |".format(value)) print("| ( ) |") print("|(_'_)|") print("| | |") print("|_____|") if suite == 4: print(" _____ ") print("|{}_ _|".format(value)) print("|( v )|") print("| \ / |") print("| . |") print("|_____|") cardnum = cardnum + 1 else: if suite == 1: print(" _____ ") print("|{} . |".format(value)) print("| /.\ |") print("|(_._)|") print("| | |") print("|_____|") if suite == 2: print(" _____ ") print("|{} ^ |".format(value)) print("| / \ |") print("| \ / |") print("| . |") print("|_____|") if suite == 3: print(" _____ ") print("|{} _ |".format(value)) print("| ( ) |") print("|(_'_)|") print("| | |") print("|_____|") if suite == 4: print(" _____ ") print("|{}_ _ |".format(value)) print("|( v )|") print("| \ / |") print("| . |") print("|_____|") cardnum = cardnum + 1 while cardnum <= len(dealer_cards) and cardnum != 1: print(" _____ ") print("| |") print("|#####|") print("|#####|") print("|#####|") print("|_____|") cardnum = cardnum + 1 def Lose(): clear_screen() print("Bust!") clear_screen() LoadingAnim(1) title() #Start of Game Loop if playagain == "y": input("Press any key to play... ") clear_screen() if win == "n": print("") print("Dealing Hands...") LoadingAnim(1) DealCards(2) print("") clear_screen() PrintPlayerCards() print("") PrintDealerCardsFirst() print("\n") print("(s)tand or (h)it") answer = input() if answer == "s": clear_screen() PrintPlayerCards() PrintDealerCards() buffer = 1 playertotal = 0 while buffer <= len(player_cards): playertotal = playertotal + player_cards[buffer-1][0] buffer = buffer + 1 if playertotal == 21: print("21!") print("Dealers Total...") LoadingAnim(2) buffer = 1 dealertotal = 0 while buffer <= len(dealer_cards): dealertotal = dealertotal + dealer_cards[buffer-1][0] buffer = buffer + 1 if dealertotal != 21: print("Dealer's total was {} you win!".format(dealertotal)) else: print("Dealer's total was {} tie!".format(dealertotal)) buffer = 1 dealertotal = 0 while buffer <= len(dealer_cards): dealertotal = dealertotal + dealer_cards[buffer-1][0] buffer = buffer + 1