首页 > 解决方案 > 如何找出特定海龟(Netlogo)在每个滴答声中调用的程序?

问题描述

我正在尝试调试三只特定海龟的运动。在设定的海龟数量(150)中,除了三只海龟外,所有海龟都按预期移动。然而,他们中的三个人的行为是不合理的,穿过墙壁(他们没有被编程这样做)或在墙壁附近停下来移动几个滴答声,然后再次开始移动。我知道 Netlogo 中没有调试功能,需要有创意。我正在使用检查和打印来了解这三只特定的海龟在每个滴答声中正在做什么(或即将做什么)。

ask turtles [ if [who] of self = 124 [ inspect self] ]   
ask turtle 124 [ print heading]

真正有帮助的是,在此之后添加命令来告诉/报告特定海龟在每次滴答时调用的过程和顺序。我一直在看论坛,但没有成功。

标签: netlogo

解决方案


在所有相关程序的开头放置一个打印语句type self print "I am at procedure-name"。自我识别哪个海龟正在执行该过程。请注意,这假设您已经在海龟上下文中,所以self很有意义。

顺便说一句,ask turtles [ if [who] of self = 124 [ inspect self]你可以简单地说inspect turtle 124


推荐阅读