【发布时间】:2022-11-29 12:44:44
【问题描述】:
我正在制作一个列表来存储我的方向:
direction = [(0, +24),(+24,0),(0, -24),(-24,0)]
并在此函数中使用该列表来确定机器人将采取(或回溯)的下一个方向
def backtrack(self,x,y,direction):
x_walls = round(sprite.xcor(), 0)
y_walls = round(sprite.ycor(), 0)
visited.append((x_walls, y_walls))
for i in range(4):
new_direction = (direction + i) % 4
new_x = x + direction[new_direction][0]
new_y = y + direction[new_direction][1]
if (new_x,new_y) not in visited and sprite.spriteMove():
sprite.backtrack(new_x,new_y,new_direction)
sprite.spriteback()
sprite.right(90)
但是当我尝试调用该函数时
sprite.backtrack(0,0,0)
它给我错误 int is not subscriptable,对这些人有什么提示吗?
我尝试将整个列表转换为字符串,但函数中的方向公式需要整数,所以目前我不知道下一步该怎么做
【问题讨论】:
-
为了执行类似
direction[new_direction]的操作,direction对象需要是可订阅的。但是您将0作为参数传递给方法的direction参数,而0是整数,而不是可订阅对象(如列表、元组或字符串)。目前尚不清楚您在这里的意图。
标签: python python-3.x list function