我目前正在制作一款基于文本的游戏,内容涉及在废弃的房屋中穿行,并找到怪物守卫的物品等等。我想要一个while循环系统,如果您的健康状况低于0(health=20
),则代码以说"You died to (insert event here)"
结尾。我是python编码的新手,所以我不确定如何编码。
我尝试使用if语句设置while循环,以检查运行状况是否低于0。这位于变量下方和函数上方的代码顶部附近
health = 20 #variable
while ( health < 0):
print("You died to [insert event here]\n")
break
它完全不执行任何操作,而是完全忽略了它。我不确定如何将代码放入函数中,因为我仍然需要使用“全局”将变量导入到函数中。如果您知道此问题的答案,或者您知道解决该问题的替代代码,请告诉我。同样,我是python新手,请以一种我能理解的方式进行解释。
答案 0 :(得分:0)
首先,global
关键字只是为函数提供 write 访问变量的权限。他们始终可以读取已在任何其他类/函数范围之外声明的变量。
我想您想要的是以下内容:
无限无限...
如上所述,您当前正在做的事情是:
您将如何执行此操作:
while(health > lower_limit):
[the rest of the code]
print("you died") # game over
这样,“当运行状况超过下限时,[其余代码]将运行”。
答案 1 :(得分:0)
您可以将其编写为:
health = 20
while health > 0:
print("You died to XYZ")
health -= 1
这将打印"You died to XYZ"
20次,因为循环将从运行状况= 20到运行状况= 0运行20次。
但是,健康状况<0会将其视为零结果,因为python理解运行直到健康状况为零的循环。
答案 2 :(得分:0)
我认为这不是一个详细解释为什么该代码不起作用的好地方。相反,请考虑以下游戏作为示例:
def adventure_around(pit_limit = 5, initial_position = 0):
position = initial_position
lived = False
print("Try not to die, noob!")
while position < pit_limit:
direction = input("Which way would you like to go? [n,s,e,w, or q]:")
if direction not in ['n', 's', 'e', 'w', 'q']:
print("Please choose a direction.")
continue
if direction == "n":
position += 1
if direction == 's':
position -= 1
if direction == "q":
print("Coward! (You lived, though.)")
lived = True
break
if not lived:
print("You fell into a pit and died while bravely wandering about! RIP")
adventure_around()
将其提供给您的python解释器,并对其进行处理。 (几分钟的乐趣!)然后研究代码。 (搜索也不是欺骗!)while
关键字有什么作用?外部代码中的信息如何传递给函数?为什么有两种方法退出while
循环?那是个好主意吗?有没有更好的方法来更新位置? lived
是否需要初始化?为什么或者为什么不?如果可以,请继续进行修改以适合您的目的。虽然我认为 global health
变量不是最佳选择,但请尝试更改代码,使其使用global
关键字引用全局{{ 1}}变量。在使它正常工作时,您收到什么错误消息?在拥有数十,数百或数千个文件的大型游戏中,您将如何处理?
打猎好!