Пробовал написать текстовую игру на Python, вроде все работает как надо и ошибок пока не выдавал. Но при вводе числа ( 1 или 2 ) он просит ввести число заного не выполняя код( или выполняя я не очень понял)
Программированием занимаюсь ~1 мес.
Вот код:
import random
print("Добро пожаловать")
print("На вас напали, мой милорд!")
print("Вы достаете свой меч из ножен и кидаетесь в бой с врагом")
# жизни
health = 100
health_troll = 150
# кол-во троллей
trolls = 1
# урон
player_dmg = int(random.randint(10, 15))
troll_dmg = int(random.randint(30, 48))
# крит урон
player_crt_dmg = (player_dmg * 2)
troll_crt_dmg = (troll_dmg * 3)
# шанс крита
player_chance_to_crit = int(random.randint(1, 100))
troll_chance_to_crit = int(random.randint(1, 100))
# шанс похилиться\атаковвать
chance_to_heal = int(random.randint(1, 100))
chance_to_attack = int(random.randint(1, 100))
heal = int(random.randrange(20))
print(health, " это ваше здоровье, а", player_chance_to_crit, " это ваш шанс крит. атаки..."\
"Но по ходу игры они могут меняться\n")
player = (input("Введите 1( атаковать ) или 2( хилиться )\n"))
while health > 0:
while health_troll > 0:
# игрок бьет
if player == int(1):
# если попадает
if chance_to_attack >= 35:
# если критует player
if player_chance_to_crit >= 65:
health_troll -= player_crt_dmg
print("Рассекающим ударом вы нанесли ", player_crt_dmg, " по троллю" \
"и у него осталось ", health_troll)
# eсли критует troll
if troll_chance_to_crit >= 65:
health -= troll_crt_dmg
print("Троль ловко парировал вашу атаку и контр-атаковал на ", troll_crt_dmg, \
"у вас осталось", health)
# если не критует troll
if troll_chance_to_crit <= 65:
health -= troll_dmg
print("Троль ударил вас сокрушительной атакой на ", troll_dmg, "урона" \
"у вас осталось", health)
# смена статов
# если не критует player
if player_chance_to_crit <= 65:
health_troll -= player_dmg
print("Вы оскорбили честь и достоинство тролля и нанесли ", player_dmg, \
" но осталось еще ", health_troll)
# eсли критует troll
if troll_chance_to_crit >= 65:
health -= troll_crt_dmg
print("Троль ловко парировал вашу атаку и контр-атаковал на ", troll_crt_dmg, \
"у вас осталось", health)
# если не критует troll
if troll_chance_to_crit <= 65:
health -= troll_dmg
print("Троль ударил вас сокрушительной атакой на ", troll_dmg, "урона" \
"у вас осталось", health)
# cмена статов
player_dmg = int(random.randint(10, 15))
troll_dmg = int(random.randint(30, 48))
player_chance_to_crit = int(random.randint(1, 100))
troll_chance_to_crit = int(random.randint(1, 100))
player = (input("Введите 1( атаковать ) или 2( хилиться )\n"))
# если не попадает
if chance_to_attack <= 35:
print("Вы промазали. Такое иногда случается")
# eсли критует troll
if troll_chance_to_crit >= 65:
health -= troll_crt_dmg
print("Троль ловко парировал вашу атаку и контр-атаковал на ", troll_crt_dmg, \
"у вас осталось", health)
# смена статов
player = (input("Введите 1( атаковать ) или 2( хилиться )\n"))
# если не критует troll
if troll_chance_to_crit <= 65:
health -= troll_dmg
print("Троль ударил вас сокрушительной атакой на ", troll_dmg, "урона" \
"у вас осталось", health)
# смена статов
player_dmg = int(random.randint(10, 15))
troll_dmg = int(random.randint(30, 48))
player_chance_to_crit = int(random.randint(1, 100))
troll_chance_to_crit = int(random.randint(1, 100))
player = (input("Введите 1( атаковать ) или 2( хилиться )\n"))
# игрок хилится
if player == int(2):
if chance_to_heal >= 50:
health += heal
if chance_to_attack >= 90:
# eсли критует troll
if troll_chance_to_crit >= 65:
health -= troll_crt_dmg
print("Троль ловко парировал вашу атаку и контр-атаковал на ", troll_crt_dmg, \
"у вас осталось", health)
# смена статов
player_dmg = int(random.randint(10, 15))
troll_dmg = int(random.randint(30, 48))
player_chance_to_crit = int(random.randint(1, 100))
troll_chance_to_crit = int(random.randint(1, 100))
player = (input("Введите 1( атаковать ) или 2( хилиться )\n"))
# если не критует troll
if troll_chance_to_crit <= 65:
health -= troll_dmg
print("Троль ударил вас сокрушительной атакой на ", troll_dmg, "урона" \
"у вас осталось", health)
# смена статов
player_dmg = int(random.randint(10, 15))
troll_dmg = int(random.randint(30, 48))
player_chance_to_crit = int(random.randint(1, 100))
troll_chance_to_crit = int(random.randint(1, 100))
player = (input("Введите 1( атаковать ) или 2( хилиться )\n"))
trolls += 1
print("YOU DIED\n")
print("Вы убили ", trolls, "врагов")
print(input("\nEnter для выхода"))
Так же хотелось бы сократить код