/// <summary> /// Affiche et gère l'écran de paramétrage d'une nouvelle partie /// </summary> public static void MenuDemarrerNouvellePartie() { Console.Clear(); Joueur.Start(); // On met à jour l'index de sauvegarde pour éviter d'écraser une ancienne partie Sauvegarde.NomFichierIndex = Sauvegarde.RecupererDernierIndexSauvegarde() + 1; // Initialisation des grilles Grille.GrilleJ1 = new int[Grille.LargeurGrille, Grille.HauteurGrille]; Grille.GrilleDecouverteJ1 = new int[Grille.LargeurGrille, Grille.HauteurGrille]; Grille.GrilleJ2 = new int[Grille.LargeurGrille, Grille.HauteurGrille]; Grille.GrilleDecouverteJ2 = new int[Grille.LargeurGrille, Grille.HauteurGrille]; // Initialisation des données des bateaux des joueurs Bateau.PositionBateauxJ1 = new int[Bateau.NombreTypesBateaux, 4]; Bateau.VieBateauxJ1 = new int[Bateau.NombreTypesBateaux]; Bateau.PositionBateauxJ2 = new int[Bateau.NombreTypesBateaux, 4]; Bateau.VieBateauxJ2 = new int[Bateau.NombreTypesBateaux]; Bateau.PlacerBateauxAuHasard(1); Bateau.PlacerBateauxAuHasard(2); //TODO: modifier ce code si on souhaite ajouter un mode JCJ Console.WriteLine("======= Nouvelle partie ======="); Grille.AfficherGrille(Grille.GrilleJ1); Console.WriteLine("-------------------------------"); ConsoleKey key = default(ConsoleKey); do { if (key != default(ConsoleKey)) { Console.ForegroundColor = ConsoleColor.Red; } Console.WriteLine("Etes-vous satisfait de ce placement ?"); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("(O)ui | N(on)"); Console.ResetColor(); key = Console.ReadKey(false).Key; }while (key != ConsoleKey.O && key != ConsoleKey.N); Program.ViderTampon(); if (key == ConsoleKey.O) { Jeu.DeroulementPartie(); } else { Jeu.MenuDemarrerNouvellePartie(); } }
/// <summary> /// Affichage et gestion de l'interaction du joueur du menu de chargement d'une partie sauvegardée /// </summary> public static void MenuChargerPartie() { Console.Clear(); Joueur.Start(); Console.WriteLine("======= Charger une partie ======="); string[] sauvegardes = Sauvegarde.RecupererFichiersSauvegarde(); if (sauvegardes.Length <= 0) { Console.WriteLine("Aucune partie sauvegardée n'a été trouvée."); Console.WriteLine("Appuyez sur une touche pour continuer..."); Console.ReadKey(false); Jeu.MenuPrincipal(); return; } Console.WriteLine("Veuillez sélectionner une sauvegarde ci-dessous"); Console.ForegroundColor = ConsoleColor.Yellow; for (int i = 0; i < sauvegardes.Length; i++) { Console.WriteLine("" + (i + 1) + ")" + sauvegardes[i]); } Console.ResetColor(); int index = -1; do { try { index = Convert.ToInt32(Console.ReadLine()); index = index - 1; if (index < 0 || index >= sauvegardes.Length) { index = -1; } } catch (Exception) { index = -1; } if (index == -1) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Ce n'est pas une sélection valide. Veuillez réessayer."); Console.ResetColor(); } }while (index == -1); Sauvegarde.ReglerFichierSauvegarde(sauvegardes[index]); Console.Clear(); Console.WriteLine("======= Charger une partie ======="); try { Sauvegarde.Charger(); } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Impossible de charger la partie. Etes-vous sûr d'avoir un fichier de sauvegarde existant ?"); Console.ResetColor(); Console.WriteLine("Appuyez sur une touche pour continuer..."); Console.ReadKey(false); Jeu.MenuPrincipal(); } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("La partie a été chargée !"); Console.ResetColor(); Console.WriteLine("Appuyez sur une touche pour continuer..."); Console.ReadKey(false); Jeu.DeroulementPartie(); }