我正在研究一个机器人在一个8×8的二维网格房间里移动,其中一部分是初始化传感器,传感器由机器人周围最近的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.x, self.y-1]
用元组索引self.room
。如果是不规则数组,则必须使用self.room[self.x][self.y-1]
。问题来自你的
self.room
。因为:
是相同的:
这就是你的
tuple
错误。有两种可能性:
self.room
是一个二维数组,这意味着您可能是指:你想切
self.room
:请提供有关
self.room
的详细信息。你说
self.room
是一个“二维网格”--我假设它是一个列表列表。在这种情况下,您应该以而不是用对
self.x, self.y-1
索引外部列表。相关问题 更多 >
编程相关推荐