Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netlogo 移动时将代理保持在可视范围内_Netlogo - Fatal编程技术网

Netlogo 移动时将代理保持在可视范围内

Netlogo 移动时将代理保持在可视范围内,netlogo,Netlogo,我有一个模型,特工们四处寻找资源。个人根据以下条件移动: to move set energy energy -1 fd v if random 300 = 1 [ ifelse random 2 = 0 [rt 45][lt 45]] end 除此之外,我希望他们保持彼此的视野范围,或者至少保持一定的群体规模 在我看来,这将采取ifelse在radius vision

我有一个模型,特工们四处寻找资源。个人根据以下条件移动:

to move
set energy energy -1
fd v
if random 300 = 1 [
ifelse random 2 = 0
[rt 45][lt 45]]
end
除此之外,我希望他们保持彼此的视野范围,或者至少保持一定的群体规模

在我看来,这将采取
ifelse在radius vision<5[向团队移动][移动]

我试过一些方法,但当代理执行其他一些导致错误的例行程序时,他们最终会走向对方或失去联系

我也看过植绒模型,但对于我想要实现的目标来说,这有点过于参数化了

希望你能帮忙

编辑:根据@JenB的建议,我提出了以下工作模式。但这里的特工往往成群结队,有时会在被困在<5人的人群中时中断活动

to setup
  clear-all
  reset-ticks 
  crt 20 
end

to go 
 ask turtles [move
   group]
 tick
end 

to move
fd 0.01
if random 333 = 1 [
ifelse random 2 = 0
[rt 45][lt 45]]
end

to group
  let midx mean [xcor] of other turtles in-radius 10
    let midy mean [ycor] of other turtles in-radius 10
    ifelse count other turtles in-radius 5 < 5 [facexy midx midy set color red][move set color blue]
end
设置
清除所有
重置滴答声
阴极射线管20
结束
外带
叫海龟[移动]
组]
打上钩
结束
移动
fd 0.01
如果随机333=1[
ifelse random 2=0
[rt 45][lt 45]]
结束
分组
让midx表示半径为10的其他海龟的[xcor]
让midy表示半径为10的其他海龟的[ycor]
ifelse计算半径为5<5的其他海龟[facexy midx midy set颜色为红色][移动set颜色为蓝色]
结束

你在“你的头脑”中设置的方式让他们都朝着团队移动,或者都独立移动。你可以计算一下小组的中心,让每只乌龟做一些类似“如果我离中心太远,就向中心移动,否则就移动”。嗨,我根据你的建议想出了一些办法。代理现在倾向于蜂拥而来,但这与我想要的非常接近。你在“你的头脑”中设置它的方式让他们都朝着团队或独立的方向移动。你可以计算一下小组的中心,让每只乌龟做一些类似“如果我离中心太远,就向中心移动,否则就移动”。嗨,我根据你的建议想出了一些办法。特工们现在倾向于蜂拥而至,但这已经非常接近我想要的了。