Ein Hi-Lo Zahlenratespiel für Taschenrechner - wer kennt so etwas nicht?
Auf jeden Fall dürfte das Spiel Texas Instruments Fans bekannt sein, welche sich mit älteren programmierbaren Taschenrechnern dieser Firma beschäftigen.
Meine erste Begegnung mit einem derartigen Programm war 1977. Ich erinnere mich noch daran, als wäre es gestern.
Im damaligen Kaufhof in Frankfurt an der Hauptwache hatte ich einen TI-57 erworben. Nicht ohne vorher öfter mal dort gewesen zu sein und mir die Nase an den hinter Glas ausgestellten Taschenrechnern verschiedener Firmen die Nase platt gedrückt zu haben. Vor allem die programmierbaren TR von Hewlett-Packard und Texas Instruments hatte ich im Blick. Oh- wie toll sie aussahen mit ihren vielen Tasten. Viele Tasten mit Doppel- oder gar Dreifachbelegung. Die wenigsten Funktionen auf den Tasten waren mir zwar bekannt, aber um so beeindruckender waren sie für mich. Was konnte man damit alles machen? Programmieren auf jeden Fall - das stand ja auf den Schildern und teilweise auch auf den TR drauf. Programmieren - wie das funktioniert, wußte ich zu dieser Zeit noch gar nicht. Dem musste abgeholfen werden!
Die TR von Hewlett-Packard mit ihrer imposanten ENTER-Taste waren schon toll anzuschauen, aber das Preisschild daneben holte mich auf den Boden der Tatsachen zurück. Zusätzlich war mir UPN damals kein deutlicher Begriff, aber ich registrierte durchaus die fehlende =Taste. Irgendwie unheimlich! Das und vor allem der Preis lies mich zurückschrecken. Also konzentrierte ich mich auf die TR von Texas Instruments, die alle für viel weniger Geld zu bekommen waren. Der günstigste programmierbare von TI war der TI-57. Und den kaufte ich dann für 199,-DM. Schon unterwegs in der Straßenbahn musste er die ersten unbedarften Tastendrücke erdulden. Es sollten in den nächsten Monaten dann noch viel mehr werden ...
Näher beschrieben hat Postfix den TI-57 hier im Forum:
Eines der Beispielprogramme in der TI-57 Bedienungsanleitung mit dem Titel "DER WEG ZUM PROGRAMMIEREN" war das Hi-Lo Zahlenratespiel, welches mir damals viel Spaß gemacht hat.
Nachdem der TI-57 irgendwann dann Anfang der 1980er für mich nicht mehr so en vogue war und schon ziemlich lange beiseite gelegt worden war, habe ich 2003 einen TI-66 bei ebay gesehen und für ein paar € ersteigert. Einfach so, nur aus Neugier. Nachdem er bei mir angekommen war, stellte sich die Frage: was nun damit anfangen?
Nach den ersten Annäherungsversuchen und einigem Ausprobieren kam ich auf die Idee, das Hi-Lo Zahlenratespiel auf dem TI-66 neu zu schreiben und zu verbessern. Herausgekommen ist ein viel umfangreicheres Programm als damals beim TI-57. Vor allem ist es vielseitiger und benutzerfreundlicher. Dies war vor allem durch die erheblich vergrößerte mögliche Anzahl an Programmschritten gegenüber dem TI-57 möglich. Viel hat es mit dem alten TI-57 Programm nicht mehr gemein. Nur die Routine zur Pseudozufallszahlenerzeugung habe ich als Grundgerüst in mein Programm übernommen und auf die neuen Erfordernisse angepasst.
Für die Teilnahme am Programmierwettbewerb 2021 habe ich das alte Programm nun nochmals verbessert und auch ca. 30 Programmschritte eingespart. Die "Sprungroutine" z.B. hatte vorher mehr Verzweigungsbedingungen und ist ein übriggebliebener Rest aus der alten komplexeren Programmversion. Nur die Bedingungen (Sprungzahl) 3 & 4 sind übrig geblieben.
Was ich als Nachteil meiner Programmierung empfinde, sind die absoluten Prgrammadresssprünge zum "Festkomma setzten", aber das habe ich leider nicht anders hinbekommen. Besser wäre es eben über z.B. Labels gewesen, aber da hätte irgendwelche blöden Tastenfunktionen als Labelbezeichnung nehmen müssen, da ich ja schon die regulären Labes ausgereizt habe. Na ja, egal, es läuft ja auch so ganz gut. Nur bei der Programmeingabe muss man auf die richtige Sprungposition achten. Wenn man allerdings das Programm so eingibt wie es aufgelistet ist, geht alles in Ordnung.
Im originalen TI-57 Programm von 1977 war Aufgrund der arg begrenzten Programmschritte nicht viel Anwenderfreundlichkeit vorhanden. Da mein Ziel vor allem die Anwenderfreundlichkeit war, sollte die Schnittstelle TR-Tastatur und TR-Display möglichst freundlich für den Nutzer gestaltet werden. Es sollten also bei der Interaktion mit dem TR möglichst wenig Tasten gedrückt werden müssen. Im Endeffekt nur CLR, Zahlen und die R/S-Taste. Die Anzeigen im Display sollten auch möglichst übersichtlich gestaltet sein. Nicht ganz einfach bei einer ausschließlich numerischen Anzeige.
Im Display sollen unter anderem zwei Zahlen gleichzeitig angezeigt werden. Wie so etwas umsetzten? Die Lösung war, die zwei Zahlen durch das Kommazeichen sichtbar zu trennen. Da aber die beiden Zahlen eigentlich natürliche Zahlen sind, muss eine davon für die Anzeige erstmal in einen Dezimalbruch (hinter dem Komma) umgewandelt und in Form gebracht werden. Dafür waren ein paar Kniffe notwendig, die einfach und trotzdem elegant sind. Zum einem Softwarepatent wird es aber vermutlich dennoch nicht reichen.
Um eine natürliche Zahl (Beispiel: 1230) in einen Dezimalbruch umzuwandeln, wird die Zahl immer wieder (Beispiel: 4 mal) durch 10 geteilt, bis sie als ganzes hinter dem Komma steht. Dazu wird vorher die Stellenanzahl der Zahl bestimmt. Ist nämlich die letzte Ziffer dieser Zahl (wie im Beispiel) eine Null, würde diese Null bei der Nachkommadarstellung nicht mehr dargestellt werden (Beispiel: 0.123). Deshalb muss ein Fixkomma auf die Stellenanzahl dieser Zahl (Beispiel: 4) gesetzt werden (Beispiel: 0.1230). Zum Schluss wird einfach die zweite Zahl (Beispiel 12) hinzuaddiert und vor dem Komma angezeigt (Beispiel 12.1230). Nun sind zwei komplette natürliche Zahlen -getrennt durch ein Komma- im Display zu sehen.
Das Programm ist auf TI-58 und TI-59 einfach portierbar, wenn die kleinen spezifischen Unterschiede in der Tastaturbelegung bei der Eingabe des Programms beachtet werden. Getestet habe ich das Programm mit dem TI5X Calculator Emulator V.8.0 auf dem Android-Emulator NoxPlayer (ältere Version 6.0.8.0) unter Win XP. Es läuft dort wesentlich schneller als auf dem TI-66 und gänzlich ohne die "TI-66 Denkpausen".
Und nun wünsche ich viel Spaß und Erfolg beim Zahlenraten ...