from math import *
from random import *

Budget = 1000

while True:
    Einsatz = int(input("Wie viel bist du bereit zu setzen?\n"))
    if Einsatz > Budget:
        print("Du hast nicht genug Geld")
        Einsatz = 0
    else:
        Budget -= Einsatz
        break
print("Sie haben", Einsatz, "CHF gesetzt!")

J = 10
D = 10
K = 10
A = 11

AlleDecks = [2, 3, 4, 5, 6, 7, 8, 9, 10, J, D, K, A] * 24


def randomizer():
    global Auswahl
    Auswahl = randint(0, 311)  # Hier wird eine Zahl von 0-311 random ausgesucht


SpielerKarten = []  # Karten des Spielers zu Beginn des Spiels
DealerKarten = []  # Karten des Dealers zu Beginn des Spiels


def Spielanfang():
    for i in range(2):
        randomizer()
        Umwandlung = AlleDecks[Auswahl]
        SpielerKarten.append(Umwandlung)
    print("Karten des Spielers", SpielerKarten)
    print("Summe der Karten des Spielers:", sum(SpielerKarten))

def DealerAnfang():
    randomizer()
    Umwandlung = AlleDecks[Auswahl]
    DealerKarten.append(Umwandlung)
    print("Die Anfangskarte des Dealers:", DealerKarten)
    print("Summe der Karten des Dealers:", sum(DealerKarten))

def askIfSpielerZug():
    while True:
        Frage = str(input("Willst du ziehen?")).upper()
        if Frage == "JA":
            print("Summe der Karten des Dealers:", (sum(DealerKarten)))
            SpielerZug()
            DealerZug()
            return True
        elif Frage == "NEIN":
            print("Schlusssumme des Spielers:", sum(SpielerKarten))
            DealerZug()
            print("Die Dealerkarten des Dealers:", DealerKarten)
            print("Die Schlusssumme des Dealers:", sum(DealerKarten))
            return False
        else:
            print("Bitte antworte mit Ja oder Nein!")


def DealerZug():
    while sum(DealerKarten) < 17:
        randomizer()
        Umwandlung = AlleDecks[Auswahl]
        DealerKarten.append(Umwandlung)
    print("Summe der Karten des Dealers:", sum(DealerKarten))

Tc = 0  # Turncounter

def SpielerZug():
    global Tc  # Turncounter
    Tc = Tc + 1  # Turncounter
    randomizer()
    Umwandlung = AlleDecks[Auswahl]
    SpielerKarten.append(Umwandlung)
    DifferenzSpieler = 21 - sum(SpielerKarten)
    print("Spielerkarten nach", Tc, ". Zug:", SpielerKarten)
    print("Summe der Spielerkarten nach", Tc, ". Zug:", sum(SpielerKarten))
    print("Differenz zu 21 fuer den Spieler nach dem", Tc, ". Zug:", DifferenzSpieler)
    if askIfSpielerZug():
        SpielerZug()
    else:
        return

def Ablauf():
    global Einsatz
    global Budget
    if sum(SpielerKarten) > 21 and sum(DealerKarten) <= 21:
        print("Schlusssumme des Spielers:", sum(SpielerKarten))
        DealerZug()
        print("Die Dealerkarten des Dealers:", DealerKarten)
        print("Die Schlusssumme des Dealers:", sum(DealerKarten))
        print("Der Dealer hat gewonnen")
        Einsatz = 0
        return Budget
    elif sum(SpielerKarten) > 21 and (sum(DealerKarten) > 21):
        print("Unentschieden")
        Einsatz = 0
        return Budget
    elif sum(SpielerKarten) <= 21 and sum(DealerKarten) > 21:
        print("Der Spieler hat gewonnen!")
        if Einsatz <= 1000:
            Gewinn = Einsatz * 2
            print("Sie haben", Gewinn, "CHF gewonnen!")
            Budget += Gewinn
            Einsatz = 0
        elif Einsatz > 1000:
            Gewinn = Einsatz * 3
            print("Sie haben", Gewinn, "CHF gewonnen!")
            Budget += Gewinn
            Einsatz = 0
        return Budget
    elif sum(SpielerKarten) <= 21 and sum(DealerKarten) <= 21:
        if sum(DealerKarten) < sum(SpielerKarten):
            print("Der Spieler hat gewonnen!")
            if Einsatz <= 1000:
                Gewinn = Einsatz * 2
                print("Sie haben", Gewinn, "CHF gewonnen!")
                Budget += Gewinn
                Einsatz = 0
            elif Einsatz > 1000:
                Gewinn = Einsatz * 3
                print("Sie haben", Gewinn, "CHF gewonnen!")
                Budget += Gewinn
                Einsatz = 0
            return Budget
        elif sum(DealerKarten) > sum(SpielerKarten):
            print("Der Dealer hat gewonnen!")
            Einsatz = 0
            return Budget
        elif sum(SpielerKarten) == sum(DealerKarten):
            print("Unentschieden!")
            Budget += Einsatz
            Einsatz = 0
            return Budget

Spielanfang()
DealerAnfang()

if askIfSpielerZug():
    SpielerZug()

DifferenzSpieler = 21 - sum(SpielerKarten)
DifferenzDealer = 21 - sum(DealerKarten)

print("Differenz zu 21 für den Spieler:", DifferenzSpieler)
print("Differenz zu 21 für den Dealer:", DifferenzDealer)

Budget = Ablauf()
print("Dein Budget ist jetzt:", Budget, "CHF")