Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 3 Min.

Ein Schachprogramm entwickeln

Ein einigermaßen akzeptabel spielendes Schachprogramm zu entwickeln ist gar nicht so schwer. Dank vorgefertigter JavaScript-Bibliotheken und jQuery reichen knapp 300 Zeilen Code.
Die schweißtreibende Fleißarbeit beim Entwickeln eines Schachprogramms ist das Ermitteln, welche Züge in einer gegebenen Stellung legale Züge sind und die Visualisierung des Schachbretts. Für beide Aufgaben gibt es mit Chess.js und Chessboard.js JavaScript-Bibliotheken, die diesen Part zum Kinderspiel machen. Dank der Bibliotheken kann man sich auf den interessanten Teil der Aufgabe konzentrieren: Nämlich einen Allgorithmus zu finden, welcher versucht die jeweils besten Züge zu finden. Wie das am einfachsten und schnellsten klappt, hat Entwickler Lauri Hartikka in einem englischsprachigen Artikel auf freeCodeCamp erläutert.Er beschreibt fünf Schritte, die von anfänglichen Zufallszügen über nach dem Wert von Figuren gewichteten Zügen zu einer Vorschau-Planung mit mehreren Halbzügen Tiefe hin zu einer feineren Gewichtung führen, welche die Position einer Figur auf dem Brett in die Kalkulation mit einbezieht.Die Ergebisse: Schon mit wenigen Zeilen Code ist das Schachprogramm in der Lage zu spielen und gibt einen wunderbaren Gegner ab, weil der menschliche Spieler gegen die Zufallszüge des Programms immer gewinnt. Schritt für Schritt steigt dann die Spielstärke. Kennt das Programm die Werte von Figuren, geht es zur Materialschlacht über. Lernt es das Vorausplanen wird sein Spiel zunehmend ansehnlicher und es macht schließlich keine dummen Fehler mehr. Allerdings stoppt die Anleitung von Lauri Hartikka – nach rund 300 Zeilen Code – just an der Stelle, wenn es darum gehen sollte, dem Programm wirkliche Spielstärke zu verleihen. Der Autor gibt immerhin ein paar Tipps und Links für den weiteren Ausbau.Sein 300-Zeilen-Schachprogramm finden Sie auf GitHub. Wer den Code einsehen und einfach mal auf Run klicken und eine Partie spielen will, kann das unter https://jsfiddle.net/q76uzxwe/1/ tun.
Miscellaneous

Neueste Beiträge

MessagePack: JSON als Binär-Image - Best of NuGet, Teil 10
Das Serialisierungsformat MessagePack wurde – anders als JSON – konsequent auf die Bedürfnisse von Maschinen und damit auch auf höchstmögliche Kompaktheit optimiert. Der Vorteil: Ein geringeres zu übertragendes Datenvolumen führt vor allem in IoT-nahen Anwendungen direkt zu geringeren Kosten.
6 Minuten
17. Aug 2026
Die Kunst der langen Aufgabenläufe - Kimi K3 – das Modell hinter dem Agenten, Teil 2
Ein guter Code-Generator löst eine klar umrissene Funktion. Ein Coding-Agent muss dagegen ein Repository erkunden, Hypothesen bilden, Werkzeuge auswählen, Tests auswerten und nach Fehlschlägen den Kurs ändern. Kimi K3 zielt auf diese zweite Klasse von Aufgaben.
8 Minuten
Zwei Konferenz-Openings, eine Sprecherin – wie aus einem Terminkonflikt ein KI-Usecase wurde - Making-of eines Avatars mit HeyGen und ElevenLabs
Ein Terminkonflikt gelöst von einem digitalen Zwilling. Die Ebner Media Group hat die erste Infinite AI Conference von einem Avatar eröffnen lassen. Ein Erfahrungsbericht über den Produktionsprozess und den echten Nutzen synthetischer Präsenz.
7 Minuten
12. Aug 2026

Das könnte Dich auch interessieren

Elektronische Schaltkreise im Browser simulieren - Simulation
Statt mit Steckfeld oder Lötkolben kann man auf dieser Website Schaltungen per Drag and Drop zusammenstellen und deren Verhalten testen.
2 Minuten
26. Jul 2018
C#-.NET-Apps mit WinUI 3 - Komponentenbasierte Apps mit Fluent/FAST, Teil 3
Microsoft macht mit WinUI 3 ein natives User-Experience-Framework für Windows verfügbar, dessen Komponenten auf dem Microsoft-eigenen Design-System Fluent 2 basieren.
23 Minuten
13. Mai 2024
Stark beschränkt - Native-AOT-Kompilierung mit Entity Framework Core 9.0
In Entity Framework Core 9.0 liefert Microsoft erstmals eine Unterstützung für den Native-AOT-Compiler mit, die aber leider noch geringen praktischen Nutzen hat.
7 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige