
Auch wenn das Programm kompliziert aussieht - es ist recht einfach:
- "Balken" sucht das Ende des aktuellen Balkens. Ist dieses erreicht, dann prüft
- "Länger?", ob der Balken oberhalb länger ist. Falls nein, dann geht Kara mit
- "Zeile" zum nächsten Balken über und beginnt dann mit "Balken" von vorn. Falls aber der Balken oberhalb länger ist, so muss er mit dem aktuellen Balken im Zustand
- "Tausche" vertauscht werden. Danach macht Kara mit
- "*Zeile" und
- "*Balken" weiter. Die Zustände "*Balken" und "*Zeile" machen das gleiche wie die Zustaände "Balken" und "Zeile". Der Unterschied ist, dass Kara in diesen beiden Zuständen weiss, dass er mindestens zwei Balken vertauscht hat und daher, wenn er den letzten Balken erreicht hat, nochmals mit
- "Neustart" alle Balken durchgehen muss. Erst wenn Kara in "Zeile" den letzten Balken erreicht hat, weiss er, dass er keine Balken vertauscht hat und somit fertig ist.