我正在使用Python中的2D数组开发一个简单的游戏网格。打印网格时,我已将每行的第一列设置为显示行标签,但必须将其反转才能工作(网格底部为1 - 顶部为5)。有没有办法创建数组,所以当我在位置[0] [1]插入一个值时,它出现在第二列而不是顶部的网格底部?
grid = [['' for x in range(1,6)] for x in range(1,6)]
# add the player pieces
grid[0][1]= 'P1'
grid[0][2]= 'P2'
grid[0][3]= 'P3'
grid[0][4]= 'P4'
label=['1-Start','2','3','4','5-Finish']
label.reverse()
i=0
for row in grid:
print (label[i]," ".join(row))
i+=1
我将使用行位置来计算游戏移动(向上或向下)。 (编辑) 这就是它目前的样子 - 我希望P1等的位置位于印刷网格的底部 - 有没有办法做到这一点?我无法上传图片,但这是打印出来的内容:
5-Finish P1 P2 P3 P4
4
3
2
1-Start
我想知道我是否可以创建数组,以便网格位置[0] [1]为值' P1'会像这样打印出来(我不需要反转我的标签列表):
5-Finish
4
3
2
1-Start P1 P2 P3 P4
答案 0 :(得分:0)
您可以使用负索引来定义网格。
grid[-1]
对应于最后一个单元格。
在这种情况下,请使用:
grid[-1][1]= 'P1'
grid[-1][2]= 'P2'
grid[-1][3]= 'P3'
grid[-1][4]= 'P4'
还有另一种方法可以继续;您可以通过这种方式反转列表索引grid[::-1]
:
for row in grid[::-1]:
print (label[i]," ".join(row))
i+=1