如何让海龟在netlogo中从世界边界反弹

时间:2016-05-18 21:26:14

标签: netlogo

我在Netlogo有一个盒装世界,我的海龟正按照我想要的方式移动,但是有些人被困在墙上,吸引了其他人(我使用植绒模型作为骨干),直到所有的乌龟都被困住面对墙壁,停止移动。我尝试在Go中加入一个wall_jump,但是一旦有太多的絮状物撞到墙上就没有用,所以我又放了一块让絮状物从墙上弹起来,但似乎没有任何效果。如果要重新创建整个问题,请打开植绒模型并关闭世界边界。

其他人如何解决这个问题?

 to wall_jump
  ifelse any? flockmates 
  [
   if ycor >= max-pycor * 0.95  [set heading (random-normal 180 2)] 
   if xcor >= max-pxcor * 0.95 [set heading (random-normal 270 2)]  
   if xcor <= min-pxcor * 0.95   [set heading (random-normal 90 2)]          
   if ycor <= min-pycor * 0.95   [set heading (random-normal 0 2)]           
  ]

  [if ycor >= max-pycor * 0.95    [set heading (random-normal 180 2)] 
   if xcor >= max-pxcor * 0.95   [set heading (random-normal 270 2)]  
   if xcor <= min-pxcor * 0.95   [set heading (random-normal 90 2)]          
   if ycor <= min-pycor * 0.95   [set heading (random-normal 0 2)]           
  ]
  end

1 个答案:

答案 0 :(得分:2)

此问题在Random Balls模型中解决(在NetLogo模型库中): http://ccl.northwestern.edu/netlogo/models/RandomBalls

虽然与你的问题没有直接关系,但看起来你可能会觉得有趣的是看看产生墙聚类的英雄和懦夫模型(在懦夫模式下): http://ccl.northwestern.edu/netlogo/models/HeroesandCowards