Python 更新一个整数的值(我想)

Python 更新一个整数的值(我想),python,Python,我是python新手。目前我正在和一个朋友编写一个游戏。我们目前正在研制一种作战系统,唯一的问题是我们不知道一旦造成伤害,如何更新敌人的健康状况。代码如下 enemy1_health = 150 broadsword_attack = 20 rusty_knife = 10.5 attacks = ["broadsword swing " + str(broadsword_attack), "rusty knife jab " + str(rust

我是python新手。目前我正在和一个朋友编写一个游戏。我们目前正在研制一种作战系统,唯一的问题是我们不知道一旦造成伤害,如何更新敌人的健康状况。代码如下

enemy1_health = 150

broadsword_attack = 20
rusty_knife = 10.5 

attacks = ["broadsword swing " +  str(broadsword_attack), "rusty knife jab " + str(rusty_knife) ]



while enemy1_health > 0: 
  while player_health > 0:
    enemy1_health = 150
    print(attacks)
    attackchoice = input("Choose an attack: ")
    if attackchoice == ("broadsword swing"):
      print (int(enemy1_health - 20))
    if attackchoice == ("rusty knife jab"):
      print (int(enemy1_health - 10.5))
  print("you died")
  quit()   
print("you cleared the level")```

您需要使用以下语句更改打印语句之外的敌人生命值:

enemy1_health = enemy1_health - 20
enemy1_health = 150
broadsword_attack = 20
rusty_knife = 10.5
player_health = 100

attacks = ["broadsword swing " + str(broadsword_attack), "rusty knife jab " + str(rusty_knife)]

while enemy1_health > 0:
    print(attacks)
    attackchoice = input("Choose an attack: ")
    if attackchoice == ("broadsword swing"):
        enemy1_health -= 20
    if attackchoice == ("rusty knife jab"):
        enemy1_health -= 10.5
    print(enemy1_health)
    if player_health <= 0:
        print("you died")
        quit()
print("you cleared the level")
或者像这样,做同样的事情:

enemy1_health -= 20
您还可以在每次循环循环时重置enemy1_运行状况,然后将其移除

你没有定义玩家的健康,定义它

你的循环会一直持续到你死

因此,您的代码应该更像这样:

enemy1_health = enemy1_health - 20
enemy1_health = 150
broadsword_attack = 20
rusty_knife = 10.5
player_health = 100

attacks = ["broadsword swing " + str(broadsword_attack), "rusty knife jab " + str(rusty_knife)]

while enemy1_health > 0:
    print(attacks)
    attackchoice = input("Choose an attack: ")
    if attackchoice == ("broadsword swing"):
        enemy1_health -= 20
    if attackchoice == ("rusty knife jab"):
        enemy1_health -= 10.5
    print(enemy1_health)
    if player_health <= 0:
        print("you died")
        quit()
print("you cleared the level")
enemy1\u健康=150
大刀攻击=20
生锈的_刀=10.5
玩家健康=100
攻击=[“大刀挥舞”+str(大刀攻击),“生锈的刀戳”+str(生锈的刀)]
当enemy1_health>0时:
打印(攻击)
attackchoice=输入(“选择攻击:”)
如果攻击选择==(“大刀摆动”):
灌肠1_健康-=20
如果攻击选择==(“生锈的刀刺”):
灌肠1_健康-=10.5
打印(enemy1_健康)

如果player_health您必须定义while循环上方的健康度,如下所示:

broadsword_attack = 20
rusty_knife = 10.5
attacks = ["broadsword swing " +  str(broadsword_attack), "rusty knife jab " + str(rusty_knife) ]
enemy1_health = 150


while enemy1_health > 0: 
  while player_health > 0: 
    print(attacks)
    attackchoice = input("Choose an attack: ")
    if attackchoice == ("broadsword swing"):
      enemy1_health -=20
      print (int(enemy1_health))
    if attackchoice == ("rusty knife jab"):
      enemy1_health -=10.5
      print (int(enemy1_health))
  print("you died")
  quit()   
print("you cleared the level")
避免在循环的每次迭代中将运行状况重新定义为150。并将这些值分配给health,而不仅仅是打印它。这意味着无论你做什么,敌人都不会失去健康。
另外还有一个问题,因为你从不减少玩家的生命值,这将导致一个无限循环

你需要在print语句之外更改敌人的生命值。 做:

你也可以对其他攻击做同样的处理


您还可以在while循环中定义敌人的生命值。您需要在循环之外定义它。

否。这与我无关that@loki你在说什么?这很有帮助