Résolutions du Nouvel An

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 ?

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.