Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / Schachprogrammierung / Shogi Github Projekte
- By Lothar Jung Date 2022-10-15 11:06 Upvotes 1
Aktuell sind es 138!

Hier der Link:

https://github.com/topics/shogi
- - By Lothar Jung Date 2022-12-13 21:43 Edited 2022-12-13 22:05 Upvotes 1
Eine deutschsprachige Umsetzung ist Fairy-Stockfish mit Windows compiles:

https://github.com/ianfab/Fairy-Stockfish

https://github.com/ianfab/Fairy-Stockfish/releases/tag/fairy_sf_14

Hier eine WinBoard-Variante auch für Shogi:

http://hgm.nubati.net/
Parent - By Max Siegfried Date 2022-12-13 23:34
Lothar Jung schrieb:

Eine deutschsprachige Umsetzung ist Fairy-Stockfish mit Windows compiles:

<a class='ura' href='https://github.com/ianfab/Fairy-Stockfish'>https://github.com/ianfab/Fairy-Stockfish</a>

<a class='ura' href='https://github.com/ianfab/Fairy-Stockfish/releases/tag/fairy_sf_14'>https://github.com/ianfab/Fairy-Stockfish/releases/tag/fairy_sf_14</a>

Hier eine WinBoard-Variante auch für Shogi:

<a class='ura' href='http://hgm.nubati.net/'>http://hgm.nubati.net/</a>


Das ist doch die steinalte Version Nummer 14.
Stockfish gibt es schon längst in Version 15 und inzwischen sogar 15.1.
- By Lothar Jung Date 2023-03-20 21:54
https://lishogi.org/learn#/10/4

Umfangreiche Webseite.
Mit Shogi Letnkurs.
- By Lothar Jung Date 2023-03-21 21:41
https://github.com/yaneurao/YaneuraOu/wiki/%E3%82%84%E3%81%AD%E3%81%86%E3%82%89%E7%8E%8B%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89%E6%89%8B%E9%A0%86#CPU%E3%82%BF%E3%83%BC%E3%82%B2%E3%83%83%E3%83%88%E3%81%AE%E7%A8%AE%E9%A1%9E

Anleitung zur Erstellung eins Shogi Anwendung
- By Lothar Jung Date 2023-05-21 22:13 Edited 2023-05-21 22:16
Sehr informative Shogi Webseite mit AI Veröffentlichungen:

http://www.aifactory.co.uk/shotestshogi.co.uk/index.htm
- By Lothar Jung Date 2023-07-15 12:17 Edited 2023-07-15 12:21
Zur Einführung ist eine umfassende Shogi GUI, ähnlich Arena empfehlenswert:

https://www.chessvariants.com/programs.dir/BCMGames_final_FDuniho.zip

Desweiteren ist die Webseite tsshogi für Engines, Eröffnungen etc. sehr relevant.

http://tonyjh.com/chess/tjshogi/

Ebenfalls empfehlenswert ist die GUI Shogidokoro:

http://shogidokoro.starfree.jp/

Die Seite kann man mit http://www.bing.com/translator/  nach englisch übersetzt werden.

Dies ist auch sehr nützlich für weitere japanische Webseiten.

Siehe auch die Inhalte auf folgendem Link:

https://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=13481
- By Lothar Jung Date 2023-07-22 13:32
Die Programmierung von Shogi-Programmen/Engines: Eine Herausforderung der Schachwelt

Shogi, auch bekannt als japanisches Schach, ist ein faszinierendes und komplexes Brettspiel, das in Japan eine lange Tradition hat. Ähnlich wie beim klassischen Schach besteht das Ziel darin, den gegnerischen König matt zu setzen. Doch Shogi unterscheidet sich in vielen Aspekten von seinem westlichen Gegenstück, was die Programmierung von Shogi-Programmen und Engines zu einer besonderen Herausforderung macht.

Die Besonderheiten von Shogi

1. **Promotion**: Eine der bemerkenswertesten Eigenschaften von Shogi ist die Möglichkeit, gefangene feindliche Steine zu "promovieren". Das bedeutet, dass ein erobertes Stück auf der gegnerischen Seite des Bretts wieder eingesetzt wird, aber mit erweiterten Bewegungsmöglichkeiten. Dieser Aspekt erhöht die Komplexität des Spiels erheblich, da die Programmierung die Wahl zwischen normalen und promovierten Steinen berücksichtigen muss.

2. **Drop-Regel**: In Shogi können gefangene Steine zurück auf das Brett gesetzt werden, anstatt sie nur zu entfernen. Dies wird als "Drop-Regel" bezeichnet und ermöglicht es einem Spieler, im Laufe des Spiels eine größere Anzahl von Steinen auf dem Brett zu haben. Dadurch eröffnen sich zahlreiche taktische Möglichkeiten, die die Programmierung berücksichtigen muss.

3. **Großes Spielfeld**: Shogi wird auf einem 9x9-Brett gespielt, was im Vergleich zu den 8x8-Brettern des klassischen Schachs eine zusätzliche Dimension in das Spiel bringt. Die größere Fläche bietet mehr Möglichkeiten für komplexe Positionen und erfordert von Shogi-Programmen eine erweiterte Sichtweise und Berechnungsfähigkeit.

Die Entwicklung von Shogi-Engines

Die Programmierung von Shogi-Engines ist eine anspruchsvolle Aufgabe, die ein tiefes Verständnis des Spiels, eine effiziente Algorithmik und einen geschickten Umgang mit Ressourcen erfordert. Hier sind einige Schlüsselschritte bei der Entwicklung einer Shogi-Engine:

1. Darstellung des Spielfelds

Zuallererst muss das Shogi-Spielfeld im Computer repräsentiert werden. Es gibt verschiedene Möglichkeiten, dies zu tun, wie zum Beispiel Bitboards oder Array-Strukturen. Bitboards sind eine effiziente Methode, um Informationen über die Positionen der Steine auf dem Brett zu speichern, während Array-Strukturen einfachere Implementierungen ermöglichen.

2. Legale Züge generieren

Die Shogi-Engine muss in der Lage sein, alle legalen Züge für eine gegebene Position zu generieren. Dies beinhaltet sowohl die normale Bewegung der Steine als auch die Sonderregeln für die Umwandlung und das Einsetzen von gefangenen Steinen. Eine effiziente Zuggenerierung ist entscheidend, da Shogi aufgrund der großen Anzahl möglicher Züge sehr rechenintensiv sein kann.

3. Bewertungsfunktion

Eine gute Bewertungsfunktion ist für eine Shogi-Engine unerlässlich. Sie bewertet eine gegebene Position und ordnet ihr einen Wert zu, der angibt, wie gut diese Position für den Spieler ist. Die Bewertungsfunktion berücksichtigt Faktoren wie Materialvorteile, Positionierung der Steine, Mobilität und andere strategische Aspekte des Spiels.

4. Suche nach dem besten Zug

Um den besten Zug zu finden, führen Shogi-Engines eine Suche durch den möglichen Zugraum durch. Es gibt verschiedene Suchalgorithmen wie den Minimax-Algorithmus mit Alpha-Beta-Pruning oder Monte-Carlo-Tree-Search (MCTS). MCTS hat sich in den letzten Jahren als sehr erfolgreich erwiesen, da es gut mit den komplexen Regeln von Shogi zurechtkommt.

5. Optimierung und Parallelisierung

Shogi-Engines müssen optimiert werden, um effizient auf den begrenzten Ressourcen moderner Computer zu arbeiten. Dies beinhaltet die Verfeinerung der Suchalgorithmen, die Verbesserung der Bewertungsfunktion und die Parallelisierung der Berechnungen, um mehrere CPU-Kerne oder sogar GPUs zu nutzen.

Die Herausforderung des Deep Learning

In den letzten Jahren hat das Deep Learning die Welt der Schachprogrammierung revolutioniert, insbesondere mit dem Aufstieg von AlphaZero und seinen Nachfolgern. Diese Ansätze haben gezeigt, dass es möglich ist, Schachprogramme zu entwickeln, die menschliche Weltmeister übertreffen. Allerdings hat sich gezeigt, dass diese Methoden nicht so leicht auf Shogi übertragbar sind.

Da Shogi mehr Steine und eine komplexere Zugmechanik hat, wird die Verwendung von Deep Learning für Shogi-Engines zu einer noch größeren Herausforderung. Es erfordert eine umfangreiche Datenmenge und spezialisierte Architekturen, um gute Ergebnisse zu erzielen.

Die wichtigsten Shogi-Programme/Engines und ihre Spielstärke

In den letzten Jahrzehnten hat die Entwicklung von Shogi-Programmen und Engines enorme Fortschritte gemacht. Hier sind einige der wichtigsten Shogi-Programme und ihre Spielstärke:

1. Bonkras (früher Bonanza)

Bonkras, früher bekannt als Bonanza, ist eine der bekanntesten und erfolgreichsten Shogi-Engines. Entwickelt von dem Programmierer Kunihito Hoki, hat Bonkras eine beeindruckende Leistung in Turnieren und Wettbewerben gezeigt. Es verwendet eine Kombination aus Suchalgorithmen wie MCTS und Alpha-Beta-Pruning und verfügt über eine gut optimierte Bewertungsfunktion. Bonkras hat viele starke Shogi-Programme besiegt und gilt als einer der Top-Konkurrenten in der Shogi-Programmierwelt.

2. YaneuraOu (früher Ponanza)

YaneuraOu, früher bekannt als Ponanza, ist ein weiteres bemerkenswertes Shogi-Programm. Es wurde von Yoji Ojima entwickelt und verwendet ähnliche Suchalgorithmen wie Bonkras. YaneuraOu hat sich in verschiedenen Turnieren gut geschlagen und wird kontinuierlich weiterentwickelt, um seine Spielstärke zu verbessern. Es ist auch bekannt für seine Offenheit und wird oft von anderen Entwicklern als

Grundlage für eigene Shogi-Engines genutzt.

3. GPS Shogi

GPS Shogi ist ein bemerkenswertes Shogi-Programm, das auf der Monte-Carlo-Tree-Search-Technik basiert. Es wurde von dem Programmierer Makoto Takizawa entwickelt und hat sich in internationalen Shogi-Computermeisterschaften bewährt. GPS Shogi nutzt auch ein neuronales Netzwerk, um seine Bewertungsfunktion zu verbessern, was ihm eine zusätzliche Stärke verleiht.

4. ShogiGUI

ShogiGUI ist keine eigenständige Shogi-Engine, sondern eine grafische Benutzeroberfläche (GUI), die es ermöglicht, verschiedene Shogi-Engines miteinander zu verbinden und gegeneinander antreten zu lassen. Es wird oft von Entwicklern und Shogi-Enthusiasten verwendet, um ihre eigenen Engines zu testen und Turniere zu organisieren.

5. Apery

Apery ist eine bekannte Shogi-Engine, die von dem Entwickler Tomohiko Yamada erstellt wurde. Sie verwendet eine Kombination aus Minimax- und MCTS-Suche und hat sich in verschiedenen Wettbewerben als leistungsstark erwiesen.

6. Shogidokoro

Shogidokoro ist eine interessante Shogi-Engine, da sie als Open-Source-Projekt entwickelt wurde. Es ermöglicht Entwicklern, den Quellcode einzusehen und zu modifizieren, um ihre eigenen Shogi-Engines zu erstellen. Shogidokoro hat eine ansehnliche Spielstärke und wird von vielen als Ausgangspunkt für ihre eigenen Entwicklungen genutzt.

Die Spielstärke der verschiedenen Shogi-Programme und Engines kann je nach Turnierbedingungen und spezifischen Konfigurationen variieren. Einige der besten Shogi-Programme sind in der Lage, die meisten menschlichen Spieler zu besiegen und haben einen hohen Rang in internationalen Computermeisterschaften erreicht. Es ist jedoch wichtig zu beachten, dass die Weiterentwicklung und Verbesserung von Shogi-Engines eine fortlaufende Aufgabe ist, da neue Algorithmen, Hardware und Techniken ständig auf den Markt kommen und die Spielstärke weiter vorantreiben.
- By Lothar Jung Date 2023-07-30 09:23
Hier eine sehr umfangreiche Darstellung der Spielstärke der Engines und über die Komplexität von Shogi:

https://en.wikipedia.org/wiki/Computer_shogi
- By Lothar Jung Date 2023-08-10 09:36
Hier eine ausführliche Beschreibung einer Shogi GUI:

https://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=13885
- By Lothar Jung Date 2023-08-20 17:20
Eine typische Shogi-Engine kann aus verschiedenen Dateien mit unterschiedlichen Dateiendungen bestehen. Hier ist eine Liste der Dateien und ihrer möglichen Dateiendungen:

1. **Quellcode-Dateien**: Diese Dateien enthalten den Quellcode der Engine und können die folgenden Dateiendungen haben, abhängig von der verwendeten Programmiersprache:
   - .c (C-Code)
   - .cpp (C++-Code)
   - .java (Java-Code)
   - .py (Python-Code)

2. **Konfigurationsdateien**: Diese Dateien enthalten die Einstellungen und Parameter der Engine und können die folgenden Dateiendungen haben:
   - .cfg
   - .ini
   - .json
   - .xml

3. **Datenbankdateien**: Diese Dateien enthalten Informationen über verschiedene Shogi-Positionen und Züge und können die folgenden Dateiendungen haben:
   - .db
   - .sqlite
   - .dat

4. **Dokumentationsdateien**: Diese Dateien enthalten Informationen über die Verwendung und Konfiguration der Engine und können die folgenden Dateiendungen haben:
   - .txt
   - .md (Markdown)
   - .pdf

5. **Binärdateien**: Diese Dateien enthalten den kompilierten Quellcode der Engine, der auf einem Computer ausgeführt werden kann, und können die folgenden Dateiendungen haben:
   - .exe (Windows)
   - .out (Linux)
   - .bin

6. **Endspieldateien**: Diese Dateien enthalten Informationen über spezifische Endspielpositionen und die besten Züge in diesen Positionen, und können die folgenden Dateiendungen haben:
   - .bin
   - .dat

7. **Header-Dateien**: Diese Dateien enthalten Deklarationen und Definitionen, die im Quellcode verwendet werden, und können die folgenden Dateiendungen haben:
   - .h (C oder C++ Header)
   - .hpp (C++ Header)

Die genaue Struktur und die Dateiendungen können je nach der spezifischen Shogi-Engine und der Programmiersprache, in der sie geschrieben ist, variieren. Wenn man eine bestimmte Shogi-Engine verwenden möchte sollte man die Dokumentation der Engine zu lesen, um mehr über die Dateien und die Verwendung der Engine zu erfahren.
Up Topic Hauptforen / Schachprogrammierung / Shogi Github Projekte

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill