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!

Publicités

Steven J. Edwards

7 décembre 2016

Steven J. Edwards passed away in October.  Every chess player should be aware of the tremendous efforts this gentleman has done to facilitate his everyday life.

Most chess engine programmers somehow knew the guy or knew about the guy. He was posting daily on TalkChess.com, answering all kinds of questions, from the most simple ones to the extremely technical ones.  He was always there to help and make the chess community (especially the chess programming community) a better place.

What most chess players don’t realize is that we now have access to millions of chess games and bigger-than-ever databases and all kinds of tools because of him, mainly because of the format he created for recording and exchanging chess games : the PGN format.  He also worked on other chess notation formats but he is mostly known for the PGN format and a few tools he developed for it.

He has published many papers on chess programming and has developed many chess engines.

We will miss you Sir!

:(


Résolutions du Nouvel An

1 janvier 2012

Le Nouvel An amène toujours son lot de bonnes intentions, de promesses et de résolutions.  Le temps des Fêtes est aussi l’occasion d’avoir plus de temps pour soi et le loisir de fouiner un peu plus qu’à l’habitude sur internet.  C’est ainsi que, par le plus pur hasard, je me suis retrouvé sur le formidable blogue (en anglais) de Jonathan Pettersson détaillant sa longue aventure dans la construction de son programme d’échecs, Médiocre.

Il n’en fallait pas plus à l’informaticien que je suis et au joueur d’échecs que j’étais pour me donner, à moi aussi, le goût de me lancer dans l’aventure!  Restait à choisir l’orientation que je donnerai au programme, le langage de programmation que j’utiliserai et le nom du programme!

Ces trois aspects déterminants ont été fixés en l’espace d’un instant : afin de privilégier la simplicité et de préserver l’aspect didactique de la chose (j’ai l’intention d’étaler mes progrès et les obstacles rencontrés dans la construction de ce programme tout autant que les aspects spécifiques à Smalltalk ici, sur ce blogue!), le programme sera construit autour d’un générateur de coups valides (sans bitoards), en Smalltalk (Squeak ou Pharo).  De plus, pour l’instant tout porte à croire que le nom de Gnochon lui irait à ravir!  Pour les non-initiés, gnochon est une expression typiquement québécoise signifiant un imbécile, un idiot sans jugement.

Outre ces considérations de base, j’ai établi quelques priorités.  Premièrement, me construire une bibliothèque de positions de tests (gains de matériel, mat en n coups, finales, études, milieux de partie, pièges dans les ouvertures, positions mettant en évidence les effets d’horizon, les positions de Bratko-Kopec, etc) dans le format FEN avec laquelle je pourrai tester ad nauseam mon programme en utilisant SUnit.  En parallèle, il me faudra recueillir le maximum de parties d’échecs en format PGN et consolider celles-ci dans une immense base de données avec Scid pour un jour me bâtir une bibliothèque d’ouverture décente et efficace.  Le site de Lars Balzer me semble tout-à-fait indiqué pour cette tâche!

Le  premier objectif que je me suis fixé à court terme est d’arriver à obtenir un programme pouvant jouer une partie complète, avec toutes les règles des échecs, et un algorithme alpha-beta ayant une fonction d’évaluation minimale (probablement seulement matérielle au départ).

Il me faudra aussi trouver un plugin pour afficher des parties et/ou des diagrammes d’échecs dans WordPress.  Les options ne semblent pas manquer mais j’aimerais avoir votre opinion!

Comme j’ai l’intention me lancer en solo dans ce projet, la documentation et/ou les codes source de programmes d’échecs ne sont pas importants pour l’instant.  Il faut dire que je lis sur le sujet depuis bon nombre d’années et que mon but n’est pas de produire un clone de Crafty, de Médiocre ou de tout autre engin mais bien de réaliser le mien, qu’il joue bien ou pas!

Pour ceux qui aimeraient bénéficier d’un coup de main, la seule référence francophone que je connaisse est l’excellent papier de Jean-Christophe Weill.  Si toutefois vous pouvez lire l’anglais, il existe une multitude de programmes d’échecs dans à peu près tous les langages de programmation et la littérature sur le sujet est plus qu’abondante!

Si vous connaissez des blogues, des sites web ou des ouvrages en français sur le sujet, n’hésitez pas à m’en faire part pour que je puisse en faire profiter tous les lecteurs de ce blogue en les publiant!  La francophonie est grande et il est temps de nous connaître et de nous faire voir et lire!

Sur un tout autre sujet, je devrais bientôt terminer une série d’articles sérieux sur un sujet léger : comment résoudre une grille Sudoku en SQL!  Autres sujets à venir : beaucoup de Smalltalk et de bases de données en vue.  Et depuis 3-4 jours, il est clair que ce blogue traitera aussi beaucoup de programmes d’échecs… et d’un certain gnochon!

1. e4

Que répondras-tu Gnochon ?