我想請一隻烏龜移動到距離另一隻烏龜至少x距離的任何補丁。因此,在NetLogo和英語的組合中,它應該是:如何移動到距離烏龜至少x距離的補丁
move-to one-of patches with [distance to nearest turtle > 4]
請問這怎麼辦?
我想請一隻烏龜移動到距離另一隻烏龜至少x距離的任何補丁。因此,在NetLogo和英語的組合中,它應該是:如何移動到距離烏龜至少x距離的補丁
move-to one-of patches with [distance to nearest turtle > 4]
請問這怎麼辦?
你找到最近的龜使用min-one-of
+ [distance myself]
記者。你還需要確保你只看到other turtles
,因爲一隻烏龜永遠是最靠近自身的烏龜。
的代碼可以被分解如下:
let nearest-turtle min-one-of other turtles [distance myself]
move-to one-of patches with [distance nearest-turtle > 4]
對於(可以說)更好的可讀性。
編輯:謝謝尼古拉斯的更正。你是完全正確的。
不僅僅是可讀性:如果你在'with'塊中附加'other',它就是指調用補丁。每個人都會因此被咬傷。它可以導致非常微妙的錯誤... –
我認爲你在long表達式中使用'myself'也是錯誤的:它指的是調用補丁,而不是你想要的調用龜。 –
這是問題開始的地方!它應該是距離另一隻烏龜最小距離的補丁,而不是正在進行移動的烏龜。 「補丁與」的使用我認爲這樣可以讓正確的代理人進行呼叫。我明天會試一試。感謝所有評論和回覆。 – ThomasC
使用上述所有的,這裏是一個解決方案:
to go
ask patches [set nearest-turtle min-one-of turtles [distance myself]
set distance-turtle distance nearest-turtle
]
crt 1 [
set color blue
move-to one-of patches with [distance-turtle > 4]]
end
你想要做的,如果沒有這樣的補丁呢? – Alan
我總是在圍繞這一點與SO鬥爭 - 我想盡可能具體地向我提出我的問題,通過足夠的通用性來有用。事實上,我認爲我可以處理這一點 - 整個事情將成爲一系列if語句的一部分。 – ThomasC