构建一组变量

Constructing a set of variables

我有一个关于 Netlogo 的问题。我有两个品种的海龟,品种 1 和品种 2。 Breed2 有一个名为 theta 的变量。首先,随机数量的 breed1 海龟变为 breed2; breed2 然后 theta 随机设置。后来,另一个随机数的breed1变成breed2,breed2也会随机设置theta。

我的两个问题是:

1.) 如何确保只有那些在第二轮换种中改变品种的海龟才设置它们的 theta 变量?我不希望那些在第一轮改变的人在改变后立即失去为他们设置的 theta 变量。

2.) 有没有一种方法可以构造一组到目前为止已设置的所有 theta 变量?我希望我的 breed2 稍后根据到目前为止设置的 theta 的最大值做出决定。

谢谢!

你应该分别问两个不同的问题,但是...

  1. 有很多方法可以做到这一点。示例 1:如果您始终更新为非零值的 theta,只需测试零并仅更改零。示例 2:将 can-change-theta 属性添加到 breed2 并始终将其初始化为 true,但在重置 theta 后将其更改为 false。示例 3:将您的新 breed2s 收集到代理集(或列表,如果需要)并仅为这些海龟更改 theta。

  2. 如果您真的想要最大值,则不需要所有值。只需添加一个全局变量 max-theta 并在每次更新 theta 时更新它。如果你真的想要全部,添加一个 thetas 全局并将其初始化为空列表;每次更新 theta 属性时附加到此列表,并使用 max 随时提取最大值。