如何从 link 中询问一只乌龟?
How to ask a single turtle from a link?
我养了两种乌龟:狗和猫,它们都是 linked。 link 有一个属性 (X),它的值取决于连接末端的狗的 A 值(在这种情况下我不关心猫)。
如何查询特定狗的属性值来更改 link 属性?
我有这样的代码,使用end2,但有时end2中的乌龟不是我需要的。
ask links [ask end2
[
ifelse A <= 4 [ask myself [set X 1]][ask myself [set X 2]]
]]
谢谢!
您可能想查看 asking help 如何生成最小的完整可验证示例 - 如果您遵循这些指南,您更有可能获得有用的答案。
一种方法是使用 turtle-set
原语让每个 link 将其两个节点(猫和狗)放入一个临时代理集中。假设此设置:
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
首先,获取 links 从 link 的两个节点中创建一个临时海龟集合,然后在该临时海龟集合中选择代理:
编辑感谢@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 ]
这让 link 仅引用其节点外的狗 (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
我养了两种乌龟:狗和猫,它们都是 linked。 link 有一个属性 (X),它的值取决于连接末端的狗的 A 值(在这种情况下我不关心猫)。
如何查询特定狗的属性值来更改 link 属性?
我有这样的代码,使用end2,但有时end2中的乌龟不是我需要的。
ask links [ask end2
[
ifelse A <= 4 [ask myself [set X 1]][ask myself [set X 2]]
]]
谢谢!
您可能想查看 asking help 如何生成最小的完整可验证示例 - 如果您遵循这些指南,您更有可能获得有用的答案。
一种方法是使用 turtle-set
原语让每个 link 将其两个节点(猫和狗)放入一个临时代理集中。假设此设置:
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
首先,获取 links 从 link 的两个节点中创建一个临时海龟集合,然后在该临时海龟集合中选择代理:
编辑感谢@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 ]
这让 link 仅引用其节点外的狗 (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