【发布时间】:2020-10-25 05:51:08
【问题描述】:
turtles-own [ a ]
patches-own [b ]
links-own [ c ]
to a+b
ask turtles with [ pxcor = x and pycor = y ][ set a + b ]
end
这是可行的,因为 a + b 与该补丁坐标处的 b 值相加。
我正在尝试对链接做同样的事情。
【问题讨论】:
标签: netlogo
turtles-own [ a ]
patches-own [b ]
links-own [ c ]
to a+b
ask turtles with [ pxcor = x and pycor = y ][ set a + b ]
end
这是可行的,因为 a + b 与该补丁坐标处的 b 值相加。
我正在尝试对链接做同样的事情。
【问题讨论】:
标签: netlogo
简短的回答,你不能。
您的示例有效的原因(或者如果您有set a a + b 并提供了 x、y 等的值)是因为您要求海龟这样做(在 NetLogo 术语中,在海龟上下文中完成)。也就是说,乌龟知道它自己的“a”值并且可以访问唯一的“b”值,因为乌龟只站在一个补丁上。如果您尝试使用 ask patches 而不是 ask turtles 执行相同的代码,则会收到错误消息。这是因为补丁无法识别站在其上的潜在众多海龟中的哪一个来为“a”提供值。
因为一个海龟可以链接到任意数量的其他海龟,它可以有很多链接。这意味着没有足够的信息让海龟知道哪个链接提供'c'的值。但是有些事情你可以做。
选项1:随机选择它所连接的链接之一
turtles-own [ a ]
links-own [ c ]
to a+b
ask turtles [ set a a + [c] of one-of my-links ]
end
选项 2:将它连接到的所有链接的“c”值相加
turtles-own [ a ]
links-own [ c ]
to a+b
ask turtles [ set a a + sum [c] of my-links ]
end
或者你可以选择'c'等的最大值。
要解决您的编码问题,您需要弄清楚海龟应该如何选择一个或多个链接来提供要添加的值。
【讨论】: