Netlogo 当x数量的补丁消失时,与其他海龟断开联系?
当海龟偏离与之相关的海龟x数量的补丁时,我如何让它们断开链接?我已经尝试过这行代码,我认为如果合作者链接在radius链接半径>最大链接半径[询问链接[die]]end,它将工作Netlogo 当x数量的补丁消失时,与其他海龟断开联系?,netlogo,Netlogo,当海龟偏离与之相关的海龟x数量的补丁时,我如何让它们断开链接?我已经尝试过这行代码,我认为如果合作者链接在radius链接半径>最大链接半径[询问链接[die]]end,它将工作,以断开链接,但我得到错误“链接预期2个输入,一个数字和一个数字”。任何帮助都将不胜感激,谢谢。代码贴在下面 turtles-own [ energy ] breed [ cooperators cooperator ] breed [ uncooperators uncooperator ] to set
,以断开链接,但我得到错误“链接预期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
海龟拥有[能量]
繁殖[合作者合作者]
品种[未开箱操作员未开箱操作员]
设置
ca
询问补丁[
将颜色设置为绿色
]
创建uncooperators num uncooperators[
setxy随机xcor随机ycor
设置颜色为红色
将能量随机设置为100
]将默认形状海龟设置为“人”
创建合作者num个合作者[
setxy随机xcor随机ycor
设置颜色为黄色
将能量随机设置为100
]
重置滴答声
结束
外带
如果没有?乌龟[停]
询问合作者[
设置能量-1
移动
沟通
合作
断开连接
]
询问操作员[
设置能量-1
移动
]
打上钩
结束
移动
lt 50
rt 50
fd 1
结束
沟通
如果我的链接数<1[
创建链接到“半径链接半径”中的一个操作符
]
结束
断开连接
如果合作者链接的半径链接半径>最大链接半径[询问其中一个链接[die]]
结束
请仅发布相关代码,通常是针对NetLogo的代码,即给出错误的过程和调用错误的过程。这是给出错误消息的行:
to break-link
if cooperator link in-radius linking-radius > max-link-radius
[ ask one-of links [ die ]
]
end
NetLogo告诉您它不知道您指的是哪个链接,因为链接由两个数字标识——两端的海龟。如果查看代码,单词link
后跟两个数字(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