因此,我正在为学校作业编写一个基于RPG文本的游戏,尽管我在为玩家健康创建一个全局变量方面遇到了困难,因为我已经在一个定义的函数中编写了战斗逻辑。目前,每次通过函数播放时,它都会将playerHealth设置为100,尽管我希望它使playerHealth等于上次修改时的值。例如:如果我在一场战斗中失去了10点生命值,使我的生命值达到90,那么下次我战斗时它将被设置为90点生命值
def battle():
playerHealth = 100
enemyHealth = 20
while enemyHealth > 0:
attack = input('Melee or Ranged Attack?\n> ').lower()
if attack[0] == 'm':
chance = random.randint(0,2)
if chance == 0:
print('***********')
print('You missed!')
print('***********')
print('You receive 4 damage')
playerHealth -= 4
print('')
print('Player Health = ' + str(playerHealth))
else:
print('You hit the enemy, also causing damage to yourself')
print('Enemy receives 3 damage')
print('Player receives 1 damage')
enemyHealth -= 4
playerHealth -= 1
print('')
print('Enemy Health = ' + str(enemyHealth))
print('Player Health = ' + str(playerHealth))
elif attack[0] == 'r':
chance = random.randint(0,2)
if chance == 0:
print('***********')
print('You missed!')
print('***********')
print('The enemy attacks you causing 3 damage')
playerHealth -= 3
print('')
print('Player Health = ' + str(playerHealth))
else:
print('-----------')
print('Direct hit!')
print('-----------')
print('Enemy receives 2 damage')
enemyHealth -= 2
print('')
print('Enemy Health = ' + str(enemyHealth))
print('---------------------')
print('You killed the enemy!')
print('---------------------')
所以后来我会用:
if "enemy" in deadZone[currentArea1]:
battle()
在函数外部初始化它,将它传递给函数,并让函数返回它
相关问题 更多 >
编程相关推荐