netlogo中的墙代理

时间:2014-09-25 08:57:45

标签: netlogo

我正试图模拟一扇打开门的房间。我希望使用代理而不是使用补丁。

我之前采用的方法是首先创建一个带有间隙的盒子,然后在其上分发代理。 但它似乎没有给出结果。

Netlogo Sprouting turtles at regular intervals

Netlogo Sprouting turtles spaced at less than one patch

以上是粗略绘制的图表。 enter image description here

注意: 更容易做到的就是在每个补丁上发芽龟。但我不是这样要求的。相反,我希望让乌龟变小,并在一个补丁上发芽一次。 感谢。

问题:沿着矩形的两侧分布海龟(如图所示有间隙),分布可根据所需的海龟密度而变化。

1 个答案:

答案 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