首页 > 解决方案 > (Python3) 在 python 数组上存储 10x10 游戏地图

问题描述

如何在 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)

正在抛出错误:

“回溯(最近一次调用最后一次):文件“python”,第 244 行,在 IndexError:列表索引超出范围”

标签: pythonarrayspython-3.x2d

解决方案


您需要嵌套的两级 for 循环来遍历地图。您所拥有的仅在地图的对角线上生成块,即您正在为(0,0),(1,1),(2,2),...生成地图,这也解释了索引超出范围错误。

尝试这个

for genX in range(10):
    for genY in range(10):
        worldMap[genX][genY] = randint(1, 12)

推荐阅读