Как я могу узнать, какие процедуры вызывает конкретная черепаха (Netlo go) на каждом тике? - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь отладить движения трех конкретных черепах. Все черепахи, кроме трех, из заданного количества черепах (150) движутся, как и ожидалось. Однако трое из них ведут себя нерационально, проходя через стены (чего они не запрограммированы) или останавливаясь, чтобы двигаться на несколько тиков возле стен, а затем снова начинают двигаться. Я понимаю, что в Netlo go нет отладки и что нужно проявить творческий подход. Я использую проверку и печать, чтобы понять, что эти три конкретных черепахи делают (или собираются делать) на каждом тике.

спросить черепах [если [кто] из себя = 124 [осмотреть себя]]
спросить черепаху 124 [печатный заголовок]

Что действительно поможет, после этого добавить команду в сообщать / сообщать, какие процедуры и в каком порядке конкретная c черепаха вызывает на каждом тике. Я искал форумы, но безуспешно.

Заранее большое спасибо за любые предложения.

1 Ответ

2 голосов
/ 19 февраля 2020

Поместите оператор печати в начале всех соответствующих процедур в соответствии с type self print "I am at procedure-name". Я идентифицирует, какая черепаха делает процедуру. Обратите внимание, что это предполагает, что вы уже находитесь в контексте черепахи, поэтому self имеет смысл.

В качестве отступления вместо ask turtles [ if [who] of self = 124 [ inspect self] вы можете просто сказать inspect turtle 124

...