Первый код ,первая проблема
Решил сделать что-то вроде текстовой игры,просто для себя, чтобы как-то разобраться в Питоне. Как сделать оставшуюся прочность переменной? Чтобы следующий выстрел вычитался не из hp2=450, а из оставшийся прочности?
import random
N1 = "PzKpfw V Panther"
a = random.randint(0, 100)
b = random.randint(80, 120)
c = random.randint(75,105)
r = random.randint(0, 100)
br1=90
hp = 450
N2 = "т34-85"
d = random.randint(0,100)
e = random.randint(80,110)
f = random.randint(80,105)
br2=90
hp2= 450
if a<65:
print ("PzKpfw V Panther делает выстрел")
print ("Попадание")
if r<11:
print ("Рикошет")
if b>br2 & r>11:
print ("Броня "+str(N2)+" пробита!")
if b>br2 & r>11:
print ("Нанесено " + str(c) + " урона")
if b<br2:
print ("Броня непробита")
if b>90 & r>11:
print ( "У " +str(N2)+" Осталось " "%.2f" % (hp2-c)+ " прочности")
Ответы (2 шт):
Если я верно понял вопрос:
import random
N1 = "PzKpfw V Panther"
a = random.randint(0, 100)
b = random.randint(80, 120)
c = random.randint(75,105)
r = random.randint(0, 100)
br1=90
hp = 450
N2 = "т34-85"
d = random.randint(0,100)
e = random.randint(80,110)
f = random.randint(80,105)
br2=90
hp2= 450
_hp2=hp2
if a<65:
print ("PzKpfw V Panther делает выстрел")
print ("Попадание")
if r<11:
print ("Рикошет")
if b>br2 & r>11:
print ("Броня "+str(N2)+" пробита!")
if b>br2 & r>11:
print ("Нанесено " + str(c) + " урона")
_hp2-=c # добавил
if b<br2:
print ("Броня не пробита")
if b>90 & r>11:
# либо можно сюда поставить _hp2-=c
print ( "У " +str(N2)+" Осталось " "%.2f" % (_hp2)+ " прочности")
Вместо последних 2 комманд
if b>90 & r>11:
print ( "У " +str(N2)+" Осталось " "%.2f" % (hp2-c)+ " прочности")
используйте
if b>90 & r>11:
hp2 = hp2 - c # прежде всего обновить hp2; возможна короткая форма: hp2 -= c
print( "У " +str(N2)+" Осталось " "%.2f" % hp2+ " прочности") # hp2 вместо (hp2-c)
Примечание:
Вы используете старый стиль форматирования — очень некрасиво для чтения.
Когда у вас Питон 3.6 или выше, примените форматирующую строку (буква f непосредственно перед открывающей кавычкой):
print(f"У {N2} осталось {hp2:.2f} прочности")
(в фигурных скобках — прямо имена переменных или выражения, формат за двоеточием, когда он нужен, str() совсем не надо).
Для низшей версия Питона, исключите f, вместо того добавите .format() и переменные перенесите в скобки — так:
print("У {} осталось {:.2f} прочности".format(N2, hp2))
(это будет работать вне зависимости от версии Питона — но не в очень, очень старых).
То же самое возможно сделать и в ваших других применениях функции print().