我正在尝试找出当你使用hatch函数时,如何在父母和它创建的品种之间建立联系。或者已经有一个我不知道的链接了。例如,有两种蜜蜂,比如说黄蜂和红蜂。黄蜂行进了一定的距离,当它们到达某个点(蜂巢)时,它们孵化了x只红蜂。我想把黄蜂走过的距离转移到它创造的红蜂身上(从父母到它的孩子)。但没有办法做到这一点,因为它创造的黄蜂和红蜂之间没有联系。
即(黄蜂22孵化红蜂15和红蜂72),而黄蜂77孵化红蜂26)。如果黄蜂走了17米,我希望红蜂22 & 15继承这个信息。和红蜂26继承黄蜂77走过的距离(即19米)
注意:理想情况下,我认为最好不要使用半径内命令来找到黄蜂周围的红蜂。因为如果两只黄蜂同时到达蜂巢,就会产生两组红蜂。如果他们使用半径内来找到他们周围的红蜂,他们可能会搞混。
breed [yellow-bees yellow-bee]
breed [red-bees red-bee]
yellow-bees-own [distance-traveled no-of-red-bees]
red-bees-own [transfered-distance]
to go
....
ask yellow-bees[
if current-node node-at-hive[
hatch red-bees no-of-red-bees [set color red]
]
set transfered-distance [distance-traveled] of ....(;this is where the
agent-set (red-bees) should be added
]发布于 2019-06-11 18:18:45
hatch的文档中写道:
每个新的海龟都从它的父海龟那里继承了它的所有变量,包括它的位置。
换句话说,hatch已经做了您想要的事情。您只需确保希望子代继承的变量(在本例中为distance-travelled)与父代中的名称相同。
下面是一个示例:
breed [ yellow-bees yellow-bee ]
yellow-bees-own [ distance-travelled ]
breed [ red-bees red-bee ]
red-bees-own [ distance-travelled ]
to setup
clear-all
create-yellow-bees 1 [ set distance-travelled 10 ]
create-yellow-bees 1 [ set distance-travelled 20 ]
ask yellow-bees [ hatch-red-bees 1 ]
ask turtles [ show distance-travelled ]
end它的输出将类似于:
observer> setup
(red-bee 3): 20
(red-bee 2): 10
(yellow-bee 0): 10
(yellow-bee 1): 20如您所见,这两只红蜂从它们的父母那里继承了它们的distance-travelled值。
https://stackoverflow.com/questions/56538372
复制相似问题