Die Hauptschwierigkeit ist, dass Kara nicht endlos einen Ausgang hinauf und gleich wieder hinabläuft. Er muss sich merken, ob er gerade einen Ausgang zu seiner rechten oder seiner linken sucht. Einen Ausgang auf der jeweils anderen Seite muss er ignorieren. Der folgende Programmausschnitt zeigt, wie Kara zwei boolean-Variablen benutzt, um den nächsten Ausgang zu suchen:
ignoriereLochLinks = false ignoriereLochRechts= true while not kara.onLeaf while (ignoriereLochLinks or kara.treeLeft) and (ignoriereLochRechts or kara.treeRight) if not kara.treeFront kara.move else ignoriereLochLinks = !ignoriereLochLinks ignoriereLochRechts= !ignoriereLochRechts kara.turnLeft kara.turnLeft end end # ...