如何询问特定狗的属性值来更改链接属性?
我有类似这样的代码,使用end2,但有时候end2中的乌龟不是我需要的。
ask links [ask end2
[
ifelse A <= 4 [ask myself [set X 1]][ask myself [set X 2]]
]]
谢谢!
答案 0 :(得分:1)
您可能需要查看有关如何生成最低完整可验证示例的asking help - 如果您遵循这些准则,则更有可能获得有用的答案。
执行所需操作的一种方法是使用turtle-set
原语将每个链接将其两个节点(cat和dog)合并到一个临时代理集中。假设这个设置:
dogs-own [ A ]
links-own [ X ]
to setup
ca
reset-ticks
create-cats 10 [
set color blue
setxy random 30 - 15 random 30 - 15
]
create-dogs 10 [
setxy random 30 - 15 random 30 - 15
set color red
set A 1 + random 8
]
ask cats [
create-link-with one-of dogs with [ not any? link-neighbors ] [
set X 1
]
]
end
首先,获取链接以创建链接的两个节点中的临时龟,并选择该临时龟集中的代理:
感谢@SethTisue编辑
编辑:不要这样做:
to go
ask links [
let my-nodes ( turtle-set end1 end2 )
let my-dog one-of my-nodes with [ member? self dogs ]
修改:改为:
to go
ask links [
let my-nodes both-ends
let my-dog one-of my-nodes with [ member? self dogs ]
这样,该链接就可以引用其节点中的狗(my-dog
),因此可以使用of
检查my-dog
的属性并执行您需要的操作。
if ( [A] of my-dog ) <= 4 [
set X 2
;;; This is just for easy identification
set color yellow
]
]
tick
end