0

我第一次来这里。我允许就 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 询问过,但并不幸运。

我不要求准备好使用的代码,而是要求一个简单的解释来理解我的错误。希望你能理解我在说什么,因为我不是英语本地人。

提前致谢

4

2 回答 2

0

例如,当访问多维列表时,有 2 个整数可用于 indeces [x][y]。在您的情况下,您将 x 放在第一个括号中。这是外部列表内部的第 x 个列表的吸气剂。这是因为您在列表中设置的地图基本上是一个列表,其中列表中的每个项目都是地图中的一行,每一行由整个列的元素组成。x-dimension 变量应该用于访问 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']]

这可能看起来违反直觉,但它可以让您更直观地访问地图上的网格。

于 2013-07-26T23:07:52.870 回答
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']]

当您运行它时,它会输出:

在此处输入图像描述

即使您将0s 放在顶行和底行,程序也将0s 放在两侧,因此它基本上会获取您的地图并转动它,以便水平行变为垂直列

希望这有帮助:)

于 2013-07-26T23:18:55.913 回答