Jeu d'échecs
L'échiquier
L’échiquier est le tablier ou plateau du jeu d'échecs. C'est une grille carrée de
8 cases de côté, soit 64 cases en tout, en alternance sombres (appelées «
noires ») et claires (appelées « blanches »).
Les 8 lignes « verticales » sont appelées colonnes.
Les 8 lignes « horizontales » sont appelées rangées ou traverses.
Les 26 lignes obliques à 45° (13 noires et 13 blanches) sont appelées
diagonales.
Dans la représentation conventionnelle en diagramme, les Blancs sont en bas,
les Noirs en haut.
Coordonnées
Des coordonnées sont utilisées pour désigner chacune des 64 cases de
l'échiquier. La notation est simple : les 8 colonnes sont « numérotées » de
gauche à droite par les lettres minuscules allant de a à h et les 8 rangées
numérotées de bas en haut de 1 à 8.
Chaque case est alors désignée par l'intersection d'une lettre (pointant une
colonne) et d'un chiffre (pointant une rangée). Par exemple, la toute première
case, en bas à gauche, se nomme a1. La seconde, en allant de la gauche
vers la droite, se nomme b1, ainsi de suite. Et la dernière se nomme h8 (tout
en haut à droite).
Par ce système, on peut ainsi désigner des colonnes (vertical) et des rangées
(horizontal). La colonne a comporte alors toutes les cases se trouvant visées
par la coordonnée a, à savoir a1, a2, a3, a4, a5, a6, a7 et a8. Et la 4e rangée
comporte toutes les cases se trouvant visées par la coordonnée 4, à savoir a4,
b4, c4, d4, e4, f4, g4 et h4.
Chaque joueur doit avoir à sa droite une case blanche (a8 et h1). C'est un
repère utile pour vérifier, avant d'entamer une partie, que l'échiquier est bien
orienté.
Topographie
L'aile dame (cases avec des points noirs) et l'aile roi (cases vides). Sur
l'échiquier, plusieurs éléments jouent un rôle stratégique important :
les rangées : les lignes horizontales (rangées 1 à 8) ;
les colonnes : les lignes verticales (colonnes « a » à « h ») ;
les diagonales (les deux plus grandes étant les deux diagonales « a1-h8
» et « a8-h1 ») ;
le centre : les 4 cases centrales (d4, e4, d5, e5) ;
les coins : les 4 cases aux extrémités (a1, a8, h1, h8) ;
Représentation
Notation des pièces en français
Chaque camp est composé de seize pièces, notées ainsi dans la notation
française :
un roi, noté R
une dame, notée D
deux tours, notées T
deux fous, notés F
deux cavaliers, notés C
huit pions, notés P
Codes
On peut afficher les pièces en utilisant la fonction python chr et les codes
suivant
♔ 9812 le roi ♚ 9818
♕ 9813 la dame ♛ 9819
♖ 9814 la tour ♜ 9820
♗ 9815 le fou ♝ 9821
♘ 9816 le cavalier ♞ 9822
♙ 9817 le pion ♟ 9823
Déplacements des pièces
Chaque pièce peut se déplacer au choix du joueur sur l'une des cases
marquées d'une croix. Hormis le pion, elles capturent une pièce adverse
qui se trouve sur leur trajectoire, sans pouvoir aller au-delà. À l'exception
de la prise en passant, la pièce qui capture prend la place de la pièce
capturée, cette dernière étant définitivement retirée de l'échiquier.
Le fou, la tour et la dame sont des pièces à longue portée (ou pièces de
lignes) : elles peuvent se déplacer le long de lignes. Chaque camp
possède deux fous : ils se déplacent toujours sur les cases d'une même
couleur, en diagonale ; chaque camp possède donc un fou de cases
blanches, et un fou de cases noires.
Le roi se déplace d'une seule case à la fois, il dispose d'une règle de
déplacement spéciale : le roque.
Le cavalier ne peut être intercepté par aucune des pièces autour de lui, il
saute jusqu'à sa case d'arrivée.
TAF
L'objectif ici n'est pas de réaliser tout le jeu mais de réviser la manipulation
des matrices (indexation, parcours, création..) en définissant des opérations
du jeu d'échec.
Dans un premier temps on suppose que l'échiquier ne contient qu'une seule
pièce pour simplifier le problème.
Définissez une fonction deplacer(piece: str) qui prend en argument une pièce
représentée par son caractère, sa couleur et sa position et retourne la liste des
position vers lesquelles on peut la déplacer
Définissez une procédure afficher(piece:str) qui prend en argument une pièce
représentée par son caractères, sa couleur et sa position et affiche la pièce à
position initiale avec toutes les position vers lesquelles on peut la déplacer
Exemples
>>> deplacer('RNe8')
['d8', 'd7', 'e7', 'f7', 'f8']
>>> afficher('RNe8')
[['_' ,'_' ,'_' ,'x' ,'♚' ,'x' ,'_' ,'_'],
['_' ,'_' ,'_' ,'x' ,'x' ,'x' ,'_' ,'_'],
['_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_'],
['_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_'],
['_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_'],
['_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_'],
['_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_'],
['_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_' ,'_']]
Références
https://fr.wikipedia.org/wiki/%C3%89checs
https://fr.wikipedia.org/wiki/Notation_alg%C3%A9brique