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]