首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netlogo,寻找孵化品种的亲本

Netlogo,寻找孵化品种的亲本
EN

Stack Overflow用户
提问于 2019-06-11 15:14:06
回答 1查看 107关注 0票数 1

我正在尝试找出当你使用hatch函数时,如何在父母和它创建的品种之间建立联系。或者已经有一个我不知道的链接了。例如,有两种蜜蜂,比如说黄蜂和红蜂。黄蜂行进了一定的距离,当它们到达某个点(蜂巢)时,它们孵化了x只红蜂。我想把黄蜂走过的距离转移到它创造的红蜂身上(从父母到它的孩子)。但没有办法做到这一点,因为它创造的黄蜂和红蜂之间没有联系。

即(黄蜂22孵化红蜂15和红蜂72),而黄蜂77孵化红蜂26)。如果黄蜂走了17米,我希望红蜂22 & 15继承这个信息。和红蜂26继承黄蜂77走过的距离(即19米)

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

代码语言:javascript
复制
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
]
EN

回答 1

Stack Overflow用户

发布于 2019-06-11 18:18:45

hatch的文档中写道:

每个新的海龟都从它的父海龟那里继承了它的所有变量,包括它的位置。

换句话说,hatch已经做了您想要的事情。您只需确保希望子代继承的变量(在本例中为distance-travelled)与父代中的名称相同。

下面是一个示例:

代码语言:javascript
复制
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

它的输出将类似于:

代码语言:javascript
复制
observer> setup
(red-bee 3): 20
(red-bee 2): 10
(yellow-bee 0): 10
(yellow-bee 1): 20

如您所见,这两只红蜂从它们的父母那里继承了它们的distance-travelled值。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56538372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档