Netlogo,孵化另一种

时间:2019-06-06 06:10:00

标签: netlogo

我正在研究一个模型,该模型由通过链接连接的一堆节点组成。最初有两种类型的代理,可以说是黄蜂和收集者。我的收藏家找到了一个蜜蜂所在的节点,前往它并收集蜜蜂。(该模型的工作方式是,当收藏家到达蜜蜂所在的节点时,蜜蜂被杀死,收藏家拥有的变量称为,收集的蜜蜂将更新1)。接下来,收集器将行进到某个节点,让坐骑蜂巢。在这一点上,我想创建一个新品种,可以说是蜜蜂的新品种,即红蜂。出现问题是因为只有观察者可以创建新品种,而收藏家则不能。孵化也将不起作用,因为它将创建更多的收集器,而不是新的红蜂。知道如何解决这个问题吗?

breed [yellow-bees yellow-bee]
breed [collectors collector]
breed [red-bees red-bee]
breed [nodes node]
breed [hives hive]

collectors-own [bees-collected current-node]
nodes [hive-present]

to go
...
...
ask collectors[

if current-node = nodes with [hive-present = True][
create-red-bees bees-collected
]
]

1 个答案:

答案 0 :(得分:4)

如果您使用命令的class Person : public Logger::IStringable { public: Person(const std::string name) : _name(name) { } virtual std::string ToString() const { return _name; } private: std::string _name; }; int main() { Person p("Alice"); double d = 0.0; const char* c = "Some words"; Logger::log(p); Logger::log(d); Logger::log(c); } 版本(如NetLogo dictionnary entry中所述,会创建给定品种的新海龟),则

孵化 会起作用。

这里是一个例子:

hatch-<breeds>