using System; namespace Echiquier { class MainClass { public static void Main (string[] args) { Console.WriteLine ("Quelle pièce souhaitez-vous déplacer ?" + "\n0 = cavalier\n1 = Tour\n2 = Fou\n3 = Dame\n4 = Roi"); int piece = int.Parse(Console.ReadLine()); if (piece >= 1 && piece <= 4) { Console.WriteLine ("Coordonnées (i, j) de la position de départ :"); Console.Write ("i = "); int i = int.Parse(Console.ReadLine()); Console.Write ("j = "); int j = int.Parse(Console.ReadLine()); Console.WriteLine ("Coordonnées (i', j') de la position d'arrivée :"); Console.Write ("i' = "); int ip = int.Parse(Console.ReadLine()); Console.Write ("j' = "); int jp = int.Parse(Console.ReadLine()); if (i >= 1 && i <= 8 && j >= 1 && j <= 8 && ip >= 1 && ip <= 8 && jp >= 1 && jp <= 8 && piece >= 0 && piece <= 4) { Console.Write("Déplacement "); bool correct = false; switch (piece) { case 0 : correct = Math.Abs(i - ip) == 2 && Math.Abs(j - jp) == 1 || Math.Abs(i - ip) == 1 && Math.Abs(j - jp) == 2; Console.Write("d'un cavalier "); break; case 1 : correct = i == ip || j == jp; Console.Write("d'une tour "); break; case 2 : correct = Math.Abs(i - ip) == Math.Abs(j - jp); Console.Write("d'un fou "); break; case 3 : correct = i == ip || j == jp || Math.Abs(i - ip) == Math.Abs(j - jp); Console.Write("de la reine "); break; case 4 : correct = Math.Abs(i - ip) <= 1 && Math.Abs(j - jp) <= 1; Console.Write("du roi "); break; default : break; } Console.WriteLine("de (" + i + ", " + j + ") vers (" + ip + ", " + jp + ") " + ((correct)? "correct." : "incorrect.")); } else Console.WriteLine("Erreur de saisie : coordonnées inexistantes."); } else Console.WriteLine ("Pièce inexistante."); } } }