2015-02-06 69 views
1

我有一个netlogo问题,我似乎无法找到解决方案,但它感觉非常基础。 我有两种类型的品种:Netlogo一对一关系

breed [individuals individual] 
breed [cars car] 

我想创建从一个单独的链接到一辆车。所以,它是一个一对一的关系。我用这个代码来做到这一点:

to setup-individuals 
    create-individuals individuals-number [ 
    set ID 2 
    set shape "person" 
    set color yellow 
    setxy random-xcor random-ycor 
    set activity "" 
    set activity_time 0 
    let rand random 2 
    ifelse rand = 0 
    [ 
     set owns-car false 
     ] 
    [ 
     set owns-car true 
     create-link-to one-of cars ;; here is the issue 
     ] 
    ] 
end 

的问题是,如果我使用“create-link-to one-of cars”有连接到一台车以上的人,但我想每一个人都有一个独特的汽车。当尝试使用以下命令时:“create-link-to one-of cars with [my-in-links = 0]”它给了我下面的错误:“CREATE-LINK-TO预期的输入是一只乌龟,但取而代之的是NOBODY。”我尝试了这个命令的许多变体,但它不起作用。

回答

3

您试图解决的create-link-to one-of cars with [my-in-links = 0]是正确的路径。但是,如果您查看NetLogo词典,您将看到my-in-links返回代理集,而不是给出该代理集成员数的整数。所以你需要比较空的而不是比较数字0.

这是在语法上最接近你的代码:create-link-to one-of cars with [count my-in-links = 0]

你真正想要的,虽然是什么东西更像create-link-to one-of cars with [not any? my-in-links]

+0

创建链接到汽车行驶[不属于任何一个吗? my-in-links] 做了工作 thnx队友 – arianit 2015-02-06 14:31:07

+1

'my-in-links = nobody'不起作用 - 'nobody'不等于空的代理集。 '没有任何......'解决方案也是我所建议的。 – 2015-02-06 17:11:29