我第一次来这里。 我允许在python嵌套列表上提出一些建议。 我实际上尝试使用python和pygame来制作一个简单的基于网格的游戏。 我想使用列表列表来保存我的char移动的地图。 所以这是我的地图:
basic_map=[['NW',1,1,1,'NE'],
[1,0,0,0,1],
[1,0,0,0,1],
[1,0,0,0,1],
['SW',1,1,1,'SE']]
一个正方形,四个角,每个角都有方向。 然后我使用嵌套for来绘制地图:
for x in range (5):
for y in range (5):
str3=str(basic_map[x][y])
text3=font.render(str3,True,white)
screen.blit(text3,(100+40*x,100+40*y))
这里开始我的问题,我不明白为什么我的地图显示倒置的行和列。 我有一个解决方案,在显示时反转x和y,但随后运动将无法正常,因为北(x = 0,y = -1)将表现为东方等等。
我不明白为什么自从这个基本的事情发生一周后我就被困住了。 我通过互联网搜索了很多,并且还通过IRC询问但是还不幸运。
我不会问一个准备使用的代码,而是一个简单的解释来理解我的错。我会理解我在说什么,因为我不是英国人。
先谢谢
答案 0 :(得分:0)
访问多维列表时,例如,有两个整数可用于indeces [x][y]
。在您的情况下,您将x放在第一个括号中。这是外部列表中的第x个列表的getter。这是因为您基本上在列表中设置的地图,其中列表中的每个项目都是地图中的一行,每行包含整个列的元素。应该使用x维度变量来访问ROW列表中的项目。尝试像这样设置地图:
basic_map = [['NW',1,1,1'SW'],
[1,0,0,0,1],
[1,0,0,0,1],
[1,0,0,0,1],
['NE',1,1,1,'SE']]
这看似违反直觉,但它可以让您更直观地访问地图上的网格。
答案 1 :(得分:0)
当我运行这个时,我得到这个输出
所以你可以做的只是切换NE
和SW
以便它可以正常工作
它看起来像这样:
了解其工作原理为您添加0
地图列表,如下所示:
self.basic_map=[['NW',1,0,1,'SW'],
[1,0,0,0,1],
[1,0,0,0,1],
[1,0,0,0,1],
['NE',1,0,1,'SE']]
当你运行它输出时:
即使你将0
放在顶部和底部的行上,程序也会将0
放在两侧,这样它基本上就是你的地图并转动它以便水平行成为垂直柱子
希望这有帮助:)