Placement de la Reine sur un échiquier
Published:
Exercice 3 (3 points) Sur un échiquier représenté par une matrice carrée M de 8 lignes et 8 colonnes, on se propose de marquer toutes les cases susceptibles d'être atteintes en un coup par une Reine positionnée dans une case quelconque dont les coordonnées L (numéro de ligne) et C (numéro de colonne) sont donnés. La Reine est considérée comme la pièce la plus puissante de l'échiquier. Elle peut se déplacer vers n'importe quelle case en ligne, en colonne ou en diagonales. Exemple : Pour L = 4 et C = 3 on obtient la matrice M suivante : [Visual representation of an 8x8 grid] Question : Ecrire l'algorithme du module permettant d'initialiser la case de coordonnées (L,C) d'une matrice carrée M (8x8) par la lettre 'R' (position initiale de la Reine) puis de marquer par une croix ('X') toutes les cases susceptibles d'être atteintes en un coup par la Reine et d'afficher le contenu de la matrice. N.B : L et C sont passés en paramètre et ils sont déjà saisis dans le module appelant.
This question includes visual content: L'image contient une grille 8x8 représentant un échiquier. Les lignes et colonnes sont numérotées de 1 à 8. La position initiale de la Reine est marquée par un 'R' à la ligne 4, colonne 3. Les cases accessibles (ligne 4, colonne 3) par une reine selon les règles des échecs (déplacement horizontal, vertical et diagonal) sont marquées par un 'X'.
Animated Video Solution
The first half plays free, the full solution is in the app.
Step by Step Written Solution
Bonjour iyed, nous allons écrire un algorithme pour simuler les déplacements d'une Reine sur un échiquier de huit par huit.
Analyse du Problème
- Échiquier : Matrice $M[8][8]$
- Position Reine : $(L, C)$
- Déplacements : Ligne, Colonne, Diagonales
- Marquage : 'R' pour la Reine, 'X' pour les cibles.
Une Reine peut atteindre toutes les cases de sa propre ligne et de sa propre colonne. De plus, elle se déplace sur les deux diagonales passant par sa position.
Conditions de marquage pour une case $(i, j)$ :
1. Même ligne : $i = L$
2. Même colonne : $j = C$
3. Diagonale principale : $i - j = L - C$ (ou $|i-L| = |j-C|$)
4. Diagonale secondaire : $i + j = L + C$
Commençons par définir la structure globale de l'algorithme. Nous allons parcourir chaque case de la matrice avec deux boucles imbriquées allant de un à huit.
Algorithme : Marquage_Reine
Procédure Marquage_Reine(L, C : Entier)
Variable i, j : Entier
Variable M : Tableau[1..8, 1..8] de Caractère
Début
À l'intérieur de ces boucles, nous testons d'abord si la case actuelle est celle de la Reine. Si oui, nous lui affectons la lettre R majuscule.
Pour i de 1 à 8 Faire
Pour j de 1 à 8 Faire
Sinon, nous vérifions si la case est sur la même ligne, la même colonne ou l'une des diagonales. La condition absolue pour les diagonales est très pratique ici.
The rest of this solution is on Solvi
4 more steps are locked. Watch the full animated, narrated solution for free.
Snap a photo, solve any question like this.
Watch the Rest for FreeFree to download · First solutions are on us