如何在NetLogo中将乌龟的属性传递给另一个?

时间:2015-04-09 13:46:36

标签: inheritance attributes netlogo turtle-graphics

我想将乌龟的属性转移到另一只乌龟。我的目标基本就是这个; 我创造了坚定的海龟,如果公司破产(如果它的净值小于零),我希望这家公司复制一家幸存公司(一家拥有正净值的公司)的属性(公司将被随机选择) )。有50家公司,所以首先我应该随机选择一家幸存的公司,并将其属性转移到我的破产公司。 (像净值,输出等属性)

我只能写一个代码来更新我的净资产。这是;

to update-networth
  set networth networth + ( 1 - rd-fraction ) * profit
end

如果你能帮助我,我会很高兴的。我被卡住了。

2 个答案:

答案 0 :(得分:2)

在我看来,最简单的方法是随机挑选一只幸存的乌龟,并让那家公司hatch成为一家新公司。您想要保留破产公司的任何属性(例如其位置)吗?如果是这样,您需要将它们分配给新公司,这只会从另一个方向引入同样的问题。

直接方式如下:

to copy-attributes [from-firm to-firm]
  ask to-firm
  [ set attribute1 [attribute1] of from-firm
    set ....
  ]
end

答案 1 :(得分:1)

问题解决了,对其他人可能有帮助,因此我把它留在这里;

to update-networth ; firm 
  set networth networth + ( 1 - rd-fraction ) * profit
  if networth < 0
  [ ask firms [copy-attributes] ]
end

to copy-attributes 
  hatch-firms 1 [ set networth [networth] of one-of firms with [ networth ] > 0 ]  
end