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

# ...