1
我是新來的NetLogo和編碼/一般編程,我正在編寫計算海龜之間距離的代碼。如果他們太靠近,他們需要離開,如果他們太遠,他們需要靠近。NetLogo:海龜之間的最小距離
它們不能接近1/2的補丁,也不能超過1個補丁。如果它們之間的距離不在1/2和1之間,那麼它們需要移動,直到它們在這個範圍內。
我必須鏈接他們做到這一點,或者我可以做到這一點不鏈接?
我是新來的NetLogo和編碼/一般編程,我正在編寫計算海龜之間距離的代碼。如果他們太靠近,他們需要離開,如果他們太遠,他們需要靠近。NetLogo:海龜之間的最小距離
它們不能接近1/2的補丁,也不能超過1個補丁。如果它們之間的距離不在1/2和1之間,那麼它們需要移動,直到它們在這個範圍內。
我必須鏈接他們做到這一點,或者我可以做到這一點不鏈接?
既然你正在做這個設置,那麼你可以做的是讓NetLogo逐漸創建海龜,並確保每個海龜都是合適的距離。有一個合乎邏輯的問題,第一隻烏龜不應該進行距離測試,因爲沒有其他的烏龜,並且你認爲有足夠的烏龜可以適應這個距離限制的世界。
儘管如此,這裏有一些代碼(9龜)。如果你嘗試創造太多的海龜,它確實會冒無盡的循環風險。隨着海龜數量的增加,它的效率也非常低,因爲海龜會隨機放置,直到找到合適的位置,可能需要多次嘗試。
to setup
clear-all
create-turtles 1
repeat 8
[ let min-x min [xcor] of turtles - 1
let max-x max [xcor] of turtles + 1
let min-y min [ycor] of turtles - 1
let max-y max [ycor] of turtles + 1
create-turtles 1
[ loop
[ setxy random-float (max-x - min-x) + min-x random-float (max-y - min-y) + min-y
let close-turtles other turtles-on (patch-set patch-here neighbors)
let how-close distance min-one-of close-turtles [distance myself]
if how-close > 0.5 and how-close < 1 [stop]
]
]
]
end
首先,他們絕對不需要鏈接。查看NetLogo字典中的'distance'基元。你是在創造海龜還是在模擬過程中這樣做? – JenB
我正在嘗試使用距離基元。它告訴我「集合」需要2個輸入。這就是我要求的acells [設置距離acell one-of [0.33 1.05 0.65]] – Amy
我正在嘗試在設置中執行此操作,而不是在模擬過程中執行此操作。 – Amy