我是編碼新手,并且一直在努力做到這一點,以便當玩家攻擊敵人時,它會更新敵人的健康狀況,并且玩家能夠再次攻擊,直到敵人的健康狀況為 0。
我想出了這個,但是每次我進行第二次攻擊時,地精的生命值都會回到 100 并從那里開始。
例如,如果我進行“基本攻擊”它會100-20 = 80,但是當我再次攻擊時,假設另一個“基本攻擊”它再次顯示 80 而不是 60。
def combat_enemy_goblin():
small_goblin_health = 100
attack_basic = 20
attack_special = 50
attack_ultimate = 100
print("You are now in combat with a small goblin!")
print("")
print("")
print("Small Goblin: ", small_goblin_health, "Health Points")
while True:
try:
users_attack = int(input("""
Your Moves
----------------------------
1 - Basic attack [20]
2 - Special attack [50]
3 - Ultimate attack [100]
4 - Run [repeating action]
----------------------------
What do you choose? """))
if users_attack == 1:
print("")
print("You use your basic attack")
print("")
print("The goblin has taken some damage")
print("")
print("Small Goblin: ", small_goblin_health - 20, "Health points")
print("")
else:
if users_attack == 2:
print("")
print("You use your basic attack")
print("")
print("The goblin has taken some damage")
print("")
print("Small Goblin: ", small_goblin_health - 50, "Health points")
print("")
else:
if users_attack == 3:
print("")
print("You use your basic attack")
print("")
print("The goblin has taken some damage")
print("")
print("Small Goblin: ", small_goblin_health - 100, "Health points")
print("")
else:
if users_attack == 4:
print("")
print(" You tried to run away but failed!")
except:
print("")
print("You cant do that!")
print("")
combat_enemy_goblin()
uj5u.com熱心網友回復:
您在代碼中的問題是您只是從地精健康中減去價值,而不是改變它。
我寫了一條評論,我在其中更改了代碼。
-=在代碼中意味著您正在從變數中洗掉值并將其分配給結果。
num = 10
print(num) # Output: 10
num-=1
print(num) # Output: 9
代碼中的另一項更改是即使地精健康為 0 或更少,您也不會退出程式,我將在下面的代碼中添加它。
small_goblin_health = 100
attack_basic = 20
attack_special = 50
attack_ultimate = 100
print("You are now in combat with a small goblin!")
print("")
print("")
print("Small Goblin: ", small_goblin_health, "Health Points")
while True:
if small_goblin_health<=0: # edited
break # exit the loop if small_goblin_health is less than or equal to 0.
try:
users_attack = int(input("""
Your Moves
----------------------------
1 - Basic attack [20]
2 - Special attack [50]
3 - Ultimate attack [100]
4 - Run [repeating action]
----------------------------
What do you choose? """))
if users_attack == 1:
small_goblin_health-=20 #edited
print("")
print("You use your basic attack")
print("")
print("The goblin has taken some damage")
print("")
print("Small Goblin: ", small_goblin_health, "Health points")
print("")
elif users_attack == 2:
small_goblin_health-=50 #edited
print("")
print("You use your basic attack")
print("")
print("The goblin has taken some damage")
print("")
print("Small Goblin: ", small_goblin_health, "Health points")
print("")
elif users_attack == 3:
small_goblin_health-=100 #edited
print("")
print("You use your basic attack")
print("")
print("The goblin has taken some damage")
print("")
print("Small Goblin: ", small_goblin_health, "Health points")
print("")
elif users_attack == 4:
print("")
print(" You tried to run away but failed!")
except ValueError: # edited
print("")
print("You cant do that!")
print("")
uj5u.com熱心網友回復:
希望這會有所幫助
if users_attack == 1:
small_goblin_health -= 20
elif users_attack == 2:
small_goblin_health-=50
elif users_attack == 3:
small_goblin_health-=100
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/469359.html
標籤:Python python-3.x
上一篇:如何為相鄰列中不同的紅色值著色?
