Я недавно запустил 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!")