我正在建设一个沿海生态系统,其中海星是最主要的食肉动物,并且在所有其他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
我只是粘贴了感兴趣的代码部分。
如果可能的话,我也想知道,如果不是能量增益来自(贻贝)这是一个滑块我可以获得当时猎物加入捕食者的能量。
这适用于一些大学的工作。
答案 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
之类的东西。