Tohit = random.randrange(12, 32)
назначает Tohit
целому числу, но вы выполняете сравнение строк в if Tohit == "31":
, меняете его на Tohit==31
, и код должен работать:)
Кроме того, вы хотели бы изменить while str(rolls) > str(0):
на while rolls > 0
и y, чтобы сделать его целочисленным или целочисленным сравнением, аналогично измените while str(critrolls) > str(0)
на while critrools > 0
Также ваш while critrools > 0
представляет собой бесконечный цикл, поскольку critrolls = 2
и 2>0
приведут к бесконечному циклу, поскольку вы никогда не меняете значение critrolls
, вам необходимо обновить его в цикле, возможно, выполните critrolls = critrolls - 1
Учитывая все эти изменения, ваш обновленный код может выглядеть как
import random
rolls = 2
critrolls = 4
FDMG = 6
DMG = 0
Tohit = random.randrange(12, 32)
#Change to int to int comparison
if Tohit == 31:
# Change to int to int comparison
while critrolls > 0:
DMG = random.randrange(1, 9)
FDMG = FDMG + DMG
#Perhaps you need to decrement critrolls here to break infinite loop
# Change to int to int operation by removing int typecast
critrolls -= 1
print("Your to hit is", Tohit)
print("Your Damage is", FDMG)
elif Tohit <= 30:
# Change to int to int comparison
while rolls > 0:
DMG = random.randrange(1, 9)
FDMG = FDMG + DMG
# Change to int to int operation by removing int typecast
rolls -= 1
print("Your to hit is", Tohit)
print("Your Damage is", FDMG)