import random

# Initialisation des valeurs
totalBanque = 0
totalJoueur = 0
miseDepart = 0,0  #mise de départ peut compter les centimes
choix = "oui"

# Matrice représentant toutes les cartes
matrice = [
    [2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11],  # cartes standards
]

# Choix de la mise de départ du joueur
print("""

╔═╗┌─┐┬┌┬┐┌─┐┌─┐  ┬  ┬┌─┐┌─┐   ┬┌─┐┬ ┬─┐ ┬
╠╣ ├─┤│ │ ├┤ └─┐  └┐┌┘│ │└─┐   │├┤ │ │┌┴┬┘
╚  ┴ ┴┴ ┴ └─┘└─┘   └┘ └─┘└─┘  └┘└─┘└─┘┴ └─
                                                                                                      
""")
miseDepart = float(input())
for i in range(3, 0, -1):   #décompte de 3 à 1
    print(f"{i}!\n")
print(""""
      
╦  ┌─┐┌─┐   ┬┌─┐┬ ┬─┐ ┬  ┌─┐┌─┐┌┐┌┌┬┐  ┬  ┌─┐┌┐┌┌─┐┌─┐┌─┐  ┬
║  ├┤ └─┐   │├┤ │ │┌┴┬┘  └─┐│ ││││ │   │  ├─┤││││  ├┤ └─┐  │
╩═╝└─┘└─┘  └┘└─┘└─┘┴ └─  └─┘└─┘┘└┘ ┴   ┴─┘┴ ┴┘└┘└─┘└─┘└─┘  o

      """)

# Fonction pour tirer une carte aléatoire
def tirer_carte():
    return random.choice(random.choice(matrice))

# Fonction pour déterminer si une carte de valeur 10 est spéciale
def carte_speciale(valeur):
    cartes_spéciales = ["10", "Valet", "Dame", "Roi"] #définition des cartes ayant la valeur 10
    return random.choice(cartes_spéciales) if valeur == 10 else str(valeur)

# Premier tirage de carte du joueur et de la banque
print("LA PREMIÈRE CARTE EST DISTRIBUÉE.\n") 
totalJoueur += tirer_carte()  #MAJ total du joueur
totalBanque += tirer_carte()  #MAJ total de la banque
print(f"VOTRE TOTAL EST: {totalJoueur}")
print(f"LE TOTAL DE LA BANQUE EST : {totalBanque}\n")

# Boucle principale pour le tour par tour
while True:
    # Tour du joueur
    if choix == "oui" and totalJoueur < 21:  #condition pour tirer une carte
        print("VOTRE TOUR. VOUS TIREZ UNE CARTE.\n")
        carte = tirer_carte()  #appel de la fonction pour tirer une carte aléatoire
        if carte == 11:
            print("VOUS AVEZ TIRÉ : As.")
        elif carte == 10:
            print(f"VOUS AVEZ TIRÉ : {carte_speciale(carte)} (valeur 10).")
        else:
            print(f"VOUS AVEZ TIRÉ : {carte}.")
        totalJoueur += carte  #MAJ total joueur
        print(f"VOTRE TOTAL EST MAINTENANT: {totalJoueur}.\n")
        
        if totalJoueur >= 21:  #condition de perte
            break  #si 21 arret du jeu
        
        print("VOULEZ VOUS TIRER UNE NOUVELLE CARTE ? (oui/non)\n")
        choix = input().strip().lower()
        while choix not in ["oui","Oui", "OUI", "non", "Non", "NON"]:
            print("VEUILLEZ CHOISIR ENTRE 'oui' ET 'non'.")
            choix = input().strip().lower() #pour les forceurs qui ne veulent pas mettre non ^^
    else:
        choix = "non"   #le joueur ne veut plus tirer
    
    # Tour de la banque
    if totalBanque < 17:
        print("TOUR DE LA BANQUE. ELLE TIRE UNE CARTE.")
        carte = tirer_carte()    #appel fonction aléatoire tirage de carte
        if carte == 11:
            print("LA BANQUE A TIRÉ : As.\n")
        elif carte == 10:
            print(f"LA BANQUE A TIRÉ : {carte_speciale(carte)} (valeur 10).\n")
        else:
            print(f"LA BANQUE A TIRÉ : {carte}.\n")
        totalBanque += carte   #MAJ total banque
        print(f"LE TOTAL DE LA BANQUE EST MAINTENANT : {totalBanque}.\n")
    
    # Conditions de fin
    if totalJoueur >= 21 or totalBanque >= 16 :
        break    #le jeu est arrêté

# Résultats finaux
print("\n--- Résultats finaux ---\n")
print(f"Votre total : {totalJoueur}")
print(f"Total de la banque : {totalBanque}")
if totalJoueur > 21:
    print("Vous avez dépassé 21, vous avez perdu !")
elif totalBanque > 21:
    print("La banque dépasse 21, vous gagnez !")
elif totalJoueur > totalBanque:
    print("Vous avez gagné !")
elif totalJoueur == totalBanque:
    print("Égalité, votre mise de départ vous revient.")
else:
    print("La banque a gagné.")
