# Programme d'échecs

Un programme d'échecs est un programme informatique conçu pour jouer au jeu d'échecs.

## Historique
### Débuts et développement

L'histoire des machines joueuses d'échecs n'attend pas le développement de l'électronique et de l'informatique : la première fut l'automate turc inventée en 1769 par Johan Wolfgang von Kempelen, qui joua notamment contre l'impératrice Catherine II et Napoléon Bonaparte. C'était en fait un homme de petite taille caché dans la machine.
Les premiers véritables programmes virent le jour dans les années 1950, avec le développement des ordinateurs. Ils passèrent en un demi-siècle de la connaissance des règles à un niveau au moins égal à celui des meilleurs joueurs humains.
Le premier programme d'échecs, Turochamp, fut écrit par Alan Turing en mai 1952. Ne disposant pas d'un ordinateur assez puissant pour le faire tourner, il simule lui-même les calculs de la machine, mettant environ une demi-heure pour effectuer chaque coup. Une partie fut enregistrée, où le programme perdit contre Alick Glennie, un collègue de Turing.

### Chronologie

* En 1770, Wolfgang von Kempelen construit l'automate joueur-d'échecs, le Turc mécanique, qui devient le plus grand canular de cette période.
* En 1868, Charles Hooper (en) présente l'automate Ajeeb — qui cachait également un joueur d'échecs.
* En 1876, Charles Geoffrey Gumpel contrôla cette fois-ci l'automate nommé Mephisto à distance grâce à des moyens électromécaniques.
* En 1912, Leonardo Torres y Quevedo construit une machine pouvant jouer les finales roi et tour contre roi.
* En 1948, le livre Cybernétique de Norbert Wiener décrit comment un programme d'échecs peut être développé en utilisant une profondeur minimale de recherche avec une fonction d'évaluation.
* En 1950, Claude Shannon publie un article décrivant les heuristiques et la programmation d'un programme d'échecs$^,$.
* En 1950, John von Neumann développe un programme d'échecs (sur un échiquier 6x6 sans fou) sur le MANIAC I.
* En 1951, Alan Turing développe sur le papier le premier programme capable de jouer une partie d'échecs complète.
* En 1952, Dietrich Prinz (en) développe un programme résolvant des problèmes d'échecs.
| | a | b | c | d | e | f | |
| 6 | | | | | | | 6 |
| 5 | | | | | | | 5 |
| 4 | | | | | | | 4 |
| 3 | | | | | | | 3 |
| 2 | | | | | | | 2 |
| 1 | | | | | | | 1 |
| | a | b | c | d | e | f | |
* En 1956, création de l'algorithme de recherche alpha-bêta par John McCarthy.
* En 1958, NSS devient le premier programme d'échecs à utiliser l'élagage alpha-bêta.
* En 1958, après Turochamp, les premiers programmes capables de jouer une partie complète voient le jour, le premier par Alex Bernstein et l'autre par des programmeurs russes sur mainframe BESM.
* En 1962, le premier programme avec un jeu crédible, Kotok-McCarthy est publié au MIT.
* En 1966-1967, le premier match entre programmes d'échecs voit le jour. Le programme Kaissa de l'Institut de physique théorique et expérimentale de Moscou triomphe de Kotok-McCarthy de l'université Stanford. Les coups étaient échangés par télégraphe et le match a duré 9 mois.
* En 1967, Max Hack 6 de Richard Greenblatt utilise des tables de transposition pour la première fois et devient le premier programme à gagner contre une personne en tournoi.
* En 1970,le premier Championnat nord-américain des ordinateurs d'échecs est organisé.
* En 1974, Kaissa devient le premier champion du monde des ordinateurs.
* En 1977, le premier jeu d'échecs électronique, Chess Challenger, est commercialisé. Chess 4.6 devient le premier ordinateur d'échecs à remporter un tournoi d'échecs majeur. Ben Mittman cofonde l'International Computer Chess Association (ICCA). Également cette année, Applied Concepts commercialise Boris, un ordinateur dédié aux échecs dans une boîte en bois avec des pièces d’échecs en plastique et une planche pliante.
* En 1978, Belle, un ordinateur spécialisé construit par Ken Thompson atteint le niveau de maître,
* En 1985, HiTech réalise une performance Elo de 2530, c'est le premier programme à atteindre le classement de 2400 (niveau d'un maître international) ; en 1988 il remporte le championnat de l'État de Pennsylvanie après avoir battu le maître international Ed Formanek (2485). Il bat également le grand maître international Arnold Denker en match (3,5-2,5).
* En 1988, le grand maître Bent Larsen (alors classé à 2 560 points Elo), est vaincu par Deep Thought dans un tournoi en Californie$^,$.
* En 1989, Deep Thought est facilement battu en match 2-0 par Garry Kasparov.
* En 1994, Fritz 3, tournant sur un ordinateur avec un monoprocesseur Pentium à 90 MHz, gagne une partie de blitz contre le champion du monde de l'époque, Garry Kasparov et ils terminent ex æquo. Kasparov prend sa revanche dans les départages : 4-1. Cette même année, lors du premier tour du Grand Prix Intel à Londres, Chess Genius bat Garry Kasparov en partie semi-rapide (1,5-0,5) avec un Pentium 100 MHz.
* En 1996, le superordinateur Deep Blue perd contre Garry Kasparov. (1 victoire, 2 nulles et 3 défaites).
* En 1997, Deep Blue bat Garry Kasparov. (2 victoires, 3 nulles et 1 défaite). Cependant Kasparov ternit l'image de son adversaire en accusant l'équipe d'IBM d'avoir triché en faisant intervenir un humain dans les choix des coups de Deep Blue, surtout à la deuxième partie et à la sixième partie, qui se sont achevées par des victoires de Deep Blue.
* En 2003, Kasparov fait match nul contre Deep Junior et plus tard contre Fritz X3D,
* En 2005, Hydra gagne face à Michael Adams (+5 =1).
* En 2006, Deep Fritz gagne face à Vladimir Kramnik (+2 =4), plaçant notamment dans la deuxième partie un échec et mat élémentaire (mat en un coup), que Kramnik ne vit pas.
* En 2009, Pocket Fritz (en) 4 remporte la Copa Mercosur 9½/10.
* En 2010, avant le championnat du monde d'échecs 2010, le joueur Veselin Topalov se prépare en utilisant le superordinateur Blue Gene, alors équipé de 8 792 processeurs.
* En 2017, le système d'intelligence artificielle AlphaGo Zero de DeepMind, une filiale de Google, bat Stockfish, l'un des meilleurs programmes d'échecs existants sur 100 parties, avec un score de 28 victoires et 72 nulles. Cependant, les ordinateurs avaient pour contrainte de jouer chaque coup en moins de 1 minute et Stockfish n’avait pas accès à toutes ses fonctionnalités (tables de finales notamment).
* En 2019, le moteur d'échecs neuronal libre et open source Leela Chess Zero gagne un match contre Stockfish en 100 parties rapides (+16 -4 =80).

## Catégories
### Supercalculateurs

L'utilisation des supercalculateurs dans le cadre des échecs avait deux buts principaux : battre les meilleurs joueurs d'échecs humains, mais surtout créer une vitrine technologique pour les constructeurs de matériel informatiques.
Quelques supercalculateurs dédiés au jeu d'échecs :
* Belle
* Cray Blitz
* Deep Thought
* ChipTest
* HiTech
* Deep Blue
* Hydra
Les réseaux neuronaux (intelligence artificielle) dédiés au jeu d’échecs :
* AlphaZero
* Leela Chess Zero

### Jeux électroniques

Au même titre que le micro-ordinateur pour les premiers ordinateurs, les jeux d'échecs électroniques sont une évolution naturelle des supercalculateurs dédiés au jeu d'échecs vers un format commercialisable. Ils bénéficient des avancées technologiques de miniaturisation des composants, mais également des avancées théoriques dans le domaine de l'algorithmique. Ils ne deviennent réellement performants qu'à partir du milieu des années 1980.
Quelques jeux d'échecs électroniques réputés :
* Chess Challenger 7 (Fidelity)
* Mephisto
* Leonardo, Galileo, Renaissance (Saitek)
* Centurion (Saitek)
* Citrine (Novag)

### Logiciels de jeu d'échecs

Depuis les années 1990, la puissance croissante des ordinateurs personnels a relégué l'utilisation des supercalculateurs et des jeux électroniques au second plan. Depuis, les recherches portent plus sur le développement de logiciels performants que sur les machines utilisées.
Certains logiciels, comme ChessBrain, combinent la puissance de plusieurs ordinateurs d'un même réseau (calcul distribué), ce qui les rapproche de la catégorie des supercalculateurs et des ordinateurs multiprocesseurs.
À la fin des années 2010, les progrès de l'Intelligence artificielle ont montré leur effet sur le jeu d'échecs, le jeu de go et les jeux de réflexion en général. En témoignent la victoire de AlphaGo sur le champion du monde de go Lee Sedol et la victoire d'AlphaZero sur le fort programme d'échecs Stockfish.

#### Programmes les plus connus

Quelques logiciels d'échecs parmi les plus connus, titrés ou réputés et relativement récents (2019) :
* Chess Genius
* Chessmaster
* Chess Tiger
* Crafty
* Fritz
* Fruit
* GNU Chess
* HIARCS
* Houdini
* Junior
* Komodo
* Leela Chess Zero
* Naum
* Rybka
* Shredder
* Stockfish
* Virtua Chess
* Zappa

#### Programmes DOS

Ces anciens programmes d'échecs des années 1970 à 1990 ont été conçus pour fonctionner dans l'environnement MS-DOS, mais peuvent toujours être lancées actuellement (2019) sur la version 64 bit de Windows 10 grâce aux émulateurs tels que DOSBox ou Qemu :
* Battle Chess
* Chessmaster 2000 (en)
* Colossus Chess (en)
* Fritz 1–3
* Kasparov's Gambit
* Rebel (en)
* Sargon (en)
* Socrates II

#### Précurseurs

Ces programmes d'échecs fonctionnent sur du matériel obsolète :
* 1K ZX Chess (en) (sur Sinclair ZX81)
* Kaissa
* Kotok-McCarthy
* Mac Hack (en)
* Microchess
Microchess était le premier jeu commercial pour un ordinateur personnel, développé d'abord pour le KIM-1 et plus tard pour le Commodore PET, l'Apple II, le TRS-80 et autres. Le grand maître Bobby Fischer a joué contre MicroChess.
Mac Hack a été le premier programme d'échecs à se voir attribuer un classement Elo et le premier à gagner contre une personne en tournoi.

### Logiciels de résolution de problèmes d'échecs

De nombreux programmes ont également vu le jour pour vérifier la correction d'un problème d'échecs. Ce type de programme est très spécifique, car contrairement à un programme de partie, il se doit d'analyser la totalité des coups possibles, puisqu'un problème qui aurait d'autres solutions que celles voulues par l'auteur serait démoli.
Lorsqu'un problème a été vérifié par ordinateur, cela est mentionné sous le diagramme du problème par le symbole « C+ » (C pour le mot anglais Computer).

### Interfaces graphiques

Avec le développement de moteurs d'échecs performants, la séparation entre l'interface graphique de jeu (fenêtre, boutons et menus, présentation du plateau de jeu) et le moteur de jeu s'est faite naturellement.
La liste suivante n'est pas exhaustive.
Interfaces Unix, Linux :
* XBoard
* Eboard
* glChess
Interfaces Windows :
* WinBoard (version Windows de XBoard)
* Thief (en)
* Arena
* Chess Giants (clone amélioré de Chess Titans utilisant Crafty)
* Babaschess
Interfaces multi-plateformes :
* Jin (Java)
* Jchess (Java)
* SCID (Windows, Mac, Linux, Pocket PC)
Interfaces web :
* WebChess
* Queenside.net

### Serveurs d'échecs sur internet

Il existe différents serveurs web dédiés entièrement, ou en partie, au jeu d'échecs entre joueurs. Ils peuvent disposer de nombreux outils : jeu en direct ou en différé (parties par correspondance), classement des joueurs, différentes variantes de jeu (Chess960, Bughouse, Atomic, etc.), tournois, leçons pour débutants, etc. :
* anciennement sur Yahoo! (gratuit)
* depuis 1995 : Free Internet Chess Server (FICS, gratuit, possibilité de choisir plusieurs interfaces de jeu, dont BabasChess et XBoard).
* depuis 1997 : Internet Chess Club (ICC, payant, mais accès possible comme « invité » et période d'essai gratuite).
* 2004 : sur le site de l'International Correspondence Chess Federation (ICCF)
* Playchess, sur le site de ChessBase (payant, mais accès possible comme « invité » ; client téléchargeable ; interface web depuis 2013).
* 2006 : sur le site de Chess Tactics Server (fermé)
* 2006 : sur le site de Chesstempo
* 2006 : parties en ligne contre le programme Shredder.
* « SimpleChess », sur le site web du magazine Europe Échecs (réservé aux abonnés, mais accès en « invité » possible).
* depuis 2007 : sur le site de Chess.com (gratuit)
* depuis 2010 : Lichess (gratuit)

## Anecdote

En 1977, lors du 2e championnat du monde d'échecs des ordinateurs, l'ordinateur d'échecs Kaissa donna soudainement une tour sans raison apparente à son adversaire Duchess, et perdit logiquement la partie. Mais, lors de l'analyse post-mortem de la partie (analyse détaillée), on constata que ce coup était en fait le seul qui parait un mat forcé.