Also erweitere ich den Vergleich beider Wörter damit, das kürzere Wort auszugeben, sollten die Buchstaben bis zur letzten Stelle des kürzeren Wortes gleich sein.
Hier gibt es bestimmt viel Optimierungsspielraum, aber mir reicht erstmal das Erreichen der Funktionalität des Programms.
Die Inbox wird im Ding gespeichert und abhängig vom Wert wird der Buchstabe in der zugewiesenen Kachel ausgegeben. Anschließend wird der Wert rechts neben der Kachel mit dem Buchstaben in die Hand genommen und wenn dieser negativ ist, geht es mit der nächsten Inbox weiter.
Nun brauchen wir... nur noch einen JUMP setzen? Das schien mir zuerst zu einfach, doch ich ging die Schritte gedanklich nochmal durch und es passte.
Also legt der Angestellte los und gibt die Wörter ESCAPE APE aus.
So, gedanklich war ich bei vier zusätzlichen Kacheln, neben den drei vorgegebenen. Drei für jeweils eine Stelle der Inbox und eine Kachel für die Inbox selber. Doch sofort wurde mir klar, dass ich eine vierte Kachel gar nicht benötige. Daher die ungewohnte Anordnung der neuen Kacheln. Die Bezeichnung ist vielleicht auch etwas konfus, so steht "S" für Stelle, jedoch zähle ich hier von rechts nach links also wäre Stelle 3 bei der Zahl 123 die 1.
Also kopiere ich die Inbox auf Stelle 1 und die anderen beiden Stellen setze ich auf null.
Nun vermindere ich die gespeicherte Inbox mehrfach um 100 und erhöhe mit jeden Schritt die dritte Stelle um eins.
Dies mache ich in angepasster Form mit der zweiten Stelle und dann kommt auch schon die Ausgabe aller Stellen, solange diese nicht null sind.
Auch wenn das Programm scheinbar gut durchläuft, unterlief mir ein Denkfehler. So wird aus der Inbox 903 die Outboxen 9 und 3. Die zweite Stelle wird unterschlagen, da diese null beträgt.
Ich korrigiere den Fehler und erreiche das Ziel der Größenoptimierung.
Zuerst definiere ich zwei Kacheln, für Spalte und Zeile.
Die Inbox speichere ich in Spalte und ich vermindere sie solange um vier, bis ein negativer Wert rauskommen würde. So beträgt Spalte im letzten Teil der Schleife einen Wert zwischen null und drei, was der tatsächlichen Spalte der Inbox entspricht. Währenddessen wurde Zeile mit jeder erfolgreichen Subtraktion um eins erhöht, was auch zum gewünschten Ergebnis führt.