ЦП программы Блэкджек продолжает работать. (Python) - PullRequest
0 голосов
/ 15 октября 2018

Я недавно запустил python (3.7) в школе, и мое последнее задание - создать простую игру в блэкджек.Я почти закончил, но есть одна проблема, после того, как пользователь Twists или Sticks идет прямо к процессору, и они просто продолжают раздавать карты.Моя функция поворота работает нормально, и программа позволяет вам выбрать, является ли туз одним или одиннадцатью после того, как вы решите придерживаться, но после того, как он показывает, что пользователь берет свой ход, программы продолжают повторять «Вторая карта дилера ...»Итог у дилера ... »перед случайной остановкой со строкой« Дилер застрял с… »Я уверен, что есть какое-то легкое исправление, с которым кто-то может мне помочь, и проблема, вероятно, связана с некоторым неправильным пониманиемкак работают циклы while, поэтому любая помощь приветствуется.Извините за любой грязный код, это одна из моих первых программ.

Заранее спасибо, код ниже

#Allows user to Twist or Stick     
while userStick == False:
    userChoice = input("Twist (T) or Stick (S)?")
    if userChoice == ("T"):
        userNumThree = random.randint(1,13)
        if userNumThree == 11 or userNumThree ==12 or userNumThree == 13:
            userNumThree = 10
        userTotal = userTotal + userNumThree
        print ("Your next card is...")
        time.sleep(0.5)
        print (userNumThree)
        if userNumThree == 1 and userAce == False:
            userAce = True
            time.sleep(0.5)
        print ("Your total is...")
        time.sleep(0.5)
        print (userTotal)
        if userTotal > 21:
            userBust = True
            print ("You have bust!")
            break

    if userChoice == ("S"):
        userStick = True
        if userAce == True:
            aceNumber = input("Do you want your ace to be a 1 or and 11")
            if aceNumber == "11":
                userTotal = userTotal + 10
            elif aceNumber == "1":
                userTotal == userTotal
            else:
                print ("I did not understand that number, so one has been chosen as default")
        print ("Okay, your final total is...")
        print (userTotal)
    break


#Allows the dealer to twist or stick            
while cpuStick == False:
    cpuTotal = cpuNumTwo
    if cpuTotal < 17:
        cpuNumThree = random.randint(1,13)
        if cpuNumThree == 11 or cpuNumThree == 12 or userNumThree == 13:
            cpuNumThree = 10
        if cpuNumThree == 1 and cpuAce == False:
            cpuAce = True
        cpuTotal = cpuTotal + cpuNumThree
        if cpuAce == True and cpuTotal + 10  >= 17 and cpuTotal + 10 <= 21:
            cpuStick = True
            cpuTotal = cpuTotal + 10
            print ("The Cpu has stuck with...")
            print (cpuTotal)                
            break

        print ("The dealer's second card is...")
        print (cpuNumThree)
        print ("The dealer's total is...")
        time.sleep(0.5)
        print (cpuTotal)

    elif cpuTotal >= 17:
        cpuStick = True
        print("The cpu has stuck with...")
        print (cpuTotal)
        break


    if cpuTotal > 21:
        cpuBust = True
        print("The dealer has Bust! You win")
        break

if userStick == True and cpuStick == True:
    if userStick > cpuStick:
        print ("You win!")
    elif cpuStick > userStick:
        print ("You lose!")
...