我是初學者。我已經檢查過編程指導字典。 我正在考慮雙車道道路(例如道路1,道路2)模型。 而且我正在考慮一個模型,其中由指定的補丁((10 0)和(20 2))指定的龜停止10次滴答。 但是,我不知道如何爲每條道路編寫和指定xcor和ycor的具體參數(例如道路1上的xcor和ycor,道路2上的xcor和ycor)。 而且我也不知道如何在設置速度語法內編寫和控制參數「速度」。 以下是示例小型模型。爲了避免併發症,這個樣本模型只有一條道路。此示例模型失敗,龜不會停在修補程序(10 0)處。 也許我需要你的建議。謝謝。Netlogo:如何阻止一隻特定的蜱龜在世界中間的特定補丁?
globals [ count-tick ]
turtles-own [ speed flag-A ]
to setup
clear-all
resize-world 0 50 min-pycor max-pycor
ask patches [ setup-road ]
reset-ticks
end
to setup-road
if (pycor < 1) and (pycor > -1) [ set pcolor white ]
end
to create-car
crt 1 [
set color blue
setxy min-pxcor 0
set heading 90
set speed 1
]
end
這是模型的主體。
to go
if (count turtles-on patch 0 0 = 0) [
create-car
ask (turtles-on patch 0 0) [
set flag-A FALSE
]
]
ask (turtles-on patch 10 0) [
set flag-A TRUE
set count-tick 10
]
if count-tick > 0 [
set count-tick count-tick - 1
ask (turtles-on patch 10 0) with [flag-A = TRUE]
[
set color red
set speed 0
]
]
if count-tick = 0 [
ask (turtles-on patch 10 0) with [flag-A = TRUE]
[
set speed 1
set flag-A FALSE
]
]
if (count turtles-on patch max-pxcor 0 > 0) [
ask min-one-of turtles [who][
die
]
]
set-speed
tick
end
這是控制速度的並行更新。
to set-speed
ask turtles with [ xcor < 10 ] [
let turtle-ahead one-of turtles-on patch-ahead 1
ifelse turtle-ahead = nobody
[ set speed 1
fd speed
]
[ set speed 0
]
]
ask turtles with [ 10 < max-pxcor ] [
let turtle-ahead one-of turtles-on patch-ahead 1
ifelse turtle-ahead = nobody
[ set speed 1
fd speed
]
[ set speed 0
]
]
end
非常感謝您對我的問題的建議和示例語法。這是一個很大的幫助。再一次非常感謝你。 – goodgest
絕對同意仁的建議,一次只編碼的東西。從一個非常小的工作程序開始,並且一次只添加一件事,然後再繼續工作。 –