我怎样才能找出特定乌龟(Netlogo)在每次滴答时调用的过程?
How can I find out which procedures a particular turtle (Netlogo) is calling at every tick?
我正在尝试调试三只特定海龟的动作。在设定的海龟数量 (150) 中,除了三只海龟外,所有海龟都按预期移动。然而,它们中的三个表现得非理性地穿过墙壁(它们没有被编程为这样做)或停下来在墙壁附近移动几刻然后再次开始移动。
我知道 Netlogo 中没有调试功能,需要发挥创意。我正在使用检查和打印,以了解这三只特定的海龟在每次滴答时正在做什么(或将要做什么)。
ask turtles [ if [who] of self = 124 [ inspect self] ]
ask turtle 124 [ print heading]
真正有帮助的是,在此之后向 tell/report 添加命令,即特定海龟在每次滴答时调用的过程和顺序。我一直在看论坛,但没有成功。
按照type self print "I am at procedure-name"
行在所有相关程序的开头放置打印语句。自我识别哪只乌龟正在执行该程序。请注意,这假设您已经在 turtle 上下文中,因此 self
有意义。
顺便说一句,您可以简单地说 inspect turtle 124
而不是 ask turtles [ if [who] of self = 124 [ inspect self]
我正在尝试调试三只特定海龟的动作。在设定的海龟数量 (150) 中,除了三只海龟外,所有海龟都按预期移动。然而,它们中的三个表现得非理性地穿过墙壁(它们没有被编程为这样做)或停下来在墙壁附近移动几刻然后再次开始移动。 我知道 Netlogo 中没有调试功能,需要发挥创意。我正在使用检查和打印,以了解这三只特定的海龟在每次滴答时正在做什么(或将要做什么)。
ask turtles [ if [who] of self = 124 [ inspect self] ]
ask turtle 124 [ print heading]
真正有帮助的是,在此之后向 tell/report 添加命令,即特定海龟在每次滴答时调用的过程和顺序。我一直在看论坛,但没有成功。
按照type self print "I am at procedure-name"
行在所有相关程序的开头放置打印语句。自我识别哪只乌龟正在执行该程序。请注意,这假设您已经在 turtle 上下文中,因此 self
有意义。
顺便说一句,您可以简单地说 inspect turtle 124
ask turtles [ if [who] of self = 124 [ inspect self]