我需要找到我的pacman代理旁边的状态。当前状态是元组(3,5),由numPos给出。
我需要检查pacman代理周围的位置。我想找到相邻的状态,以便我可以用鬼状态检查它,如果它们匹配,这意味着,相邻侧存在鬼。但我无法找到邻国。比如,我需要检查(x,y + 1),(x,y-1),(y,x + 1),(y,x-1)。我该如何实现它。我不能在这里使用范围函数。
答案 0 :(得分:2)
有什么问题?您的问题(以及之前的问题)尚不清楚。 这有什么不对。
x,y = numPos
positions_to_search = [ (x-1, y),
(x-1, y-1),
(x, y-1),
(x+1, y-1),
(x+1, y),
(x+1, y+1),
(x, y+1),
(x-1, y+1)]
你有什么尝试?
答案 1 :(得分:2)
for dx,dy in ((1,0),(0,1),(-1,0),(0,-1)):
search_position(x+dx, y+dy)
答案 2 :(得分:1)
如果你想得到想象,你可以让邻居元组为整个网格做好准备,这样移出网格和墙壁也是不可能的,运行时动作也很快,因为它只需要从就绪的邻居字典中查找:
neighbourghosts = [(nx,ny)
for nx,ny in neighbours_of[numPos]
if (nx,ny) in ghostplaces]