在Netlogo的捕获模型中添加消化计时器

时间:2015-03-05 08:12:01

标签: timer netlogo

我正在建设一个沿海生态系统,其中海星是最主要的食肉动物,并且在所有其他6种物种之前就已经存在。

当捕食者以猎物为食时,我试图添加一个可能有15个滴答的计时器。

这是代码:

to move-starfish 
  ask starfish [ right random 360 
    forward starfish-speed set energy energy - 0.5 ]  
  ask starfish [predate]      
end


to predate 
  let prey0 one-of mussels-here
  if prey0 != nobody
  [ask prey0 [die] set energy energy + energy-gain-from-mussels  ] 

  let prey1 one-of thais-here
  if prey1 != nobody
  [ask prey1 [die] set energy energy + energy-gain-from-thais   ]

  let prey2 one-of limpets-here
  if prey2 != nobody
  [ask prey2 [die] set energy energy + energy-gain-from-limpets ]

  let prey3 one-of mitella-here
  if prey3 != nobody
  [ask prey3 [die] set energy energy + energy-gain-from-balanus ]

  let prey4 one-of balanus-here
  if prey4 != nobody
  [ask prey4 [die] set energy energy + energy-gain-from-balanus  ]

  let prey5 one-of chitons-here
  if prey5 != nobody
  [ask prey5 [die] set energy energy + energy-gain-from-chitons ]

  end

我只是粘贴了感兴趣的代码部分。

如果可能的话,我也想知道,如果不是能量增益来自(贻贝)这是一个滑块我可以获得当时猎物加入捕食者的能量。

这适用于一些大学的工作。

1 个答案:

答案 0 :(得分:1)

因为你把它称为消化计时器,所以我想你不要让海星在吃了15个蜱之后做任何事。如果这是你想要的,为海星添加一个变量(比如消化),并在它吃东西时将其设置为15。在您的go语句ask starfish with [digestion > 0] [set digestion digestion - 1]中,将您的移动海星更改为ask starfish with [digestion > 0] [...]

以供将来参考,针对单独的问题提出单独的问题。但在要求猎物死亡之前,你想要的是set energy energy + [energy] of prey之类的东西。