如何在整个代码中进行 while 循环.(蟒蛇)



我目前正在制作一个基于文本的游戏,关于穿过一座废弃的房子,并找到抵御怪物的物品等等。我想要一个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的新手,所以请以我能理解的方式解释。

首先,global关键字只是为函数提供对变量的写入访问权限。它们始终可以读取在任何其他类/函数范围之外声明的变量。

我认为你想要的是以下内容:

  • 检查运行状况
  • 运行其余代码
  • 检查运行状况
  • 运行其余代码

广告无限...

如前所述,您当前正在做的是:

  • 检查运行状况
  • 运行其余代码

您将如何执行此操作:

while(health > lower_limit):
[the rest of the code]
print("you died") # game over

这样,"当运行状况高于下限时,[代码的其余部分]将运行"。

你可以把它写成:

health = 20
while health > 0:
print("You died to XYZ")
health -= 1

这将打印"You died to XYZ"20 次,因为循环将从运行状况 = 20 运行 20 次到运行状况 = 0。

但是,虽然运行状况<0 会认为它是零结果,因为 python 理解循环运行直到运行状况达到零。

我认为这不是详细解释为什么该代码不起作用的好地方。相反,请考虑以下游戏作为示例:

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?为什么或为什么不呢?如果可以的话,请继续修改它以适合您的目的。虽然我不认为全局health变量是最好的方法,但请尝试更改代码,使其使用global关键字来引用全局health变量。在使其工作时,您收到了哪些错误消息?在包含数十、数百或数千个文件的更大游戏中,您将如何管理它?

狩猎好!

最新更新