【发布时间】:2021-06-02 07:22:51
【问题描述】:
我正在开发一个游戏项目,并希望使用 NumPy 数组创建一个游戏板。所以我为此定义了一个函数 board() 。但是当我尝试改变板子的一个元素时,它并没有改变。
代码
import numpy as np
def board():
game = np.zeros((6, 6))
return game
board()[1, 1] = 6
print(board()[1, 1]) # Expected Output = 6, Instead it gives 0
我猜局部和全局变量存在一些问题。我在这个网站上搜索了它,但没有找到预期的解决方案。我知道如何更改在函数内部调用的全局变量,但我不知道如何更改局部变量。任何帮助将不胜感激。
【问题讨论】:
-
board每次调用时都会创建一个 new 板:board()[1, 1] = 6创建一个新板,更改位置1, 1,然后将其丢弃;print(board()[1, 1])创建一个新板并查看其1, 1位置。两人不共用一块板。 -
您能说明一下您希望它如何工作吗?拥有
board()函数的目的是创建一个新的 板。修改板的目的是拥有一个板。你想要这两个中的哪一个? -
在游戏的某些阶段,我想将棋盘的值更改为一个数字。而这些价值变化将是永久性的
-
您可以像 Corralien 的回答那样创建一个全局变量,或者向您的
board()函数添加参数(例如,坐标:元组,值:int)并使用这些参数更改game变量。 -
你好@nick 我对你的建议很感兴趣。您能否将其发布为带有代码的答案
标签: python numpy local-variables