The main difficulty is making sure that Kara does not endlessly walk up through an exit to the next row and then back down again. He must remember whether he is looking for an exit to his right or to his left. He must ignore exits on the other side. The following extract of the main programs shows how two boolean variables can be used to search fo the next exit:
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
# ...