我正在努力使机器人围绕8 x 8的2d网格室移动,其中一部分正在初始化传感器,该传感器由围绕机器人的最近5个瓦片组成。
self.sensors = [0 for x in xrange(5)]
在这里,我创建了一个由5个元素组成的数组。
但是当我尝试像这样设置传感器的值时:
if self.heading == 'East': self.sensors[0] = self.room[self.x, self.y-1] self.sensors[1] = self.room[self.x+1, self.y-1] self.sensors[2] = self.room[self.x+1, self.y] self.sensors[3] = self.room[self.x+1, self.y+1] self.sensors[4] = self.room[self.x, self.y+1]
我得到“列表索引必须是整数,而不是元组”的错误。
您说的self.room是一个“二维网格”-我假设它是一个列表列表。在这种情况下,您应该以以下方式访问其元素
self.room
self.room[self.x][self.y-1]
而不是用该对索引外部列表self.x, self.y-1。
self.x, self.y-1