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
# ...