import random

hp = 20
drawdeck = ["H2","H3","H4","H5","H6","H7","H8","H9","H10","D2","D3","D4","D5","D6","D7","D8","D9","D10","SA","S2","S3","S4","S5","S6","S7","S8","S9","S10","SJ","SQ","SK","CA","C2","C3","C4","C5","C6","C7","C8","C9","C10","CJ","CQ","CK"]
random.shuffle(drawdeck)
card1 = ""
card2 = ""
card3 = ""
card4 = ""
weapon = 0
durability = 0
options = 0
end = 0
ran = 0
act = 0

def draw():
    if len(drawdeck) != 0:
        global options
        X = drawdeck[len(drawdeck) - 1]
        drawdeck.pop(len(drawdeck) - 1)
        options += 1
        return X
    else:
        return ""

def restock():
    global card1, card2, card3, card4, ran
    if card1 == "":
        card1 = draw()
    if card2 == "":
        card2 = draw()
    if card3 == "":
        card3 = draw()
    if card4 == "":
        card4 = draw()
    ran = 0

def evaluate(X):
    global hp, weapon, durability
    if "J" in X:
        X = X.replace("J", "11")
    elif "Q" in X:
        X = X.replace("Q", "12")
    elif "K" in X:
        X = X.replace("K", "13")
    elif "A" in X:
        X = X.replace("A", "14")

    if "S" in X:
        X = X.replace("S", "")
        if durability >= int(X) + 1:
            if int(X) - weapon >= 1:
                hp -= (int(X) - weapon)
            durability = int(X)
        else:
            hp -= int(X)
    elif "C" in X:
        X = X.replace("C", "")
        if durability >= int(X) + 1:
            if int(X) - weapon >= 1:
                hp -= (int(X) - weapon)
            durability = int(X)
        else:
            hp -= int(X)
    elif "D" in X:
        X = X.replace("D", "")
        weapon = int(X)
        durability = 15
    elif "H" in X:
        X = X.replace("H", "")
        hp += int(X)
        if hp >= 21:
            hp = 20

#--------------Actual code----------------#

while hp >= 1 and end == 0:

    #Format options
    for i in range(3):
        if card1 == "":
            if card2 != "":
                card1 = card2
                card2 = ""
        if card2 == "":
            if card3 != "":
                card2 = card3
                card3 = ""
        if card3 == "":
            if card4 != "":
                card3 = card4
                card4 = ""

    if options <= 1 and len(drawdeck) != 0:
        restock()

    #Prints values and gets user input
    while True:
        try:
            if options == 4:
                print(f"{card1}, {card2}, {card3}, {card4}")
            elif options == 3:
                print(f"{card1}, {card2}, {card3}")
            elif options == 2:
                print(f"{card1}, {card2}")
            elif options == 1:
                print(f"{card1}")
            elif options == 0:
                end = 1
            print(f"Health: {hp}, Weapon: {weapon} ({durability}), Rooms left: {len(drawdeck)}")
            if end == 0:
                if ran == 0 and len(drawdeck) != 0 and options == 4:
                    act = int(input("Room to enter (5 to run): "))
                else:
                    act = int(input("Room to enter: "))
        except ValueError:
            print("----------")
            print()
            continue
        break

    print("----------")
    print()

    #Removes chosen card or runs
    if act == 1:
        evaluate(card1)
        card1 = ""
        options -= 1
    elif act == 2:
        evaluate(card2)
        card2 = ""
        options -= 1
    elif act == 3:
        evaluate(card3)
        card3 = ""
        options -= 1
    elif act == 4:
        evaluate(card4)
        card4 = ""
        options -= 1
    elif act == 5 and options == 4 and ran == 0 and len(drawdeck) != 0:
        drawdeck.insert(0, card1)
        card1 = ""
        drawdeck.insert(0, card2)
        card2 = ""
        drawdeck.insert(0, card3)
        card3 = ""
        drawdeck.insert(0, card4)
        card4 = ""
        options -= 4
        restock()
        ran = 1

print("End")
if end == 1:
    print("You have cleared all rooms")