Netlogo 两只海龟在奔跑';类似';同时编码
我的代码出现了一个奇怪的问题 在我的模型中,我有女性(设置女性为真)和男性(设置男性为真) 在特定触发时,每个将“成为”分散器(将分散器设置为真) 分散剂和非分散剂具有非常不同的行为 我曾尝试用代表这两个阶级的不同品种来解决这个问题,但这也不起作用 问题是,其中一只海龟(例如雄海龟)会相应地操作,并在遇到另一只海龟时将分散器设置为“false”。但是,另一个将不会,并将继续将分散器设置为“true” 我确信这是因为一旦其中一只海龟操作了代码,它就不再是“分散者”,因此不再适用于后来海龟的搜索条件,但我尝试的每一项工作都会导致相同的问题,或者没有人出错Netlogo 两只海龟在奔跑';类似';同时编码,netlogo,Netlogo,我的代码出现了一个奇怪的问题 在我的模型中,我有女性(设置女性为真)和男性(设置男性为真) 在特定触发时,每个将“成为”分散器(将分散器设置为真) 分散剂和非分散剂具有非常不同的行为 我曾尝试用代表这两个阶级的不同品种来解决这个问题,但这也不起作用 问题是,其中一只海龟(例如雄海龟)会相应地操作,并在遇到另一只海龟时将分散器设置为“false”。但是,另一个将不会,并将继续将分散器设置为“true” 我确信这是因为一旦其中一只海龟操作了代码,它就不再是“分散者”,因此不再适用于后来海龟的搜索条件
to search-for partner
if male = true [ set potential-mates other turtles with [female = true
and disperser = true]
if female = true [ set potential-mates other turtles with [male = true
and disperser = true]
let chosen-mate min-one-of potential-mates [distance myself]
if any? potential-mates [
set heading towards chosen-mate]
if male = true [ if any? other turtles-here with [female = true and
disperser = true] [set disperser false]
if female = true [ if any? other turtles-here with [male = true and
disperser = true] [set disperser false]
end
我不完全相信我知道你们想要做什么,但我想你们是在要求将这两只海龟的分散器设置为false。在这种情况下,您希望代码看起来像这样(未经测试):
<>你也应该考虑从“找到合作伙伴”代码中分离“寻找合作伙伴”代码。另外,最好让他们检查一下是否有合作伙伴,然后通过将标题设置为“最近”并向前移动来搜索合作伙伴。目前,它们环顾四周,但哪儿也不去。我不完全相信我知道您想要做什么,但我认为您要求将这两只海龟的disperser设置为false。在这种情况下,您希望代码看起来像这样(未经测试): <>你也应该考虑从“找到合作伙伴”代码中分离“寻找合作伙伴”代码。另外,最好让他们检查一下是否有合作伙伴,然后通过将标题设置为“最近”并向前移动来搜索合作伙伴。此刻,他们环顾四周,但哪儿也不去
if male
[ let my-partner one-of other turtles-here with [female and disperser ]
if my-partner != nobody
[ set disperser false
ask partner [ set disperser false ]
]
]