所以我做了一个包含2d数组的游戏,我要求用户输入一个网格的高度和宽度,下面是生成网格的代码
Grid=[['O'for x in range(gridS[0])]for y in range(gridS[1])]
我稍后将网格[0]和1更改为gridX和Y
然后我尝试将玩家添加到网格中,再次询问用户有多少玩家(存储在可变对手中),然后添加那么多玩家
if opponents>0:
Grid[gridX-1][gridY-2]='P'
if opponents>1:
Grid[0][(gridY-2)]='P'
if opponents>3:
Grid[gridX-1][0]='P'
但是,在测试时,会出现以下错误:
>>> How many bots do you want to play against?
>>> 10
>>> Please enter a number between 0 and 3
>>> 2
2
Grid[gridX-1][gridY-2]='P'
IndexError: list assignment index out of range
问题是你的嵌套理解构造了一个维度为“翻转”的嵌套数组。考虑:
这通常被称为“矩阵”。尽管这是一个危险信号,但这是一个符号问题。最基本的问题是您正在使用
gridX, gridY = dims
索引到第一轴。所以:要解决所有问题,请使用以下理解:
换句话说,内在的理解创造了第二个轴,外在的理解创造了第一个轴。但你的想法正好相反。你知道吗
相关问题 更多 >
编程相关推荐