例如,在我创建的一个项目中,有 1000 个人。 现在,如果满足概率,那么我会创建一只狗,并将他与人类联系起来。我们开始吧:
to setup-agents
set-default-shape humans "person"
set-default-shape dogs "default"
create-humans people [
setxy random-xcor random-ycor
set size 1.5
set color green
set sick? false
]
let i 1
while [i <= people] [
ifelse random 100 < 43 [
create-dogs 1 [
set size 0.5
set color green
set sick_dog? false
create-link-from one-of humans [set tie-mode "fixed" tie hide-link]
]
] []
set i i + 1
]
move
end
然后,在创建链接后,我需要访问 humasn 的属性(has_dog?)并将其设置为 true。
humans-own [
has_dog?
sick?
]
我怎样才能要求刚刚链接的人将他的属性设置为true?
最佳答案
我编辑了my answer to your previous question在我看到这个之前。您可能会在那里找到您想要的大部分内容。话虽这么说:
您可能不需要 has_dog?
变量,因为您可以轻松地通过报告器确定人类是否养狗:
to-report has-dog? ; human reporter
report any? out-link-neighbors
end
不过,您可能仍然需要联系狗的主人。这是记者的报道:
to-report my-owner ; dog reporter
report one-of in-link-neighbors
end
(使用链接理论上可以让一只狗拥有多个主人,因此表达式中的one of
。但是您的模型的设置方式永远不会发生这种情况。这段代码如果狗没有主人,也会报告 nobody
,这是有道理的。)
然后,假设你的人类仍然有一个 has_dog?
变量,你可以这样做:
ask my-owner [ set has_dog? true ]
其他一些要点:
关于netlogo - NetLogo 中链接代理之间的访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24035509/