NETLOGO:如果一块地有两只乌龟,我该如何让乌龟死掉?
Posted
技术标签:
【中文标题】NETLOGO:如果一块地有两只乌龟,我该如何让乌龟死掉?【英文标题】:NETLOGO: How do I make a turtle die if there are two turtles on one patch? 【发布时间】:2016-01-24 17:19:24 【问题描述】:我想弄清楚的是,当任何一块土地上有两只乌龟时,如何让一只乌龟死掉。
这是我迄今为止一直在尝试的:
to deathbytubes
if ask patches [show count turtles-here] >= 2
[die]
end
我该如何解决这个问题以使其正常工作?
另外,谁能帮我弄清楚如何让乌龟在与另一只乌龟接触时死亡?
【问题讨论】:
How to kill turtles when they touch?的可能重复 ***.com/questions/34926964/… 很好地涵盖了这一点。也就是说,用 [count turtles- here >= 2][ask turtles-here [die]] 询问补丁完全符合您的要求。 @mattsap 为您的问题提供了正确答案。但是问题仍然存在:您是如何最终满足这种需求的?如果您只是想强制执行非共享位置约束,最好不要一开始就将 2 个海龟放在同一个补丁上。 【参考方案1】:如果一块海龟超过 2 只,这将杀死所有海龟。
ask turtles with [count turtles-here >= 2] [ die]
如果补丁上只有 2 只乌龟,这只会杀死 1 只乌龟。
ask patches with [count turtles-here = 2] [ ask one-of turtles-here[die]]
如果有超过 2 只海龟,以下将起作用。基本上,你找出哪些补丁有超过 2 只乌龟,然后让其中一只乌龟杀死其他人,这样就只剩下 1 只乌龟了。
ask patches with [count turtles-here >= 2] [ ask one-of turtles-here [ ask other turtles-here[die]]]
【讨论】:
这个可以简写成ask turtles with [count turtles-here > 2] [ die ]
我已经更新了我的解决方案;但是,我认为以前的内容和您评论中的内容可能不正确。问题要求一块海龟只存在一只,如果超过 1 只,它们会杀死所有海龟以上是关于NETLOGO:如果一块地有两只乌龟,我该如何让乌龟死掉?的主要内容,如果未能解决你的问题,请参考以下文章