DOBUTSU(6)

NAME
dobutsu – spiele Dobutsu Shogi

ÜBERSICHT
dobutsu [-qv] [-c Farbe] [-s Stärke[,Stärke]] [-t tafelwerk.tb]

BESCHREIBUNG
dobutsu ist eine Engine für die japanische Schachvariante Dobutsu Shogi mit einer gnuchess(6) artigen Benutzerschnittstelle. Die Engine erreicht unter Verwendung einer vollständigen Endspieltafel perfektes Spiel, kann aber auf eine beliebige Spielstärke eingestellt werden.

Die folgenden Optionen werden unterstützt:

-c Farbe
    Lass den Computer Farbe spielen. Wenn Farbe eins von bBsS ist, spielt der Computer Sente (zieht an). Wenn Farbe eins von wWgG ist, spielt der Computer Gote (zieht nach). Mehr als eine Farbe kann angegeben werden, damit der Computer gegen sich selbst spielt.

-q  Gib nicht nach jedem Zug das Spielbrett aus. Diese Einstellung ist standardmäßig gesetzt.

-s Stärke[,Stärke]
    Setze die Spielstärke des Computers auf Stärke, einer positiven Gleitkommazahl. Werte über 700 lassen den Computer perfekt spielen. Werden zwei Spielstärken in der Form Stärke,Stärke angegeben, gilt die erste Stärke für Sente und die zweite für Gote.

-t tafelwerk.tb
    Lade die Endspieltafel aus tafelwerk.tb. Wird die Option -t nicht angegeben, so wird das Tafelwerk aus der in der Umgebungsvariable DOBUTSU_TABLEBASE angegebenen Datei geladen. Ist auch diese Variable nicht gesetzt, werden die Dateien dobutsu.tb und dobutsu.tb.xz im Arbeitsverzeichnis probiert.

-v  Gib nach jedem Zug das Spielbrett aus.

BEFEHLE
dobutsu ist ein interaktives Programm, dass den Nutzer nach Befehlen fragt und ggf. auf diese antwortet. Alle Interaktionen einschließlich Fehlermeldungen finden auf Standardein- und -ausgabe statt. Nur fatale Fehlermeldungen werden nach Standardfehler geschrieben. Ein Befehl ist entweder ein Zug in algebraischer Notation oder einer der folgenden:

both
    Lasse den Computer beide Spieler spielen und spiele so sofort das Spiel mit dem aktuell eingestellten Spielstärken zu Ende.

exit
    Beende das Programm.

force
    Lasse den Computer keine der beiden Seiten spielen.

go  Lass den Computer die Seite spielen, die gerade am Zug ist.

help
    Gib eine Liste der Befehle aus.

hint
    Gib aus, was der Computer spielen würde.

new [Stellung]
    Starte ein neues SPiel. Wird Stellung angegeben, so wird diese als Startposition aufgebaut. Ansonsten wird die normale Startposition aufgebaut. Die Startposition wird in einer Variante der Forsyth-Edwards-Notation angegeben. Sehen Sie sich die Ausgabe von show position an, um zu verstehen, wie diese Notation funktioniert.

remove
    Nehme die letzten beiden Züge zurück.

setup [Stellung]
    Alias für new.

show irgendwas
    Gib nützliche Informationen aus. Dieses irgendwas kann sein:

    board
        Gib das Spielbrett aus.

    setup
        Gib die Stellung in Kurzschreibweise aus.

    moves
        Gib alle möglichen Züge aus.

    eval
        Gib eine Stellungsbewertung aus.

    lines
        Gib mögliche Züge und ihre Bewertung aus.

strength [Stärke [Stärke]]
    Wenn ohne Parameter aufgerufen, gib die Spielstärken aus.

    Wenn mit einem oder zwei Parametern aufgerufen, setze die Spielstärke des Computers auf eine positive Gleitkommazahl. Werden zwei Stärken angegeben, so gilt die erste für Sente und die zweite für Gote. Spielstärken über 700 lassen den Computer perfekt spielen.

undo
    Nimm den letzten Zug zurück. War der letzte Zug ein Zug des Computers, so wird der Computer sofort einen anderen Zug spielen. Nutze entweder force um den Computer zu stoppen, oder remove um zwei Züge auf einmal zurückzunehmen.

quiet
    Gib das Spielbrett nicht nach jedem Zug aus.

quit
    Beende das Programm (Alias für exit).

verbose
    Gib das Spielbrett nach jedem Zug aus.

version
    Gib die Programmversion aus.

REGELN
Dobutsu Shogi (Tiershogi) ist ein Strategiespiel für zwei Spieler, das auf einem 4×4-Brett gespielt wird. Jeder Spieler hat zunächst vier Figuren: Ein Löw (L), ein Elephant (E), eine Giraffe (G), und ein Küken (C). Der Spieler, dessen Löwe auf der vierten Reihe startet heiß Sente. Seine Figuren werden durch Großbuchstaben dargestellt. Die andere Spielerin heißt Gote und wird durch Kleinbuchstaben dargestellt. Sente zieht an, dann ziehen beide Spieler abwechselnd. Die Startposition ist wie folgt:

      ABC
     +---+
    1|gle|
    2| c |
    3| C |
    4|ELG|
     +---+

Ziel des Spiels ist es entweder, den gegnerischen Löwen zu fangen, oder den eigenen Löwen auf ein nicht angegriffenes Feld in der Beförderungszone (die Reihe am weitesten weg vom Startfeld des Löwens) zu ziehen. Die Beförderungszone von Sente ist Reihe 1, die von Gote ist Reihe 4.

Jede Figur zieht auf ihre eigene Art und Weise. Der Löwe kann ein Feld in jede Richtung ziehen, der Elephant ein Feld diagonal, die Giraffe ein Feld horizontal oder vertikal, und das Küken nur ein Feld in Richtung der Beförderungszone. Wird ein Küken in die Beförderungszone gezogen, so wird es zu einem Hahn befördert. Dieser kann ein Feld horizontal, vertikal, oder diagonal in Richtung der Beförderungszone ziehen. Das folgende Diagram zeigt mit Sternchen die Felder, zu denen Sente's Figuren ziehen können:

    ***  * *   *    *   ***
    *L*   E   *G*   C   *R*
    ***  * *   *         *

Figuren können nicht auf Felder ziehen, die von eigenen Figuren belegt sind. Wird eine Figur auf ein Feld gezogen, das von einer gegnerischen Figur belegt ist, so wird diese gefangen und auf die Hand des Fängers genommen. Ist die gefangene Figur ein Hahn, so wird der Hahn wieder zum Küken. Anstatt eine Figur zu ziehen, kann der Spieler auch eine Figure seiner Hand auf ein beliebiges Feld auf dem Spielbrett einsetzen.

Wiederholt sich eine Stellung zum dritten mal ist das Spiel remis. Es gibt kein Patt. Wenn alle Züge zum Schachgebot für den eigenen Löwen führen, so muss der Löwe ins Schach ziehen. Ist kein Zug möglich, so verliert der Spieler, der am Zug ist.

UMGEBUNG

DOBUTSU_TABLEBASE
    Ort der Endpspieltafeln.

DATEIEN

dobutsu.tb, dobutsu.tb.xz
    Endspieltafeln.

RÜCKABEWERT

1   Ein fataler Fehler trat auf.

0   Kein fataler Fehler trat auf.

BEISPIELE
Es folgt eine Beispielsitzung, in der ein paar Befehle dargestellt werden. Das Programm gibt die Nummer des aktuellen Zuges als Eingabeaufforderung aus. Nutzereingaben sind in Fettschrift angegeben.

    Lade Tafelwerk... fertig
    1. show board
      ABC
     +---+
    1|gle|
    2| c |
    3| C |
    4|ELG| *
     +---+
    1. Cb3b2
    2. show board
      ABC
     +---+
    1|gle| *
    2| C |
    3|   |
    4|ELG| C
     +---+
    2. show setup
    G/gle/-C-/---/ELG/C
    2. show lines
    Ec1xb2 : #75   (24.22%)
    Lb1xb2 : #-72  (22.95%)
    Lb1-c2 : #-30  (22.07%)
    Lb1-a2 : #-30  (22.07%)
    Ga1-a2 : #-2   ( 8.68%)
    2. strength 20
    2. show lines
    Ec1xb2 : #75   (60.59%)
    Lb1xb2 : #-72  (20.54%)
    Lb1-c2 : #-30  ( 9.44%)
    Lb1-a2 : #-30  ( 9.44%)
    Ga1-a2 : #-2   ( 0.00%)
    2. show moves
    Ga1-a2
    Ec1xb2
    Lb1-c2
    Lb1xb2
    Lb1-a2
    2. show eval
    #75
    2. go
    Mein 2. Zug ist : Ec1xb2
    3. go
    Mein 3. Zug ist : Gc4-c3
    4. show setup
    G/gl-/-e-/-C-/ELG/c
    4. quit

FEHLERMELDUNGEN

Lade Tafelwerk... tbfile.tb: irgendein Fehler
    Das Tafelwerk konnte aus irgendeinem Grund nicht geladen werden. Alle Funktionen, die das Tafelwerk benötigen, sind nicht verfügbar.

Fehler (Tafelwerk nicht verfügbar) : irgendein befehl
    Das Tafelwerk konnte nicht geladen werden und Sie versuchten, einen Befehl auszuführen, der dieses benötigt.

Fehler (ungültige Stellung) : irgendein Befehl
    Sie haben eine ungültige Stellung an den Befehl new oder setup übergeben.

Fehler (unbekannter Befehl) : unbekannter Befehl
    Sie haben einen Befehl eingegeben, der diesem Programm nicht bekannt ist. Geben Sie help für eine Befehlsliste ein.

Fehler (Spielstärke muss positiv sein) : rgendein Befehl
    Sie haben die Spielstärke auf einen Wert gesetzt, der nicht positiv ist.

Fehler (ungültige Spielstärke) : irgendein Befehl
    Sie haben dem Befehl strength einen Parameter gegeben, den dieser nicht als Gleitkommazahl verstanden hat.

SIEHE AUCH
gnuchess(6), gnugo(6), xboard(6)

ACHTUNG
Auch wenn die Benutzerschnittstelle sehr ähnlich zu gnuchess(6) ist, ist dobutsu(6) doch nicht kompatibel zu xboard(6).

Im Prinzip ist es gestattet, den Löwen auf ein angegriffenes Feld der Beförderungszone zu ziehen, ohne dann zu gewinnen. Der Löwe kann dann sofort vom Gegner geschlagen werden. Da nicht klar ist, was geschieht, wenn der Gegner den Löwen nicht sofort schlägt, verbietet dieses Programm, den Löwen auf ein angegriffenes Feld in der Beförderungszone zu ziehen. Ins Schach zu ziehen ist sonst erlaubt.

Die Option -s strength adjustiert eine Wichtungsfunktion in der Zugauswahl. Da der Computer nichts außer dem Eintrag im Tafelwerk über die Stellung über ihre Bewertung weiß, unterscheidet sich seine Auffasung von einem guten Zug oft davon, was ein Mensch denken würde.

GESCHICHTE
Dobutsu Shogi ist eine 2009 erfundene Schachvariante der professionellen Shogi-Spielerin Madoka Kitao. Dobutsu Shogi wurde zuerst 2009 vom Wissenschaftlichen Mitarbeiter der Universität Tokio Tanaka Tetsuro gelöst. Dieses Programm wurde als Hobbyproject des Autors im Juli 2016 begonnen. Die Programmierarbeiten wurden im Wesentlichen im Februar 2017 abgeschlossen.

AUTOR
Robert Clausecker <fuz@fuz.su>