Schach spielen − Repost

Ein assistiertes Schach-Spiel.

Schach spielen − Repost Joachim Christ


Dies ist ein Repost des Beitrags Schach. Die Funktionaliät der Assistenten wurde durch die Umsetzung einer Lösungsbaum-Suche erhöht. Diese spielt anhand einer Brettbewertung und kann eine vorgegebene Anzahl an Teilzügen durchrechnen. Um die Performance zu verbessern wird dabei eine Alpha-Beta-Optimierung angewendet.

In einem Eingabefeld können Züge oder Kommandos eingegeben werden. Die angegebenen Regeln sind zu beachten.


↵


Bitte geben Sie einen gültigen Schachzug oder ein Kommando ein und starten Sie die Ausführung durch '↵' oder durch Klicken des Icons.

Regeln

  • Schach: Führt ein Zug zu einer Stellung, aus der heraus beim nächsten Zug der König geschlagen werden könnte, so nennt man dies 'Schach'.

  • Schachmatt: Führt ein Zug zu einer Stellung, aus der heraus beim nächsten Zug der König geschlagen werden könnte und der Spieler keine Möglichkeit hat, dem Geschlagenwerden zu entgehen, so nennt man dies 'Schachmatt'.

  • Spielende: Die Spiel-Logik erkennt, ob ein 'Schach' oder gar ein 'Schachmatt' vorliegt. Im Falle eines 'Schachmatt' ist das Spiel beendet. Wird der gegnerische König geschlagen, so ist das Spiel ebenso beendet.

  • Remis: Eine Spielsituation, in der keiner der beiden Kontrahenten das Spiel gewinnen kann, wird als 'Remis' bezeichnet. Besitzen die beiden Spieler nur noch ihren König bzw. eventuell einen Springer oder einen Läufer, so stuft die Spiel-Logik die Partie als 'Remis' ein.

  • Der König darf nur auf ein Feld gezogen werden, auf dem er nicht im 'Schach' steht.

  • Patt: Eine Spielsituation, in der ein Spieler zwar nicht im 'Schach' steht, aber keinen Zug mehr ausführen kann, ohne dass der König geschlagen werden könnte, nennt man 'Patt'. In diesem Fall endet die Partie unentschieden.

  • En-passant-Schlagen: Zieht ein gegnerischer Bauer aus der Grundposition zwei Felder vor, so kann er von einem eigenen Bauern geschlagen werden, als ob er nur ein Feld vorgerückt wäre.

  • Bauernumwandlung: Erreicht ein Bauer die gegnerische Grundlinie, so wird er in einen eigenen Offizier umgewandelt (also in Dame, Turm, Springer oder Läufer). Im Falle einer Bauernumwandlung öffnet sich ein Popup. Die Auswahl des Offiziers, in den der Bauer umgewandelt werden soll, erfolgt durch Anklicken der gewünschten Figur.

  • Züge

    Die Notation eines Schachzugs erfolgt durch die Angabe einer Figur (z. B. 'Ke1' für den König auf dem Feld 'e1'), einem Zeichen für die Art des Zugs und der Angabe des Zielfelds. Wenn eine gezogene Figur eine gegnerische Figur auf dem Zielfeld schlägt, dann ist '×' das Zeichen, das den Zug bezeichnet, ansonsten '−'. Zieht z. B. ein Bauer von 'e2' nach 'e4', ohne eine Figur zu schlagen, so notiert man das mit 'e2−e4'. Wird dabei eine Figur geschlagen, dann notiert man das z. B. mit 'e6×f7'.

  • Schlagen: Statt '×' darf auch 'x' oder ':' benutzt werden. Die Eingabe-Logik akzeptiert beim Schlagen auch die Notation mit '−'. Wird jedoch '×' benutzt, so muss am Zielfeld eine Figur stehen, die geschlagen wird.

  • Schach: Bei der Notation eines Zugs kann ein 'Schach' mit '†' gekennzeichnet werden. Statt '†' darf auch '+' benutzt werden.

  • Schachmatt: Bei der Notation eines Zugs kann ein 'Schachmatt' mit '‡' gekennzeichnet werden. Statt '‡' darf auch '++' oder '#' geschrieben werden.

  • Rochade: Eine Rochade (also der Doppelzug von König und Turm) wird entweder mit O-O (kleine Rochade) oder O-O-O (große Rochade) notiert. Der König darf nicht aus einem Schach heraus rochieren. Während der Rochade darf der König nur über Felder ziehen, auf denen er nicht geschlagen werden könnte.

  • En-passant-Schlagen: Bei der Notation dieses Zugs kann 'e,p.' hinter dem Zielfeld stehen.

  • Bauernumwandlung: Eine Bauernumwandlung wird notiert, indem hinter der Zugangabe eingeleitet durch ein '=' die Figur bezeichnet wird, in die der Bauer umgewandelt werden soll (also z. B. '=D', wenn er in eine Dame gewandelt werden soll).

  • Man beachte die Änderungen für die PGN-Notation.

    Kommandos

  • Durch das Kommando $quit kann derjenige, der am Zug ist, zu seinen Ungunsten das Spiel aufgeben.

  • Das Kommando $remis beendet das Spiel unentschieden.

  • Das Kommando $load erlaubt es, eine Schachstellung zu importieren. Entsprechend der erläuterten Notation werden alle Figuren aufgelistet. Als Besonderheit gilt, dass schwarze Figuren mit großen Buchstaben bezeichnet werden, weiße Figuren hingegen mit kleinen Buchstaben. Bauern müssen durch 'B' bzw. 'b' benannt werden. Umgewandelte Bauern sind als Bauern aufzuführen und die Umwandlung ist z. B. mit '=d' anzugeben.

    Man beachte die Änderungen für die PGN-Notation. Bei dieser Notation werden schwarze von weißen Figuren durch ein Präfix w bzw. b unterschieden. Damit haben Bauern die Benennung wP bzw. bP.

  • Das Kommando $store sichert die aktuelle Stellung so, dass sie mit $load geladen werden kann.

    Zwischen $store und $load darf die Notation ($pgn) nicht geändert werden.

  • Das Kommando $size bestimmt die Größe des Schachbretts. Der Wert kann zwischen 30 und 75 gesetzt werden. Der Standardwert beträgt 40.

  • Das Kommando $rotate schaltet einen Modus an oder aus, in dem das Schachbrett so angezeigt wird, dass die Grundlinie des aktuellen Spielers unten ist.

  • Das Kommando $povblack zeigt das Brett immer aus der Perspektive von Schwarz an. Dieses Kommando setzt das Kommando $rotate zurück.

  • Das Kommando $povwhite zeigt das Brett immer aus der Perspektive von Weiß an (Voreinstellung). Dieses Kommando setzt die Kommandos $rotate und $povblack zurück.

  • Das Kommando $animate schaltet einen Modus an oder aus, in dem Züge auf dem Schachbrett animiert angezeigt werden. Voreingestellt ist dieser Modus aktiviert.

  • Das Kommando $paint zeigt das Spielbrett und seine Figuren als Grafiken an.

  • Das Kommando $draw zeigt das Spielbrett und seine Figuren als Zeichnungen an. Dies ist die Voreinstellung.

  • Das Kommando $play spielt die angegebenen Züge nach. Der Übersichtlichkeit halber können zwei Halbzüge eine fortlaufende Nummer (mit abschließendem Punkt) tragen.

    Man beachte die Änderungen für die PGN-Notation. Bei dieser Notation werden Texte in [] und {} überlesen.

  • $play 1. e2-e4 c7-c5 2. Sg1-f3 Sb8-c6 3. d2-d4 c5xd4 4. Sf3xd4

  • Das Kommando $pgn_on wechselt die Zug-Notation zur internationalen Portable Game Notation. Bei dieser (im engeren Sinn der Standard Algebraic Notation) werden die Figuren wie folgt bezeichnet: K für King (König), Q für Queen (Dame), R für Rook (Turm), B für Bishop (Läufer) und N für Knight (Springer). Möglich ist auch: P für Pawn (Bauer).

    Meist wird dabei nur das Zielfeld eines Zuges angegeben. Ausnahme bildet z. B. die Angabe der Ausgangsspalte, wenn ein Bauer schlägt oder eine andere Un-Eindeutigkeit vorliegt.

    Das Schlagen wird durch x bezeichnet. Bei einer Rochade erfolgt die Notation mit 0-0-0 bzw. 0-0. Die Bauernumwandlung wird mit = gefolgt von einem Buchstaben für die eingewandelte Figur notiert.

  • Ist die PGN aktiviert, so schaltet das Kommando $pgn_off diese wieder aus.

    Man beachte die Auswirkungen der Kommandos $pgn_on und $pgn_off auf die Kommandos $load, $store und $play sowie die Eingabe eines Zugs im Eingabefeld.

  • Das Kommando $toggle schaltet die PGN-Notation an oder aus − also in den jeweils anderen Zustand.

  • Das Kommando $pgn wirkt analog dem Kommando $play. Seine Argumente werden aber immer in der PGN-Notation angegeben.

  • Das Kommando $list gibt das aktuelle Spiel in PGN-Notation aus.

  • Das Kommando $hover schaltet einen Modus ein oder aus, in dem beim Halten der Maus über einer Figur deren Bewegungsarten angezeigt werden.

  • Das Kommando $hint konfiguriert einen Hilfe-Modus, in dem die möglichen Züge angezeigt werden. Wird kein Parameter angegeben, so wird der Hilfe-Modus an- bzw. ausgeschaltet.

    • $hint 0 Der Hilfe-Modus wird deaktiviert.
    • $hint 1 Die Bewertung erfolgt unter Berücksichtigung der im Spiel befindlichen Figuren und deren Positionen.
    • $hint 2 Die Bewertung erfolgt aufgrund von 2 Teilzügen, also Zug und Gegenzug.
    • $hint 3 Die Bewertung erfolgt mit einer Tiefe von 3 Teilzügen.
    • $hint … 
    • $hint 9 Die Bewertung erfolgt mit der angegebenen Tiefe. Ab der Tiefe 4 erfolgt eine Optimierung nach dem Alpha-Beta-Verfahren.

  • Das Kommando $auto konfiguriert einen automatischen Spiel-Modus für Schwarz. Die Parameter sind analog denen bei $hint.

  • Das Kommando $demo konfiguriert einen automatischen Spiel-Modus für Weiß. Die Parameter sind analog denen bei $hint.

  • Das Kommando $biblio schaltet einen Modus ein oder aus, in dem Züge aus einer Eröffnungsbibliothek angezeigt werden.

  • Voriger Beitrag Nächster Beitrag