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 = 0 ignoriereLochRechts= 1 while not kara.onLeaf(): while (ignoriereLochLinks or kara.treeLeft()) and (ignoriereLochRechts or kara.treeRight()): if not kara.treeFront(): kara.move() else: ignoriereLochLinks = not ignoriereLochLinks ignoriereLochRechts= not ignoriereLochRechts kara.turnLeft() kara.turnLeft() # ... kara.removeLeaf()