Eine Verallgemeinerung des Standard-Gobrett-Netzes
Letztens auf einer Zugfahrt zum Go-Turnier kam das Gespräch auf Gobrettvarianten mit mehr oder weniger Freiheiten pro Punkt.
Ich überlegte, wie man sowas machen könnte, während Ralf murmelte "man muss es halt einfach machen".
Dieser Ansatz faszinierte mich. Eine eingehendere Beschäftigung mit der Frage, wie man sich Gobretter aus allgemein n-eckigen "Feldern"
(Verallgemeinerung der Quadrate) mit f Freiheiten pro Punkt (außer ggf. am Rand) vorzustellen hat, führte zu folgendem Ergebnis:
Mit Quadraten und 4 Freiheiten (klassisches Brett), Sechsecken und 3 Freiheiten (bienenwabenartig) sowie Dreiecken und 6 Freiheiten (ergibt sich z.B. aus
Vorigem durch Unterteilung der Felder) ist alles klar.
Mit Dreiecken und 3 bis 5 Freiheiten und 3 Freiheiten mit Drei- bis Fünfecken ergeben sich die
Kanten der fünf Platonischen Körper, die sich auf kugelförmige Bretter aufzeichnen lassen; diese Bretter bieten sehr wenig Platz
(und sind daher auch noch nicht implementiert).
2 Freiheiten ergeben Ringe, 1 Freiheit ein "2*1-Brett" (ohne Rücksicht auf die Eckenzahl, oder evtl. mehrfach)
(diese f<3-Fälle sind auch nicht implementiert).
Bei weniger als 3 Ecken kriegt man prinzipielle Probleme, denen ich noch nicht weiter nachgegangen bin.
Interesant wird es nun aber bei größeren Zahlen: Die Aufstellung der Freiheitenbeziehungen ist generell möglich; bei der geometrischen Realisierung
muss man, wenn man irgendwo anfängt, aber sehr bald anfangen, grob zu quetschen und zu zerren. Abhilfe kam in Gestalt der Erinnerung an einen alten
Spektrum der Wissenschaft-Artikel über Hyperbolische Geometrie. Tatsächlich fand sich in der
örtlichen Unibibliothek schließlich ein Rezept, das zur Darstellung einer solchen Ebene mit "ungewöhnlichen Naturgesetzen"
auf einem handlichen Bildschirmausschnitt benutzt werden kann, nämlich durch bestimmte Kreisbögen auf einer Kreisscheibe.
Man wird zu diesem interessanten Thema wohl auch im Netz genug finden, z.B. wenn man nach nichteuklidischer Geometrie bzw. dem Parallelenaxiom und den Mathematikernamen Bolyai und
Lobatschewski sucht (Entscheidend beteiligt war natürlich Gauß; der geniale Mann auf dem Zehnmarkschein, der in der Mathematik anscheinend
so ziemlich alles erfunden hat, was weder sehr alt noch sehr neu ist. Daher würde ich seinen Namen für gezielte Suchanfragen eher nicht
empfehlen). Wenn jemand einen guten Link hat, bitte
melden!
Über diese Betaversion
Ich habe also ein Java-Applet geschrieben, das die Darstellung von derartigen Gobrettern übernimmt. Entsprechend der einschlägigen Programmierer-Binsenweisheit dauert alles länger als man glaubt,
so dass ich es jetzt schon ins Netz gestellt habe, wo es überhaupt erstmal funktioniert. Allerdings geht es nicht mit allen Browsern, und stürzt ab, wenn
man zu große Bretter anfordert. Diese Grenze liegt nicht sehr hoch; Grund ist offenbar ein zu hoher Speicherbedarf des Programms.
Wenn ich mich mal wieder dazu aufraffen kann, werde ich auf diese Probleme zurückkommen, unterdessen gibt es hier diese Vorabversion nach dem Motto "besser als überhaupt nix".
Ich stelle hier auch schonmal den Quelltext bereit (ohne die Verschiebefunktionalität, da ich eine funktionierende Quelltext-Version damit zu sichern vergessen habe :-( ). Allerdings nur, um dem Open-Source-Prinzip Genüge zu tun und nicht,
weil ich ihn im gegenwärtigen Zustand für besonders nützlich halten würde. Etliche Bestandteile, die ich auf Grund planlosen Vorgehens geschrieben habe, ohne sie zu brauchen,
sind nicht einmal getestet.
Zwischen dem Brettwahl-Modus und dem Steinesetz-Modus wechselt man mit dem ganz kleinen Rechteck im unteren rechten Eck des "Steuerpultes" links oben.
Achtung: Beim Ändern der Brettparameter gehen die Steine weg.
Das Ergebnis sieht so aus:
Was ich irgendwann noch einbauen möchte:
- veränderliche Fenstergröße
- Speicherbedarf verringen, so dass größere Bretter nicht zum Absturz führen
- Kugelgeometrie (so dass die Parameterkombinationen, die Platonische Körper ergeben, auch funktionieren)
- automatische Erkennung von Ketten ohne Freiheiten und Überführung in eine "Gefangenenschale" (Zähler); evtl. auch Ko-Regel.
- in den Büchern nach einem Trick suchen, wie man vermeidet, dass das Applet, auch wenn es gar nichts tut, erkleckliche CPU-Last verursacht
- Den Quelltext dokumentieren und die Kampfspuren der Debug-Phase beseitigen, denn:
Auf die Dauer suche ich nach Leuten mit mehr Zeit als ich, die beim weiteren Ausbau des Programms helfen (Spielen übers Netz,
andere Ränder, andere Bretter (Fullerengitter, Torus, Rechteck, Penrosemuster, Drei- und Mehrdimensionales ....), Bretttyp-Editor ...).
Kommentare, Spielerfahrungen (ich habe noch gar nicht ernsthaft auf den Dingern Go gespielt!), Anfragen usw. bitte an Wastl Sommer.