不同组合的海龟获得能量

时间:2017-04-05 02:40:59

标签: netlogo

我的模型,鹰和鸽子中有2种龟。在我的模型中,他们随机配对并移动到资源补丁。现在他们已经在补丁上,我希望他们获得能量,这取决于他们的配对。我该怎么做呢?

如果2只鸽子配对,它们各自获得资源价值的一半(滑块)。如果一只鸽子和一只鹰搭配起来,那么鹰会获得所有的资源价值,而鸽子会得到0.如果两只鹰派配对,那么一只鹰有50%的机会得到所有的资源价值,而两者都失去成本 - 值(另一个滑块)。

第一行代码:

    to obtain-resource
     ask turtles with [ partner != nobody and fed? = true ] [

1 个答案:

答案 0 :(得分:2)

这未经过测试,但你可能想要这样的东西。至少,这实现了你的伪代码。我强烈建议你不要写任何其他内容,直到你明白这段代码的作用和方式。特别是,您应该查看ifelse的字典,并了解访问其他海龟的属性(使用[attribute] of)和ask其他海龟来更改其属性值。

此代码假设您的海龟有两个品种 - 鹰和鸽子(具有伙伴?,能量等属性)。它还假设存在称为资源和成本的全局变量(滑块或代码)。

to obtain-resource
  ask turtles with [ partner != nobody and fed? = true ]
  [ ifelse breed = hawks
    [ ifelse [breed] of partner = hawks
      [ set energy energy + resource / 2 - cost
        ask partner [ set energy energy + resource / 2 - cost ]
      ]
      [ set energy energy + resource ]
    ]
    [ ifelse [breed] of partner = hawks
      [ ask partner [ set energy energy + resource ] ]
      [ set energy energy + resource / 2
        ask partner [ set energy energy + resource / 2 ]
      ]
    ]
  ]
end