gpt4 book ai didi

python - 如何使用函数更改全局变量

转载 作者:太空宇宙 更新时间:2023-11-03 20:58:14 27 4
gpt4 key购买 nike

好的,我正在为学校项目制作一个小型文本迷宫游戏。我使用 x 位置和 y 位置列表定义世界障碍,列表中值的位置可用于匹配这两个值并创建坐标。这可能会更有效,但至少有效。现在,我通过将 X 和 Y 值保存在 2 个变量中来跟踪玩家和敌人。这也很好用。

但是,为了使移动正常进行,我使用了一个函数,该函数首先检查是否没有玩家想去的地形。这一切都很好,但问题是我不知道如何从函数中更改全局变量“PlayerX”和“PlayerY”。

我已经尝试过“global”关键字,但它使编写代码变得有点困难,因为每当我用坐标编写新内容时,我都需要意识到它。我还阅读了我认为正在解决相同问题的其他主题,但似乎没有一个主题真正适合我遇到的问题(或者更可能的情况:我无法很好地理解它,以至于我无法将其应用到我的项目中)适本地提出问题)

def UpMove():
reference = []
listPosition = 0
movePossible = False

for x in worldObsY:
if x == playerY + 1:
reference.append(listPosition)

listPosition += 1

for x in reference:
if worldObsX[x] == playerX:
movePossible = False
else:
movePossible = True

if movePossible == True:
print ("You moved")
return playerY + 1
else:
print ("There's terrain there. Try a different way")
return playerY

全局编辑 X 和 Y 值会非常方便。我正在考虑尝试将变量放入我的运动循环中(一直播放到玩家死亡或走出迷宫),但这似乎是一个有一个非常简单的解决方案的问题,但我只是没有看到如此,在我尝试各种愚蠢的东西之前,我想我应该在这里提出一个问题......

最佳答案

好吧,只是不要使用全局变量。您可以像这样传递它们:

def otherFunction():
playerX = 0
playerX = 0
UpMove(playerX, playerY)
# other stuff

def UpMove(playerX, playerY):
reference = []
# your other stuff

关于python - 如何使用函数更改全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55871225/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com