static void AfficherTasAlumettes(bool[] tasAlumettes) { if (tasAlumettes == null || tasAlumettes.Length == 0) { return; } int tailleLigne = tasAlumettes.Length * 4 + 1; string ligne = S2_TD1.Repeter("-", tailleLigne); for (int i = 0; i < tasAlumettes.Length; i++) { Console.Write((i + 1) < 10 ? " " : " "); Console.Write((i + 1) + " "); } Console.WriteLine("\n" + ligne); Console.Write("|"); for (int i = 0; i < tasAlumettes.Length; i++) { Console.Write(" " + (tasAlumettes[i] ? "*" : " ") + " |"); } Console.WriteLine("\n" + ligne); }
static void AfficherTableMultiplication(int[,] table) { // au moins 2*2 if (table != null && table.Length >= 4) { Console.Write(" "); for (int i = 0; i < table.GetLength(1); i++) { if (i < 9) { Console.Write(" "); } Console.Write((i + 1) + " "); } Console.WriteLine(); int lignes = table.GetLength(0); int colonnes = table.GetLength(1); string pointilles = S2_TD1.Repeter("-", colonnes * 3 + 1); Console.WriteLine(" X" + pointilles); for (int l = 0; l < lignes; l++) { if (l < 9) { Console.Write(" "); } Console.Write((l + 1) + " |"); for (int c = 0; c < colonnes; c++) { int val = (c + 1) * (l + 1); if (val < 10) { Console.Write(" "); } Console.Write(val + "|"); } Console.WriteLine(); } Console.WriteLine(" " + pointilles); } }
static void Exercice9_0() { bool[] allumettes = CreerTasAllumettes(12); int joueur = 0; string ligne = S2_TD1.Repeter("=", 36); while (!FinPartie(allumettes)) { joueur = (joueur % 2) + 1; Console.WriteLine(ligne); Console.WriteLine("C'est au tour du joueur " + joueur + " de jouer !"); Console.WriteLine(ligne + "\n"); AfficherTasAlumettes(allumettes); Console.WriteLine(); int count = DemanderNombreAllumettesARetirer(Math.Min(NombreAllumettesRestantes(allumettes), 3)); for (int i = 0; i < count; i++) { int pos = -1; Console.WriteLine(); while (!PositionValide(allumettes, pos) || !allumettes[pos]) { EffacerDerniereLigne(); Console.Write("A quel emplacement retirer l'allumette " + (i + 1) + " ? "); pos = int.Parse(Console.ReadLine()) - 1; } RetirerUneAllumette(allumettes, pos); } Console.WriteLine("\n"); } AfficherTasAlumettes(allumettes); Console.WriteLine("Le joueur " + joueur + " a " + (PartieGagnee(allumettes) ? "gagné !" : "perdu :(") + "\n"); }
static void Exercice9_1() { int nbAllumettes = 0; Console.WriteLine(); while (nbAllumettes < 3 || nbAllumettes > 20) { // 20 <=> limite arbitraire max EffacerDerniereLigne(); Console.WriteLine("Combien d'allumettes utiliser ? (min 3) "); nbAllumettes = int.Parse(Console.ReadLine()); } bool[] allumettes = CreerTasAllumettes(nbAllumettes); int joueur = 0; string ligne = S2_TD1.Repeter("=", 36); while (!FinPartie(allumettes)) { joueur = (joueur % 2) + 1; Console.WriteLine(ligne); Console.WriteLine("C'est au tour du joueur " + joueur + " de jouer !"); Console.WriteLine(ligne + "\n"); AfficherTasAlumettes(allumettes); Console.WriteLine(); int count = DemanderNombreAllumettesARetirer(Math.Min(NombreAllumettesRestantes(allumettes), 3)); int lastPos = -1; // pour regarder si c'est consécutif for (int i = 0; i < count; i++) { bool consecutif = true; Console.WriteLine(); int pos = -1; while (!PositionValide(allumettes, pos) || !allumettes[pos] || !consecutif) { EffacerDerniereLigne(); Console.Write("A quel emplacement retirer l'allumette " + (i + 1) + " ? "); pos = int.Parse(Console.ReadLine()) - 1; consecutif = true; // si entre la pos et la lastPos on trouve une allumette, ce n'est pas consécutif if (lastPos != -1) // car la 1re fois c'est toujours bon { for (int j = Math.Min(pos, lastPos) + 1; consecutif && j < Math.Max(pos, lastPos); j++) { if (allumettes[j]) { consecutif = false; } } } } lastPos = pos; RetirerUneAllumette(allumettes, pos); } Console.WriteLine("\n"); } AfficherTasAlumettes(allumettes); Console.WriteLine("Le joueur " + joueur + " a " + (PartieGagnee(allumettes) ? "gagné !" : "perdu :(") + "\n"); }