2010-07-31 86 views
0

我需要找到我的pacman代理旁邊的狀態。當前狀態是由numPos給出的元組(3,5)。找到代理周圍的鄰居

我需要檢查圍繞pacman代理的位置。我想找到鄰近的州,以便我可以檢查它與幽靈國家,如果他們匹配,這意味着,幽靈出現在鄰居。但我無法找到鄰近的州。就像我需要檢查(x,y + 1),(x,y-1),(y,x + 1),(y,x-1)。我如何實現它。我不能在這裏使用範圍函數。

+2

只需硬編碼它們。它會更快,可以說它更具可讀性。 – 2010-07-31 07:57:02

+1

您在最後一句中的第三和第四個元組中交換了「x」和「y」的元組,這是錯誤的。除此之外,請按照多米尼克所說的去做。 – 2010-07-31 09:34:36

回答

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)] 

你有什麼試過的?

2
for dx,dy in ((1,0),(0,1),(-1,0),(0,-1)): 
    search_position(x+dx, y+dy) 
1

如果你想獲得看上你可以讓鄰居元組準備全網使運動了電網和牆壁也不可能運行時動作快,因爲它需要從準備好鄰居字典只查詢:

neighbourghosts = [(nx,ny) 
        for nx,ny in neighbours_of[numPos] 
        if (nx,ny) in ghostplaces]