Endgame tablebases online

1 mai 2017

Kasparov vs The World, 1999, after 58.g6

You don’t have endgame tablebases installed on your computer?  Don’t worry, they’re available online here and here!


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.

 


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!


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!


Mikhaïl Tal

12 juin 2015

Une excellente entrevue de Vladimir Tukmakov au sujet de Mikhaïl Tal.

Ça fait du bien qu’enfin quelqu’un rappelle à tous que Tal, ce n’était pas que des sacrifices époustouflants, des combinaisons magiques, l’artiste des complications et un blitzeur comme il n’y en a jamais eu.

Tal a aussi été un des secondants de Karpov et c’est à lui qu’on doit certaines des innovations les plus complexes et sanguinaires dans l’arsenal d’ouvertures de l’ancien champion du monde.

Karpov a toujours eu le plus grand respect pour Tal.  En fait, il y a toujours eu un grand respect entre eux deux.  Tal disait que la seule personne qu’il craignait en blitz, c’était Karpov.  Curieusement, Karpov disait la même chose pour Tal!


Judit

13 août 2014

JuditPolgar

La joueuse la plus talentueuse de tous les temps (et de loin la plus belle et la plus sexy à mon avis), Judit Polgar, a annoncé qu’elle prenait sa retraite dans cette entrevue.

On se rappellera de la célèbre leçon qu’elle avait administrée (une Sicilienne, attaque Kérès ultra-violente!) à Anand en 34 coups ici.

Save


Les échecs au cinéma

17 avril 2014

Voici une liste des films et documentaires sur les échecs disponibles sur internet.  Même si cette liste est assez longue et complète, si vous avez des ajouts ou des suggestions faites-les moi parvenir!

Pour ceux qui ne l’aurait pas vu, le documentaire de Gilles Carle, Jouer sa vie, est un incontournable!

0-9

8 × 8: A Chess Sonata in 8 Movements

A

Authors@Google: Garry Kasparov

B

Bobby Fischer Against The World

Bobby Fischer – Anything To Win

C

Capablanca

Capablanca, El Rey

Chess – A State of Mind

A Chess Dispute (Partie d’échecs mouvementée)

Chess Fever (La fièvre des échecs)

Chess Me Out

Codigos Mortais (Daddy, Entrusted)

D

La diagonale du fou (Dangerous Moves)

Duels Karpov-Kasparov

E

F

Fresh (Fresh)

The Frost Interview – Garry Kasparov

G

Game Over – Kasparov and the machine

Garry Kasparov : The Chess Player

Geri’s Game (Le joueur d’échecs)

The Grass Arena

H

The History of Chess Computers

I

Into the night with Garry Kasparov and Peter Thiel

J

Jouer sa vie (The Great Chess Movie)

La joueuse (Queen to Play)

K

Kasparov-Karpov Lyon 1990 : World Chess Championships

Knight Moves (Face à face)

Knights of the South Bronx (L’école des champions)

L

Lang Leve de Koningin (Long Live the Queen)

The Love for Wood

The Luzhin Defense (La défense Loujine)

M

N

O

Odysseus’ Gambit

O Xadrez das Cores

P

Prince of Chess

Q

R

S

Searching For Bobby Fischer (À la recherche de Bobby Fischer)

The Seventh Seal (Le septième sceau)

Shatranj Ke Khilar (Les joueurs d’échecs, The Chess Players)

Les super pouvoirs du cerveau : comment devenir un génie (My Brilliant Brain)

T

U

Uncovered (Qui a tué le chevalier ?)

V

W

X

Y

Z

 

Films non trouvés (un peu d’aide s.v.p. !) :

Queen Sacrifice

Return From The Ashes

Stanley’s Girlfriend

L’affaire Thomas Crown

Endgame

La partie d’échecs

Me And Bobby Fischer

Le joueur d’échecs (1938)

Le joueur d’échecs (Brainwashed)

Le joueur d’échecs (1927)

Life of a King

Queen of Cactus Cove

Brooklyn Castle

The Chess Set

Computer Chess

Ivory Tower

 


Quelques trucs pour WordPress.com… WordPress Tips!

6 janvier 2012

1. Insérer du code

Pour ceux qui se demandent comment insérer des bouts de code dans WordPress.com, il faut savoir qu’il existe des tags permettant de le faire.  Plusieurs langages de programmation populaires sont supportés mais pas Smalltalk, malheureusement…  Pas encore du moins!  Pour ce qui est du code SQL, ça  fonctionne assez bien.  Ça va nous permettre d’afficher nos requêtes à MySQL de façon lisible et agréable à l’oeil!

La méthode est expliquée en anglais seulement mais les indications sont faciles à suivre.

Ça donne quelque chose du genre :

SELECT *
FROM region
INNER JOIN (
SELECT region.PDB, region.CHAIN
FROM region
LEFT JOIN split_domain USING (SUNID)
WHERE split_domain.SUNID IS NULL
GROUP BY PDB, CHAIN
HAVING COUNT(*)>1
) AS x
ON
region.PDB = x.PDB
AND
region.CHAIN = x.CHAIN
LIMIT 10

2. Insérer des parties d’échecs et des diagrammes

Pour les parties d’échecs et les positions, WordPress.com ne permet pas l’usage de Flash, de Java ou de plugins permettant la création de diagrammes ou de visualiser des parties. Pour le faire, vous devez avoir votre propre instance de WordPress ou vous devrez vous résoudre à insérer des images à la mitaine dans votre article.

3. Lire ce blogue dans une langue autre que le français

Le contenu de ce blogue, de façon surprenante, est assez bien traduit par Google. Je vous suggère d’essayer de traduire cet article avec l’outil de traduction de Google.

The content of this blog, surprisingly, is pretty well translated by Google. I suggest you try to translate this article with the Google translation tool.


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 ?