/// <summary> /// Permet de jouer un tour en tant qu'IA /// </summary> /// <param name="joueur">Joueur concerné</param> public static void JouerIA(int joueur) { int x, y; int[,] salves = new int[Joueur.ObtenirTailleSalve(joueur), 2]; for (int i = 0; i < salves.GetLength(0); i++) { IA.PositionIA(joueur, out x, out y, i); salves[i, 0] = x; salves[i, 1] = y; } for (int i = 0; i < salves.GetLength(0); i++) { x = salves[i, 0]; y = salves[i, 1]; Console.Write("L'ordinateur tire sur la cellule " + Grille.Lettres[y] + "" + (x + 1) + " ..."); int[,] decouverte; bool coule = false; if (Bateau.Tirer(joueur, x, y, out coule) == true) // IA a touché { IA.SignalerTouche(i); Console.ForegroundColor = ConsoleColor.Red; if (coule) { Console.WriteLine("L'ordinateur a coulé un navire !"); IA.SignalerCoule(joueur, i); Joueur.ReglerTailleSalve(joueur, Joueur.ObtenirTailleSalve(joueur) - 1); } else { Console.WriteLine("L'ordinateur a touché un navire !"); } Console.ResetColor(); } else // IA n'a pas touché { IA.SignalerRate(i); Console.WriteLine("C'est un coup dans l'eau..."); decouverte = Grille.ObtenirGrilleDecouverteJoueur(joueur); decouverte[x, y] = (int)Grille.Cases.DECOUVERT_VIDE; } } }
/// <summary> /// Permet de joueur un tour en tant qu'humain /// </summary> /// <param name="joueur">Joueur concerné</param> public static void JouerHumain(int joueur) { int x, y; int[,] salves = new int[Joueur.ObtenirTailleSalve(joueur), 2]; /*Console.WriteLine("Votre Grille:"); * Grille.AfficherGrille(Grille.ObtenirGrilleJoueur(joueur)); * Console.WriteLine("Ce que vous savez de la Grille de l'adversaire:"); * Grille.AfficherGrille(Grille.ObtenirGrilleDecouverteJoueur(joueur));*/ for (int i = 0; i < salves.GetLength(0); i++) { Console.Clear(); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("==TOUR DU JOUEUR " + joueur + "============="); Console.ResetColor(); string infoGrilles = "Votre Grille: Ce que vous savez de la grille de votre adversaire:"; Console.WriteLine(infoGrilles); Grille.AfficherDeuxGrillesCoteACote(Grille.ObtenirGrilleJoueur(joueur), Grille.ObtenirGrilleDecouverteJoueur(joueur)); Console.WriteLine("\n-------\nParamétrage du canon " + (i + 1) + "/" + salves.GetLength(0)); Console.Write("Tirs paramétrés: "); Console.ForegroundColor = ConsoleColor.DarkYellow; for (int o = 0; o < i; o++) { Console.Write(Grille.Lettres[salves[o, 1]] + "" + (salves[o, 0] + 1) + " "); } Console.WriteLine(""); Console.ResetColor(); DemanderPosition(joueur, out x, out y); salves[i, 0] = x; salves[i, 1] = y; Console.WriteLine("Un canon a été dirigé vers la cellule " + Grille.Lettres[y] + "" + (x + 1) + " ..."); } Console.Clear(); Console.WriteLine("------------------------"); Console.WriteLine("Mise à feu des canons..."); for (int i = 0; i < salves.GetLength(0); i++) { x = salves[i, 0]; y = salves[i, 1]; Console.Write("Tir sur la cellule " + Grille.Lettres[y] + "" + (x + 1) + " ..."); bool coule = false; if (Bateau.Tirer(joueur, x, y, out coule) == true) // le joueur a touché { if (coule == false) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Vous avez touché un navire !"); Console.ResetColor(); } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Un bateau a été coulé."); Console.ResetColor(); Joueur.ReglerTailleSalve(joueur, Joueur.ObtenirTailleSalve(joueur) - 1); } } else // le joueur n'a pas touché { Console.WriteLine("C'est un coup dans l'eau..."); } } }