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!


Genetic Algorithms and Computer Chess

16 décembre 2016

If you’re into computer chess and genetic algorithms like me, this paper is definitely worth reading!


Gnochon

14 octobre 2016

Thanks to Twipply, ZirconiumX and JoshS (regulars of ##chessprogramming on IRC), I finally decided to go ahead with my chess engine named Gnochon!  At first, development will be slow as I am still working on Freewill and plan on finishing it before mid-November.

In case you asked, Gnochon is a French slang word in Quebec meaning someone *really* stupid!

gnochon(click on image to enlarge)

Save


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!


Boardician

24 mars 2015

Boardician est un framework de jeux (board games, i.e. échiquier, grille de sudoku, damier, etc).  L’annonce du projet se trouve ici.

P.S. J’adore la photo, pour la simple raison je possède un échiquier identique!


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


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 ?


Préambule

9 août 2010

De quoi traite ce blogue?

J’aborderai différents sujets, surtout reliés à l’informatique.  Comme mes intérets portent surtout sur Smalltalk et les technologies orientées-objet ainsi que sur les bases de données, vous entendrez souvent parler de Pharo, de Squeak et de MySQL.  J’y traiterai aussi de littérature, des échecs, de logiciels open source, de mathématiques, de musique et d’une foule d’autres sujets.  Bref, je vous ferai part de mes découvertes!

Pourquoi ce blogue?

Parce que j’aime bien partager mes expériences avec les autres et surtout découvrir de nouvelles façons de faire et de nouvelles idées.  Ce blogue servira surtout à présenter des problèmes pratiques et des façons de résoudre ceux-ci.

Pourquoi en français?

Parce que, malheureusement, les ressources disponibles sur internet sont rarement en français.  Il est plus que temps d’y remédier et d’apporter mon infime contribution.  Aussi, il n’est pas donné à tous de comprendre et de lire l’anglais.

Endormitoire?

J’ai voulu apporter une touche à la fois francophone et bien québécoise à ce blogue.  Le nom du blogue vient du fait que 99% de mon entourage ne comprend rien (ou très peu) à ce que je fais et que j’ai souvent l’impression que mes histoires « informatiques », « mathématiques » ou « littéraires » les ennuient à mourir.  Pour ceux qui ne le savent pas, « endormitoire » est une expression typiquement québécoise signifiant « une soudaine et grande envie de dormir ».

En espérant vous tenir bien éveillés chers lecteurs!