海龟获得能量的不同组合

Different combination of turtles obtaining energy

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

如果 2 只鸽子配对,它们每人获得一半的资源价值(滑块)。如果一只鸽子和一只鹰配对,鹰获得所有资源价值,而鸽子获得 0。如果 2 只鹰配对,有 50-50 的机会一只鹰获得所有资源价值,而两者都失去成本-值(另一个滑块)。

第一行代码:

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

这没有经过测试,但您可能想要这样的东西。至少,这实现了你的伪代码。我强烈建议您在理解这段代码的作用和方式之前不要编写任何其他内容。特别是,您可能应该查看 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