Netlogo,找到孵化品种的父母

时间:2019-06-11 07:14:06

标签: netlogo

我正在尝试找出当您使用阴影功能时如何在父代与其创建的品种之间形成链接。还是已经存在我不知道的链接。 例如,有两个品种,比如说黄色蜜蜂和红色蜜蜂。黄色的蜜蜂行进一定距离,当它们到达某个点(蜂巢)时,它们孵出x只红色的蜜蜂。我想将黄色蜜蜂到它所创造的红色蜜蜂(从父代到子代)的距离转移。但是无法做到这一点,因为黄蜂与红蜂之间没有联系。

即(黄色蜜蜂22孵出红色蜜蜂15和红色蜜蜂72)而黄色蜜蜂77孵出红色蜜蜂26)。如果黄蜂旅行了17m,我希望红蜂22和15继承该信息。继承黄蜂77所走过的距离(即19m)的红蜂26

注意:理想情况下,我认为最好不要使用半径命令在黄蜂周围找到红蜂。因为如果两只黄色的蜜蜂同时到达蜂巢并产生两组红色的蜜蜂。如果他们使用半径找到周围的红蜂,他们可能会混在一起

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
]

1 个答案:

答案 0 :(得分:3)

hatch的文档中说:

  

每只新龟都从其父级继承其所有变量,包括其位置。

换句话说,... bat( returnStdout: true, script: """ c:\\path\\to\\conda activate my_env cd c:\\path\\to\\scripts python myscript.py ${some_arg} """ ) ... 已经可以满足您的要求。您只需要确保要孩子继承的变量(在这种情况下为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 的价值。