netlogo - 当x数量的补丁离开时与其他乌龟断开链接?
问题描述
当乌龟与与之链接的乌龟偏离大量补丁时,如何让乌龟断开链接?我已经尝试了这行我认为可以工作的代码to break-link if cooperator link in-radius linking-radius > max-link-radius [ ask one-of links [ die ] ] end
,但我收到错误“链接预期的 2 个输入,一个数字和一个数字”。任何帮助将不胜感激,谢谢。代码贴在下面
turtles-own [ energy ]
breed [ cooperators cooperator ]
breed [ uncooperators uncooperator ]
to setup
ca
ask patches [
set pcolor green
]
create-uncooperators num-uncooperators [
setxy random-xcor random-ycor
set color red
set energy random 100
]set-default-shape turtles "person"
create-cooperators num-cooperators [
setxy random-xcor random-ycor
set color yellow
set energy random 100
]
reset-ticks
end
to go
if not any? turtles [ stop ]
ask cooperators [
set energy energy - 1
move
communicate
cooperate
break-link
]
ask uncooperators [
set energy energy - 1
move
]
tick
end
to move
lt 50
rt 50
fd 1
end
to communicate
if count my-links < 1 [
create-link-to one-of uncooperators in-radius linking-radius
]
end
to break-link
if cooperator link in-radius linking-radius > max-link-radius [ ask one-of links [ die ] ]
end
解决方案
请只发布相关代码,通常用于 NetLogo,即给您错误的过程和调用它的过程。所以这是给出错误消息的行:
to break-link
if cooperator link in-radius linking-radius > max-link-radius
[ ask one-of links [ die ]
]
end
NetLogo 告诉您它不知道link
您的意思,因为链接由两个数字标识 - 每端的海龟。如果您查看您的代码,您会看到该单词link
后跟两个数字(变量 in-radius 和 linking-radius),但它们不是海龟标识符。我认为您想做一些事情,例如要求断开长链接,在这种情况下,您将物理/空间距离与网络距离(要传递多少个链接)混合在一起。你想要这样的东西吗?
to break-link
ask cooperators
[ if distance one-of link-neighbors > max-link-radius
[ ask one-of links [ die ]
]
]
end
link-neigbors
用于查找与进行询问的海龟相关的海龟。但这不会实现您的目标,因为随机链接死亡,而不是满足距离条件的链接。也许这个(未测试):
to break-link ; called by a cooperator turtle
let furthest-friend max-one-of link-neighbors [distance myself]
if distance furthest-friend > max-link-radius
[ ask link-with furthest-friend [ die ]
]
end
推荐阅读
- uwp - 构建 Microsoft Mixed Reality WebRTC 源代码时出错
- r - R:如何在 Dataframe 中从某一列开始插入一行?
- python - 基于django更新函数的多个模型视图
- api - 如何在spring mvc中调用api并从更新方法中选择正确的可选
- c# - Automapper 自定义值解析器重用多种类型
- python - 将 Json 脚本中的嵌套列表转换为 Dataframe
- flutter - 相关的 DropdownButtons 和引发 onChange 事件
- css - 我可以将表格列平均分开吗,类似于 flexbox 的工作方式?
- android - 搜索栏更改背景进度颜色
- angular - Angular10:在数据库中插入表单数据