如何创建链接从而改变乌龟的品种?

时间:2017-11-15 00:16:59

标签: netlogo

我正在尝试为家庭建模。我想设置它,以便男性遇到女性并形成一个链接,随后允许它们重现。我无法弄清楚或在网上找到如何编码链接来做到这一点,虽然我认为这是非常基本的。

我养育了男性和女性以及丈夫和妻子。此代码由男性运行。

to marry
if hunger < 10 [create-link-with one-of females]
ask my-links [set breed wives]
end

这将返回运行时错误“您无法看到品种到非链接代理程序集”。我认为这意味着我需要使用某种品种命令,例如

create-<breed>-link-with

但是

create-<wives>-link-with 

create-<a wife>-link-with   

等都会生成错误消息。

我也尝试过定向链接,例如

  create-link-to one-of females 

但无济于事。

1 个答案:

答案 0 :(得分:1)

你让海龟问链接而不是link-neighbors,我认为这就是全部:

breed [ cats cat ]

to setup
ca
  crt 10 [ setxy random-pxcor random-pycor ]
reset-ticks  
end

to go

  ask one-of turtles [
    create-link-with one-of other turtles 
    ask link-neighbors [
      set breed cats
    ]
  ]
end

修改

我认为这可以满足您的需求:

breed [ males male ]
breed [ husbands husband ]
breed [ females female ]
breed [ wives wife ]

males-own [ mood ]

to setup
  ca
  create-males 5 [ 
    set color green
    setxy abs random-pxcor / 2 random-pycor 
    set mood "lonely"
  ]
  create-females 5 [ 
    set color white
    setxy ( abs random-pxcor ) / -2  random-pycor
  ]
  reset-ticks
end

to go
  if any? females [
    ask one-of males [
      set breed husbands
      create-link-with one-of females
      ask link-neighbors [
        set breed wives
      ]
    ]
  ]
end

但是,你可能想重新考虑让海龟切换品种,而是给它们一个turtles-own布尔变量,如married?,你可以用作一个标志。如果您想进行品种转换,请确保为相关品种创建的任何变量都相同 - 请注意,在上面的示例中,males有一个mood变量但是当它们发生变化时会丢失该信息繁殖到husbands