我正试图模拟一扇打开门的房间。我希望使用代理而不是使用补丁。
我之前采用的方法是首先创建一个带有间隙的盒子,然后在其上分发代理。 但它似乎没有给出结果。
(Netlogo Sprouting turtles at regular intervals
Netlogo Sprouting turtles spaced at less than one patch)
以上是粗略绘制的图表。
注意: 更容易做到的就是在每个补丁上发芽龟。但我不是这样要求的。相反,我希望让乌龟变小,并在一个补丁上发芽一次。 感谢。
问题:沿着矩形的两侧分布海龟(如图所示有间隙),分布可根据所需的海龟密度而变化。
答案 0 :(得分:1)
如果将来有人面临这样的问题,以下工作就会完成:
set breadth-patches patches with[(pycor > (-(breadth)) and pycor < breadth and pxcor = lengthrec) or(pycor > (-(breadth)) and pycor < breadth and pxcor = (-(lengthrec))) ]
set length-patches patches with[(pxcor > (-(lengthrec)) and pxcor < lengthrec and pycor = (-(breadth - 1))) or (pxcor > (-(lengthrec)) and pxcor < lengthrec and pycor = (breadth - 1))]
set gap-patches patches with [pxcor > (gap * (-1)) and pxcor < gap and pycor =(breadth - 1)]
set length-patches length-patches with [not member? self gap-patches]
ask breadth-patches[
sprout-walls 1[set color 2
set size 0.5 set heading 180 fd 0.25
if-else(pxcor < 0)[set heading 90][set heading 270] fd 0.25]
sprout-walls 1[set color 2
set size 0.5 set heading 360 fd 0.25
if-else(pxcor < 0)[set heading 90][set heading 270] fd 0.25]
]
ask length-patches[
sprout-walls 1[set color 2
set size 0.5 set heading 90 fd 0.25
if-else(pycor < 0)[set heading 180][set heading 0] fd 0.25
]
sprout-walls 1[set color 2
set size 0.5 set heading 270 fd 0.25
if-else(pycor < 0)[set heading 180][set heading 0] fd 0.25
]
]
end