Gammon ---------- Version : 1.3 (Fertigstellung : 10.04.93) Autor : Marc Fischlin Steigerwaldweg 6 D-6450 Hanau 7 (ab 01.07.93: D-63456 Hanau) Deutschland Sprache : C - Lattice SAS-C-Compiler V5.10 Hardware: Amiga 2000B/ 68000er/ Kickstart V2.04 ------------------------------------------------------------ "Gammon" ist urheberrechtlich geschützt. Alle Rechte liegen beim Autor. Das Verzeichnis "Gammon" darf kopiert und weitergegeben werden, solange das gesamte Verzeichnis kopiert und weitergegen wird, keine Änderungen an den Programmen des Verzeichnisses vorgenommen werden und mit der Weitergabe kein kommerzieller Gewinn erzielt wird. ------------------------------------------------------------ Anfangsmenü: Gammon ist eine Umsetzung des BackGammon-Spiels, die neben dem Zweispieler-Modus auch einen menschlichen Partner ersetzen kann. Die Menüfunktionen sind weitgehend selbsterklärend. "Save settings" speichert in der Datei "Gammon.INI" Ihre Lieblingswerte für Farbe, Computergegner, Anfangsstellung usw., die beim nächsten Programmstart wieder eingelesen und initialisiert werden. Ab Version 1.3 stehen vier verschiedene (verbesserte ?!) Computergegner zur Verfügung ("Random" wählt bei Spielbeginn einen der vier Gegner aus). Während "Aggressive" eher offensiv und riskant spielt, versucht der Computer bei "Defensive" seine Steine sicher nach Hause zu bringen. "Blocking" versucht primär Brücken zu bauen und "Balanced" spielt ein Gemisch aus allen drei anderen. Mit dem Menüpunkt "Colors" können sie eine der vier vorgegebenen Farbpaletten wählen. Nachdem man mit "Start game" ein Spiel begonnen hat, man mit "End Game" das aktuelle Spiel verläßt und ins Hauptmenü zurückkehrt, während man mit "Quit Gammon" das Programm verläßt; "Undo move" macht dann alle Züge bis zum letzten Zug Ihres Partners rückgängig. Programmtechnik: Einen Zug führt man aus, indem man die gewünschte Ausgangsposition anwählt (die Zahl leuchtet auf) und dann auf die Zielposition klickt. Der Zug wird, wenn er möglich ist, dann ausgeführt. Ab Version 1.3 können zwei Züge zu einem zusammengefaßt werden (allerdings nicht beim Hinausziehen), d.h. eine 5 und eine 3 können -sofern mindestens eins der beiden Zwischenfelder "frei" ist- sofort als 8 gezogen werden. Könnte oder müßte dabei beim Zwischenfeld ein Stein geschlagen werden, wird der Computer diesen Stein aber nicht vom Brett nehmen!!! Ein erneutes Anwählen der Ausgangsposition storniert die Wahl. Bei einem Doppelklick auf den Endpositionen wird der entsprechende Stein -wenn erlaubt- vom Feld gezogen; bei einem Stein, der an der Bar sitzt, reicht ein einfaches Anwählen auf der entsprechenden Position im Haus des Partners aus, um ihn aufs Spielfeld zurückzuziehen. Passen kann man, indem man auf die Würfel klickt. Ist ein Zug möglich, so wird der Computer den von ihm als besten betrachteten in der Titelleiste anzeigen (Somit kann der Computer auch die Funktion eines Ratgebers übernehmen). Computerstrategie: Der Computer unterscheidet zwei mögliche Spielzustände: (a) Die Steine der Partner sind noch nicht getrennt, d.h. ein Schlagen ist möglich, oder (b) Die jeweiligen Steine der Partner befinden sich in zwei seperaten Gebieten, d.h. Schlagen ist nicht mehr möglich. Im letzten Fall versucht der Computer, seine Steine so schnell wie möglich ins Haus und dann vom Feld zu ziehen. In Fall (a) berücksichtigt der Computer mehrer Kriterien: "Bloßstellung" eigener Steine, Schlagen gegnerischer Steine, Isolation eigener Steine, Brücken bauen usw. Programmtechnischer Standpunkt der Computerstrategie: Der Computer probiert zunächst alle mögliche Kombinationen per Rekursion durch und beurteilt dann die Endsituationen nach den oben angeführten Kriterien. Dabei unterscheidet er z.B. einen 3-5-Zug von einem 5-3-Zug, weil die Endsituation verschieden sein kann (man stelle sich vor, daß ein einzelner gegnerischer Stein im Abstand von drei entfernt stehe!). Bei einem Pasch entfällt diese Vertauschung allerdings, trotzdem kann es hier vorkommen, daß der Computer einige Sekunden Denkzeit braucht, schließlich betrachtet er teilweise bis über 2000 Endpositionen. Einige Beispiele aus Testspielen: 2106 Positionen bei einem 3er-, 2021 bei einem 2er-, 1924 bei einem 1er-, 1834 bei einem 5er-Pasch. Laplace oder nicht Laplace? : Wem beim Spielen eine Augenzahl zu oft fällt, dem seien hier folgende Versuchsergebnisse aus 960 Würfen präsentiert: (a) Für die einzelnen Augenzahlen (1,2,...,6) ergaben sich folgende Wahrscheinlichkeiten (mathematisch sollte laut Laplace immer P(X)=.166=16,6% gelten): P(1)=.185, P(2)=.178, P(3)=.146, P(4)=.152, P(5)=.143, P(6)=.196. (b) Für die Augensummen (2,3,...,12) mit mathematischem Vergleichswert gilt: P( 2)=.0354 zu .0278, P( 3)=.0625 zu .0555, P( 4)=.0916 zu .0833, P( 5)=.1042 zu .1111, P( 6)=.1396 zu .1388, P( 7)=.1583 zu .1666, P( 8)=.1188 zu .1388, P( 9)=.1104 zu .1111, P(10)=.0916 zu .0833, P(11)=.0500 zu .0555, P(12)=.0375 zu .0278. Annährend Laplace, oder? PS: Dank an Robert Hofmann für die großartige Unterstützung. ++++++++++++ Auch für PC-Windows erhältlich ++++++++++++++++