<pre><code>import random
import time
</code></pre>
<p>您需要将<code>enemy_health</code>和<code>player_health</code>声明为全局变量,以便它们保持不变:</p>
<pre><code>startingP_health = 30
startingE_health = 30
enemy_health = startingE_health
player_health = startingP_health
</code></pre>
<p>此函数不必返回任何内容,因为您可以声明<code>global enemy_health</code>,然后为其赋值:</p>
<pre><code>def player_attack():
global enemy_health
time.sleep(1)
print ("What ability would you like to use? (free speech(fs), capitalism(c), or punch(p)")
ability_choice = input()
</code></pre>
<p>这不起作用,因为你在做<code>enemy_health = starting health - 3</code>,这意味着每一轮都会从开始的健康开始。相反,这里从当前值中减去<code>-=</code>:<code>enemy_health = enemy_health - 3</code>:</p>
<pre><code> if(ability_choice == "fs"):
enemy_health -= 3
elif(ability_choice == "c"):
enemy_health -= random.randint(1,6)
elif(ability_choice == "p"):
enemy_health -= random.randint(2,4)
else:
print("you fell.")
time.sleep(1)
print ("Enemy's health is now: ",enemy_health)
print("")
def enemy_attack():
global player_health
time.sleep(1)
print ("Enemy kicks you")
print ("")
player_health -= random.randint(1,3)
time.sleep(1)
print ("Your health is now ",player_health)
print ("")
def battle_trotsky():
global player_health
global enemy_health
print ("Enemy appears")
print ("")
time.sleep(1)
while player_health > 0 and enemy_health > 0:
</code></pre>
<p>函数通过<code>name()</code>调用,如下所示:</p>
<pre><code> player_attack()
enemy_attack()
if enemy_health <= 0:
time.sleep(1)
print ("You have killed the enemy")
if player_health <= 0:
print("Sorry you failed the mission you must restart the mission")
battle_trotsky()
</code></pre>