Netlogo 如何让海龟检查补丁集
我有一组海龟,我打算检查一组补丁,如果在那组补丁上有任何静止的海龟,我希望原始海龟停下来, 基本上是一种箱型接线的情况 我尝试将补丁的含义设置为十字路口,并尝试执行检查十字路口功能 十字路口由以下人员组成:Netlogo 如何让海龟检查补丁集,netlogo,Netlogo,我有一组海龟,我打算检查一组补丁,如果在那组补丁上有任何静止的海龟,我希望原始海龟停下来, 基本上是一种箱型接线的情况 我尝试将补丁的含义设置为十字路口,并尝试执行检查十字路口功能 十字路口由以下人员组成: ;create crossroads ask patches with [( pxcor mod 40 = 31 or pxcor mod 40 = 32 or pxcor mod 40 = 33 or pxcor mod 40 = 34 or pxcor mod 40 = 35 or px
;create crossroads
ask patches with [(
pxcor mod 40 = 31 or pxcor mod 40 = 32 or pxcor mod 40 = 33 or pxcor mod 40 = 34 or pxcor mod 40 = 35 or pxcor mod 40 = 36 or pxcor mod 40 = 37 or pxcor mod 40 = 38 or pxcor mod 40 = 39 or pxcor mod 40 = 0 or pxcor mod 40 = 1 or pxcor mod 40 = 2 or pxcor mod 40 = 3 or pxcor mod 40 = 4 or pxcor mod 40 = 5)
and (
pycor mod 44 = 35 or pycor mod 44 = 36 or pycor mod 44 = 37 or pycor mod 44 = 38 or pycor mod 44 = 39 or pycor mod 44 = 40 or pycor mod 44 = 41 or pycor mod 44 = 42 or pycor mod 44 = 43 or pycor mod 44 = 0 or pycor mod 44 = 1 or pycor mod 44 = 2 or pycor mod 44 = 3 or pycor mod 4 = 4 or pycor mod 44 = 5)] [
set pcolor grey
set meaning "crossroad"
]
我也试着让它用补丁集检查它前面的补丁,但我无法让它工作
to check-crossroad
let in-crossroad (patch-set patch-ahead 8 patch-ahead 7 patch-ahead 6 patch-ahead 5 patch-ahead 4 patch-ahead 3 patch-ahead 2 patch-ahead 1 patch-left-and-ahead 26 3 patch-right-and-ahead 26 3 )
let car3-oncrossroad one-of cars3-on in-crossroad
if [meaning] of patch-ahead 4 = "crossroad" and will-stop? = "maybe"
if [used] of patch-set in-crossroad and will-stop? = "yes"
end
让海龟使用
成员?
检查路口是否有其他海龟,如果没有,则可以自由进入路口。使用此设置:
globals [ box-to-check ]
to setup
ca
set box-to-check patches with [
pxcor > -3 and pxcor < 3 and
pycor > -3 and pycor < 3
]
ask box-to-check [
set pcolor grey - 2
]
crt 10 [
setxy ( random 15 - 20 ) one-of [ -1 0 1 ]
set heading 90
]
crt 10 [
setxy one-of [ -1 0 1 ] ( random 15 - 20 )
set heading 0
]
reset-ticks
end
那就让你的海龟们在他们要进入路口的时候检查一下记者:
to go
ask turtles [
ifelse member? patch-ahead 1 box-to-check [
if not any? other-turtles-on-junction [
move
]
] [
move
]
]
tick
end
希望这能给你一些想法,但请记住,你需要调整以适应多个交叉点等情况
to go
ask turtles [
ifelse member? patch-ahead 1 box-to-check [
if not any? other-turtles-on-junction [
move
]
] [
move
]
]
tick
end