Netlogo 一对一关系
Netlogo one-to-one relation
我有一个 netlogo 问题,我似乎找不到解决方案,但感觉很基本。
我有两种品种:
breed [individuals individual]
breed [cars car]
我想创造一个从一个人到一辆车的link。所以,它是一对一的关系。我使用这段代码来做到这一点:
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
”,会有多个人 link 乘坐一辆车,但我希望每个人都有一辆不同的车。当尝试以下命令时:“create-link-to one-of cars with [my-in-links = 0]
”它给了我以下错误:"CREATE-LINK-TO expected input to be a turtle but got NOBODY instead." 我尝试了这个命令的许多变体,但它不起作用。
您尝试解决 create-link-to one-of cars with [my-in-links = 0]
的方法是正确的。但是,如果您查看 NetLogo 字典,您会看到 my-in-links
returns 是一个代理集,而不是给出该代理集成员数的整数。所以你需要比较空而不是数字 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]
我有一个 netlogo 问题,我似乎找不到解决方案,但感觉很基本。 我有两种品种:
breed [individuals individual]
breed [cars car]
我想创造一个从一个人到一辆车的link。所以,它是一对一的关系。我使用这段代码来做到这一点:
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
”,会有多个人 link 乘坐一辆车,但我希望每个人都有一辆不同的车。当尝试以下命令时:“create-link-to one-of cars with [my-in-links = 0]
”它给了我以下错误:"CREATE-LINK-TO expected input to be a turtle but got NOBODY instead." 我尝试了这个命令的许多变体,但它不起作用。
您尝试解决 create-link-to one-of cars with [my-in-links = 0]
的方法是正确的。但是,如果您查看 NetLogo 字典,您会看到 my-in-links
returns 是一个代理集,而不是给出该代理集成员数的整数。所以你需要比较空而不是数字 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]