私は初心者です。私は既にプログラミングガイダンスの辞書をチェックしました。 私は2車線道路(道路1、道路2など)モデルを検討しています。 また、指定されたパッチ((10 0)と(20 2))で指定されたカメが10ティックで停止するモデルを検討しています。 しかし、道路ごとにxcorとycorの特定のパラメータを記述して指定する方法はわかりません(道路xcorとycorは道路1、xcorとycorは道路2)。 また、私はどのように設定速度の構文内でパラメータ "速度"を書いて制御するのか分かりません。 以下はサンプルの小型モデルです。合併を避けるために、このサンプルモデルには道路が1つしかありません。このサンプルモデルは失敗しており、カメはパッチ(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
Jenのアドバイスは、一度に1つしかコード化するのではないことは間違いありません。非常に小さな作業プログラムから始め、一度に1つのものだけを追加して、先に進む前に作業してください。 –