Ein Schachspiel in JavaScript programmieren, macht das Sinn? Erfahrene Programmierer würden diese Frage vermutlich verneinen und bemerken, daß eine clientseitige Skriptsprache (also JavaScript), deren vornehmliche Aufgabe darin besteht, im Verbund mit HTML und CSS Webseiten dynamisch zu gestalten (DHTML), für allzu komplexe Spiele nicht geeignet ist, wegen mangelnden Potentials. Tatsächlich waren die ersten diesbezüglichen Versuche um die Jahrtausendwende gelinde gesagt bescheiden ... Allerdings wurde JavaScript in den Folgejahren konsequent weiterentwickelt, und bietet mittlerweile wesentlich umfangreichere Möglichkeiten, weswegen das Interesse der Spieleentwickler an dieser kleinen Skriptsprache nie ganz erlosch, auch wenn verglichen mit den Hochzeiten Ende der 90er und Anfang der 2000er Jahre die Spieleprogrammierung mit JS allmählich nachgelassen hat. Ein weiterer Grund dürfte auch der Siegeszug von Adobe Flash gewesen sein, der allerdings 2021 sein jähes Ende fand, da Flash - warum auch immer - ab diesem Zeitpunkt aus Browsern (und WWW) verbannt wurde.

Das hier vorliegende Schachspiel in JavaScript wurde 2017 von Jeff Hlywa kreiert. Es bietet 5 optionale Spielstärken, von denen allenfalls die höchste, also Spielstärke 5, mediokere Spieler in Verlegenheit bringen könnte. "Search depth 5" beinhaltet zusätzlich noch zwei Wermutstropfen. Lassen sich die ersten drei Spielstärken noch relativ zügig durchspielen, kann die Analyse der Züge, die das Programms unter "Search


Positions evaluated:
Time:
Positions/s:

 1st Game
 Depth: 5

 e4     Nc6
 d4     e6
 e5     Qh4
     ...
 Nf3    Qe4+
 Qe2    Bb4+
     ...
 c3     Qg4

 cxb4   Nxb4
     ...
 a3     Nd5

 h3     Qh5
 g4     Qg6
     ...
 Nh4    Nge7
     ...
 Nxg6   hxg6
     ...
 Bg2    f6
     ...
 Nc3    Nxc3
 bxc3   Kd8
     ...
 Bb2    fxe5
 Qxe5   Rh7
     ...
 O-O-O  d5
 Qg5    Bd7
 Rde1   c6
 h4     Rh6
 h5     c5
 Bxd5   cxd4
     ...
 Bxe6   dxc3
 Bxc3   Rc8
 Kc2    Bxe6
 Rxe6   Rc7
 Rd1+   Ke8
 Kb3    Kf7
 Rde1   Kg8
 Rxe7   Rxc3+
     ...
 Kxc3   b5
 hxg6   Rh3+
 Kb4    a5+
 Kxa5   Rxa3+
 Kxb5   Rb3+
 Kc4    Rf3
 Re8+   Rf8
 Qd5+   Kh8
 Rxf8#
 2nd Game
 Depth: 5

 e4     Nc6
 d4     e6
 e5     Qh4
 
 Nf3    Qe4+
 Qe2    Bb4+

 c3     Qg4
     ...
 h3     Qf5

 g4     Bxc3+
     ...
 bxc3   Qg6
 Nh4    Nge7
     ...
 Nxg6   hxg6

 Bg2    d5
 h4     f5
     ...
 h5     fxg4
 Qxg4   Rh7
     ...
 hxg6   Rxh1+
 Bxh1   Nf5
 Dh3    Nce7
 Dh8+   Kd7
 Bg5    Nxg6
 Dd8+   Kc6
 c4     Nxd4
 Bxd5+  Kb6
     ...
 Be3    exd5
 Bxd4+  Ka6
     ...
 Qxd5   c5
 Qxc5   b6
 Qb5+   Kb7
 Qd5+   Kb8
 Qd6+   Kb7
 Qxg6   Kb8
 e6     Ba6
 e7     Kc7
 e8=Q   Rxe8+
 Qxe8   Bxc4
 Nd2    b5
 Nxc4   bxc4
 Rc1    g5
 Qe6    c3
 Rxc3+  Kb7
 Qc6+   Kb8
 Qc7+   Ka8
 Qc8#
 3rd Game
 Depth: 5

 e4     Nc6
 d4     e6
 e5     Qh4

 Nf3    Qe4+
 Qe2    Bb4+
     ...
 Nc3    Nf6
     ...
 exf6   Qg4
 fxg7   Rg8
 Bd2    Nxd4
     ...
 Nxd4   Qxd4
 Nb5    Bxd2+
 Qxd2   Qb6
 
2 Lösungs-
ansätze
0-0-0 Rxg7 Qh6 Kf8 Qf6 c5 Rd6 Qa5 a3 Kg8 h4 a6 Qe7 Rg4 Nc3 Kg7 f3 Rg3 h5 h6 Ne4 Qe1+ Rd1 Qe3+ Kb1 Rg5 Qf6+ Kg8 Nxg5 Qxg5 Qxg5+ hxg5 h6 d5 g4 f6 Bd3 c4 Bg6 Bd7 Rde1 Kf8 Rh5 Rc8 Reh1 c3 ... h7 Kg7 h8=Q+ Rxh8 Rxh8 f5 gxf5 exf5 Be8 Bxe8 Rxe8 fxg4 fxg4 cxb2 Kxb2 Kf6 Rd1 g4 fxg4 fxg4 Rxd5 g3 Rg8 Ke6 Rd1 g2 Rxg2 a5 Re2+ Kf6 Rf1+ Kg5 Rg2+ Kh4 Rh1#

Copyright (c) 2017, Jeff Hlywa

depth 5" durchführt, also quasi die Denkphase, mitunter 5 Minuten - oder länger - in Anspruch nehmen. Darüber hinaus sind die Browser - außer Opera - ständig am meckern, weil das im Hintergrund laufende Programm diese ausbremst bzw. lahmlegt. Tatsächlich funktionieren z. B. Links und Scrollbalken erst wieder, nachdem das Programm einen Zug ausgeführt hat ... Wer also dieses phlegmatische Programm herauszufordern möchte, sollte viel Zeit mitbringen und einen Opera Browser verwenden ... Am besten spielt man eine Partie parallel zu anderen Aktivitäten. Man kann z. B. dabei fernsehen, im Internet surfen, Essen kochen, ein Buch lesen ...

Apropos: Da es sich um ein Computer-Programm handelt, das weder denken, noch aus Fehlern lernen kann, reagiert es auf identische Spielzüge von Weiß immer mit den gleichen Gegenzügen, spielt also unreflektiert immer den gleichen Stiefel 'runter. Man kann dies ganz einfach überprüfen, indem man eine der drei Beispielpartien der Spielstärke 5 spielt, die neben dem Schachbrett aufgeführt sind. Eine weitere Schwäche des Programms ist sein ungestümes und überstürztes Eröffnungsspiel. Ein spielstärkeres Upgrade findet man HIER