D'après Wikipedia, le jeu d'échecs, ou les échecs, est un jeu de société (parfois considéré comme un sport dans certains pays du monde, dont la France) opposant deux joueurs de part et d'autre d'un tablier appelé « échiquier » composé de soixante-quatre cases, 32 claires et 32 sombres nommées les cases blanches et les cases noires. Les joueurs jouent à tour de rôle en déplaçant l'une de leurs seize pièces (ou deux pièces en cas de roque), claires pour le camp des blancs, sombres pour le camp des noirs. Chaque joueur possède au départ un roi, une dame, deux tours, deux fous, deux cavaliers et huit pions. Le but du jeu est d'infliger à son adversaire un échec et mat, une situation dans laquelle le roi d'un joueur est en prise sans qu'il soit possible d'y remédier.
Les règles des échecs étant assez complexes, vous pouvez consulter cette page pour les connaître.
Cahier des charges
Le but de ce projet est de créer un programme qui permet de jouer aux échecs. Vous devez afficher le plateau de jeu et permettre à deux joueurs de jouer à tour de rôle. Pour joueur, un joueur doit pouvoir indiquer un coup à effectuer (à vous de mettre au point une interface convenable et accessible à des débutants).
Vous pouvez dans un premier temps simplifier les choses en ignorant certaines règles de déplacement comme le roque, la prise en passant ou les promotions. De même, vous pouvez commencer par ne pas bloquer les mouvements des pièces qui causent un échec.
Votre programme doit vérifier si un joueur est en échec, en échec et mat (et dans ce cas afficher le gagnant) ou si la partie est nulle. Vous pouvez ignorer certaines règles de match nul comme le 50 coups ou la répétition de position.
Pour créer votre fonction d'affichage du plateau en console, vous pouvez utiliser le dictionnaire suivant contenant les pièces au format texte :
pieces = { "blancs": { "roi": "♔", "reine": "♕", "tour": "♖", "fou": "♗", "cavalier": "♘", "pion": "♙" }, "noirs": { "roi": "♚", "reine": "♛", "tour": "♜", "fou": "♝", "cavalier": "♞", "pion": "♟" } }
Vous pouvez aussi colorer les pièces en fonction de leur couleur ainsi que la couleur de fond en fonction de la case du plateau en utilisant la fonction fournie dans les tutoriels.
Pour aller plus loin (palier 4)
Une fois que vous avez atteint le palier 3 des fonctionnalités, voici quelques idées pour aller plus loin et atteindre le palier 4 :
- Gérer la promotion de pion, la prise en passant et le roque.
- Empêcher les mouvements qui mettraient le joueur en échec ou qui sont interdits pour d'autres raisons (notamment pour le roque).
- Enregistrer les coups joués et permettre de revenir en arrière.
- Exporter la partie au format texte (en suivant une convention existante pour indiquer les coups).