完全公开——这是我的第一个堆栈溢出问题。我四处寻找类似的问题有一段时间了,但在我有限的知识范围内找不到对我有帮助的问题(有python全局变量问题,但给出的答案超出了我的理解范围)。在
我是编程新手,我正在通过zedshaw的python-hard-way学习python。我正在练习36,我的目标是写我自己的基于文本的游戏。在
游戏从以下函数开始
def start():
global Your_HP
Your_HP = 20
global Your_Ammo
Your_Ammo = 20
global HP_Scan
HP_Scan = 2
global your_stats
your_stats = [Your_HP, Your_Ammo, HP_Scan]
print "You enter a room with two doors"
print "Do you choose the Red Door\n...or the Blue door?"
start_choice = raw_input("> ")
if "red" or "Red" in start_choice:
monster_HP = 2
monster_attack = 3
red_one(your_stats, monster_attack, monster_HP)
red_one函数如下所示:
^{pr2}$脚本立即运行shoot函数,如下所示:
def shoot(Your_Ammo, monster_HP):
print "---------"
print "You have %d HP left" % Your_HP
print "How many shots do you fire?"
shots_fired = raw_input('> ')
shots_fired = int(shots_fired)
Your_Ammo -= shots_fired
monster_HP -= shots_fired
return Your_Ammo, monster_HP
问题是,当我运行脚本并只拍摄一次时,当我返回到red_one
的开头时,Your_Ammo
和{shoot
返回的更新后的值
我试着移动声明全局变量的位置(最初声明在所有函数之外,而不是在start
)中,我得到了一个“x变量是局部和全局”的错误。在
我知道一般来说,全局变量并不总是最好的主意,所以我只是希望有人能以一种优雅的方式将其分解,并提供一个有用的解决方案,而不管它是否包含全局变量。在
理想情况下,我希望在整个游戏过程中更新your_stats
列表中的变量。基本上,从游戏中的任何函数中,我希望能够返回your_stats
列表中的任何变量,这样我就可以使用该变量作为其他函数的参数,直到玩家耗尽生命或弹药。在
抱歉,这篇文章有点冗长!非常感谢任何帮助!在
目前没有回答
相关问题 更多 >
编程相关推荐