在Netlogo中限制代理向归属范围的移动

时间:2017-04-19 23:12:05

标签: netlogo

我对NetLogo比较陌生,我正在努力模拟新罕布什尔州的驼鹿密度及其与冬季蜱虫寄生的相关性。

我想让我的驼鹿代理人在一个家庭范围内(~5平方公里)随机移动,这个范围来自他们首次进入模型的随机选择的补丁。

我不确定如何基于区域绑定代理,而不仅仅是修补颜色......任何关于如何做到这一点的建议都将非常感激!

谢谢!

1 个答案:

答案 0 :(得分:1)

一般stackoverflow提示:通常,stackoverflow鼓励特定的编程问题。所以包括你到目前为止实际尝试过的代码通常是首选。

好的,关于你的问题。

一个非常简单的方法是,首先,存储mooses的起始补丁。其次,当驼鹿四处移动时,检查到起始贴片的距离。如果距离超过起始量,则将驼鹿朝向起始贴片。这里有一些模板代码可以为您提供想法:

breed [ mooses moose ]

mooses-own [
  starting-patch
]

to setup
  clear-all
  ;; only using one moose as it's easier to see the behavior
  create-mooses 1 [
    setxy random-xcor random-ycor
    set starting-patch patch-here
  ]
  reset-ticks
end

to go
  ask mooses [
    move
  ]
  tick
end

to move
  ;; If farther than 10 patches from starting patching, take a step towards starting patch, otherwise, move randomly
  ifelse distance starting-patch > 10 [
    face starting-patch
  ] [
    rt random 90
    lt random 90
  ]
  fd 1
end