找到代理商周围的邻国

时间:2010-07-31 07:53:47

标签: python

我需要找到我的pacman代理旁边的状态。当前状态是元组(3,5),由numPos给出。

我需要检查pacman代理周围的位置。我想找到相邻的状态,以便我可以用鬼状态检查它,如果它们匹配,这意味着,相邻侧存在鬼。但我无法找到邻国。比如,我需要检查(x,y + 1),(x,y-1),(y,x + 1),(y,x-1)。我该如何实现它。我不能在这里使用范围函数。

3 个答案:

答案 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]