Finally!

20 février 2017

For those interested, I have released the very first version of my database of chess games, the CGR database!  All details here!


Gnochon : quelques ressources

17 février 2017

Les ressources en français était rarissimes, je vous présente donc une courte liste de sites anglophones qui traitent spécifiquement de la programmation de jeux d’échecs.

Chess Programming Wiki (CPW)

Computer Chess Club (CCC)

WinBoard Forum

OpenChess forums

Computer Chess Club Archives

AutoChess forums

Internation Computer Games Association (ICGA)

Blogue de Roland Chastain (en français)

Pour une liste plus complète (incluant des blogues ou des forums en d’atres langues que l’anglais), tout est ici.

 


The Chess Games Repository

16 février 2017

What do you need to build a solid opening book for a chess engine? And what do you need to study chess openings seriously?

Games.  Lots of games. Lots of games by strong players. So my long-dead project revives again!

The Chess Games Repository!


Gnochon : c’est parti!

13 février 2017
gnochon_coding

Gnochon sur Squeak 5.1 (32bit)

1-Mise à jour

Gnochon, c’est parti!  Déjà quelques leçons d’apprises!

1-Quand tu pars de rien, sans t’inspirer d’aucun code source des autres, c’est long et compliqué!  Tout est à faire et à penser.
2-Les pions vont causer 99% de tes problèmes.  Les pions sont tes ennemis!
3-La vie d’un développeur est plus compliquée quand tu désires supporter deux environnements, Squeak et Pharo.

gnochon_coding_pharo

Gnochon sur Pharo 5.0

2-Le premier adversaire

squeak_chess

Dès que Gnochon sera en mesure de jouer une partie complète, j’ai décidé que le premier programme qu’il affronterait serait Chess, disponible sur SqueakSource et qui tourne sur Squeak!  Le projet est situé ici.  Ce programme tourne à environ 50000 NPS (nodes per second) sur mon ordinateur.  Évidemment, pour le battre je devrai être plus rapide!

3-Lozza

Finalement, pour rester dans le thème des échecs, j’ai découvert Lozza, un jeu d’échecs en ligne. Une petite merveille simple et efficace d’un programmeur nommé Colin Jenkins. Il permet même d’analyser des positions à partir de chaînes FEN.  Et pour les curieux, la position sur l’échiquier est un problème de mat en 13!  Essayez-vous : c’est beaucoup plus facile que c’en a l’air!

lozza

Lozza. Les blancs jouent et matent en 13 coups!


Comment perdre une partie d’échecs gagnante?

28 janvier 2017

ivantchouk-kobo

C’est ce qu’Ivantchouk a fait contre Kobo : il a simplement oublié d’inscrire son 24ième coup sur sa feuille de partie et a tranquillement attendu le contrôle de temps, pensant avoir joué ses 40 coups…

 


Gnochon : le plan

21 janvier 2017
romuald-canas-chico-lechiquier

Romuald Canas Chico, « L’échiquier »

Comme j’en parlais précédemment, je me suis finalement lancé dans la création d’un programme pouvant jouer aux échecs!  Après plus de vingt années passées à lire tout ce qu’il y avait sur le sujet en plus de dévorer chaque numéro de l’ICCA Journal, l’enthousiasme contagieux de quelques confrères développeurs a finalement eu raison de moi.  Par ailleurs, après avoir abandonné les tournois d’échecs il y a longtemps, j’ai depuis peu une nouvelle rage de jouer ou, à tout le moins, de faire quelque chose de relié aux échecs!

Évidemment, ce sera un programme écrit en Smalltalk!  J’utiliserai principalement Pharo tout en faisant en sorte que le programme soit aussi compatible avec Squeak.  En outre, ce sera également l’occasion de tester les performances de la VM Cog 64-bit Spur.

Qui plus est, j’ai décidé de bloguer sur le développement de ce programme en français!  Il faut dire que les articles, blogues, documents et ressources diverses en français sur la programmation d’un jeu d’échecs sont quasi-inexistantes sur le web.  Le seul papier digne de ce nom écrit dans la langue de Molière est celui de Jean-Christophe Weill, Programmes d’Échecs de Championnat: Architecture Logicielle Synthèse de Fonctions d’Évaluations, Parallélisme de Recherche.  Hormis cette thèse de doctorat, même dans le domaine de l’imprimé, les ouvrages sur le sujet sont rarissimes.  En fait, le seul que je connaisse est Échecs et C : Initiation à l’analyse et à la programmation du jeu d’échecs de Yann Takvorian.

Il n’est pas non plus exagéré de dire que les ressources en français sur Smalltalk sont, à peu de choses près, tout aussi rares sur le web.  Ça sera donc l’occasion rêvée de parler des divers outils disponibles dans Pharo, de performance et de développement en Smalltalk! De surcroît, c’est une occasion inespérée de conjuger deux de mes passions et de me forcer à apprendre à utiliser GitHub une fois pour toutes!

20160116_171204

Moi-même, au Collège, en train de jouer des blitz à 17 ans

L’autre défi que je me suis donné est de ne pas consulter aucun code source de quelqu’autre programme d’échecs qui soit! Je lis sur le sujet depuis 20 ans alors j’ai une bonne idée d’où je m’en vais!  Mais l’humain étant ce qu’il est, le monde des programmeurs de jeu d’échecs est infesté d’abrutis qui copient intégralement le code source d’autres programmes, le traficotent un tantinet et qui s’approprient ensuite le travail des autres sans le moindre remord.  Le plagiat est malheureusement monnaie courante dans le domaine du chess engine programming.  Il n’est pas rare de voir de parfaits inconnus soudainement arriver avec la version 1.0 de leur programme et obtenir 2900 de cote ELO !  Je préfère avoir la fierté d’avoir tout codé par moi-même…

Mon but n’est pas de surpasser StockFish mais bien d’apprendre, d’expérimenter, de me casser la gueule et aussi de m’amuser en cours de route.  Si j’avais voulu à tout prix compétitionner avec les meilleurs programmes d’échecs, j’aurais choisi le langage C dès le départ et fait comme un bon nombre de « développeurs » en copiant le code d’un autre engin!  De plus, ma vision de ce que devrait être un programme de jeu d’échecs est assez différente de celles des autres.  Ma spécialisation en intelligence artificielle à l’université a fait en sorte que j’ai toujours été déçu des avancements dans le domaine des programmes de jeu d’échecs : la vitesse l’a toujours emporté sur l’intelligence.  J’ai donc l’intention d’éviter l’utilisation des tables de finales autant que possible.  J’espère aussi rendre mon programme un peu similaire à ma façon de jouer et lui insuffler quelques-unes de mes préférences échiquéennes, en commençant par son répertoire d’ouvertures (ésotérique il va sans dire!).

gnochon_pharo_bitboards

(cliquez pour agrandir)

Je ne suis pas encore tout à fait fixé sur la formule que j’utiliserai pour cette série d’articles mais une chose est claire, j’essaierai autant que possible de vous trouver des références en français où, à tout le moins, de vous fournir des explications en français.  J’envisage actuellement de présenter cette folle aventure sous forme de journal de bord et d’articles techniques qui s’alternent.  Évidemment, vos commentaires et questions seront les bienvenus!