Wer kennt das Spiel „Drei gewinnt“ (engl. Tic-Tac-Toe) nicht? Hat doch jeder schon mal gespielt und vielleicht gemerkt, dass bei optimaler Spielweise immer ein Unentschieden resultiert. Dieser Fakt spielt im Film WarGames (Kriegsspiele) eine zentrale Rolle.
Ein seltsames Spiel
WarGames, kurze Zusammenfassung:
Der Computer-begeisterte Teenager David hackt sich zufällig in das WOPR System ein (War Operation Plan Response). Diesem Expertensystem wurde die Kontrolle über den Abschuss von Interkontinentalraketen mit Nuklearsprengköpfen übertragen. In Unkenntnis der Situation startet David die strategische Simulation „Weltweiter Thermonuklearer Krieg“. Er wird aber beim Spielen von seinen Eltern unterbrochen und trennt die Verbindung. Leider fährt WOPR frischfröhlich mit der Simulation fort und die Befehlshabenden werden immer wieder mit virtuellen sowjetischen Raketenangriffen konfrontiert. Mit der Unterstützung des KI-Forschers Stephen Falken, dem ursprünglichen WOPR-Entwickler, gelingt es David schliesslich, dem System die Sinnlosigkeit eines nuklearen Kriegs beizubringen. Dazu lässt er WOPR Tic-Tac-Toe spielen. Der Computer merkt, dass hier keiner gewinnen kann („Ein seltsames Spiel. Der einzig gewinnbringende Zug ist, nicht zu spielen.“ und spielt dann diverse Atomkriegsstrategien durch, mit dem gleichen Ergebnis. Daraufhin beendet WOPR das Spiel und damit auch die realen Abschussvorbereitungen der US-Atomraketen in letzter Sekunde. Hurra!
Tic-Tac-Toe auf dem HP-41
1982 hat Christopher Rath eine Implementierung des Tic-Tac-Toe Spiels in der PPC Technical Note #13 veröffentlicht. Das Programm speichert den Status der acht Gewinnlinien (3 vertikal, 3 horizontal und 2 diagonal), wie in der folgenden Tabelle dargestellt:
Zustand der Gewinnlinie | Freund/Feind Kombination | Wert |
---|---|---|
Null | Kein Freund/Feind in Linie | 0 |
Mögliche Bedrohung | 1 Feind in Linie | -1 |
Mögliche Gewinnchance | 1 Freund in Linie | 1 |
Muss geblockt werden | 2 Feinde in Linie | -2 |
Gewinnsituation | 2 Freunde in Linie | 2 |
Keine Bedrohung | 2 Freunde/1 Feind bzw. umgekehrt | 0 |
Für die acht Zustände der Gewinnlinien wird ein Speicherregister verwendet. Dazu kommt noch ein Register zum Speichern des Spielfelds. Eine guter Trade-Off zwischen Speichereffizienz und Geschwindigkeit. Christopher’s Programm benötigt das PPC Modul, aber nur, um Zufallszahlen zu erzeugen. Dieser Teil lässt sich einfach ersetzen. Zur Strategie des Programms sage ich hier nichts, die kann man mit ein paar selber Spielen ergründen.
Tic-Tac-Toe auf dem HP-85
Dieses Programm stammt aus meiner eigenen Feder. Der wesentliche Unterschied zum HP-41 Programm ist, dass das Spielfeld graphisch dargestellt wird. Auch hier wird per Zufall entschieden, wer das Spiel beginnt. Zugegeben, ich hätte hier die Chance packen und einen anderen Algorithmus implementieren können. Interessant finde ich zum Beispiel die Darstellung des Spielfelds als magisches Quadrat mit Summe 15.

Man merkt sich für jeden Spieler, welche Felder er besitzt und summiert die entsprechenden Werte auf. Wenn man mit einem Zug auf die Summe 15 kommt, hat man gewonnen. Vielleicht programmiere ich irgendwann diese Variante, aber für dieses Projekt war das Ziel ein anderes, nämlich den HP-41 gegen den HP-85 spielen zu lassen.
HP-41 spielt gegen HP-85
Im Film WarGames spielt das Programm Joshua gegen sich selber und lernt eine wichtige Lektion. Meine Idee war es, zwei meiner HP Lieblinge, den HP-41 und den HP-85, gegeneinander antreten zu lassen. Die beiden Geräte können über die HP-IL-Schnittstelle miteinander verbunden werden. Da der HP-41 immer als System Controller agiert, muss das HP-IL Modul des HP-85 entsprechend konfiguriert werden. Zugegeben, das Ganze ist nicht so dramatisch wie im Film, aber das zuschauen macht trotzdem Spass. Da beide Programme nicht perfekt spielen und dem Zufall eine kleine Chance lassen, ist der Ausgang auch nicht immer ein Unentschieden.
Die gesamte Software inklusive Barcodes und Disketten-Images habe ich auf Github zur Verfügung gestellt, siehe:
Tic-Tac-Toe for HP-85 and HP-41C
Kinoabend
Als Abschluss dieses Projekts habe ich heute Abend mit meiner Familie den Film WarGames angeschaut. Man kann ihn tatsächlich noch streamen! In Zeiten, wo viele Länder ihre Militärbudgets wieder stark erhöhen, hat er leider an Aktualität gewonnen. Hoffen wir nur, dass es bei Drohgebärden bleibt, denn Kriege haben nur Verlierer.