【发布时间】:2018-10-24 19:30:54
【问题描述】:
如何在 2D python3 数组上存储 10x10(100 单位)游戏地图?
这是我当前的代码:
53 worldMap = [[13, 13, 13, 13, 13, 13, 13, 13, 13, 13], [13, 13, 13,
13, 13, 13, 13, 13, 13, 13]]
236 porq = 0
237 genX = 0
238 genY = 0
239
240 #world generator
241 while not 13 in worldMap:
242 porq = porq + 1
243 genIncoming = randint(1, 12)
244 worldMap[genX][genY] = genIncoming
245 genX = genX + 1
246 genY = genY + 1
247 print(worldMap)
正在抛出错误:
"Traceback(最近一次调用最后一次): 文件“python”,第 244 行,在 IndexError: 列表索引超出范围"
【问题讨论】:
-
你能在代码上加上行号吗?回溯说第 244 行,但我们不知道那是哪一部分,因为这只是一个 sn-p。
-
第 244 行是 worldMap[genX][genY] = genIncoming
-
我添加了行号
-
好的,如果你想要一个 tldr,请检查我答案的最后一部分。为您提供了一种简单的方法,无需担心多个 for 循环和其他东西。同样正如在另一个答案中所说,您正在增加列索引和行索引,因此您正在访问对角线中的元素。此外,您的 while 条件是
while not 13 in worldmap始终为假,因为首先worldmap不会改变,其次,它包含 13 的列表列表,而不是数字 13 本身。
标签: python arrays python-3.x 2d