/// <summary> /// Création d'un nouveau fichier /// s'il existe déjà un fichier portant le nom <paramref name="name"/> ajout d'un "-" à la fin du nom /// </summary> /// <param name="name"></param> /// <param name="pathSave"></param> /// <returns></returns> public static string CreerNouveauFichier(string name, string pathSave) { string[] nameFiles = Fichier.ObtenirNomFichierdansSaveDirectory(pathSave); while (nameFiles.Contains(name + ".txt")) { name += "-"; } name += ".txt"; Console.WriteLine(name); FileStream f = File.Create(pathSave + "\\" + name); f.Close(); return(name); }
/// <summary> /// Lancement du menu continuer /// </summary> /// <param name="grilleJoueurBateaux"></param> /// <param name="grilleJoueurMissiles"></param> /// <param name="grilleOrdiBateaux"></param> /// <param name="grilleOrdiMissiles"></param> /// <param name="tabTaillesBateaux"></param> /// <param name="rdn"></param> /// <param name="tabToucheBateauxJoueur"></param> /// <param name="tabToucheBateauxOrdi"></param> /// <param name="diff"></param> /// <param name="preDir"></param> /// <param name="typePrec"></param> /// <param name="preCoord"></param> /// <param name="goodDir"></param> /// <param name="tour"></param> public static void DemarrerMenuContinue(int[,] grilleJoueurBateaux, int[,] grilleJoueurMissiles , int[,] grilleOrdiBateaux, int[,] grilleOrdiMissiles, int[] tabTaillesBateaux, Random rdn , int[] tabToucheBateauxJoueur, int[] tabToucheBateauxOrdi, int diff, int[] preDir, int[] typePrec, int[][] preCoord, bool[] goodDir, int tour) { //obtenir le path du directory //Save string pathSave = Fichier.ObtenirPathSave(); //variable menu continue string[] labelsContinue = { "Continuer", "Sauvegarder", "Quitter" }; int selectionContinue = 0; //variable menu sauvegarde string[] labelsFiles; int selectFile = 0; string name; string[] nameFiles; //Proposer de continuer selectionContinue = InterfaceJoueur.CreerMenu(labelsContinue, "--------- Menu Continuer ------------", false); //sauvegarder if (selectionContinue == 1) { nameFiles = Fichier.ObtenirNomFichierdansSaveDirectory(pathSave); labelsFiles = new string[nameFiles.Length + 2]; nameFiles.CopyTo(labelsFiles, 0); labelsFiles[nameFiles.Length] = "Nouvelle sauvegarde"; labelsFiles[nameFiles.Length + 1] = "Retour"; selectFile = InterfaceJoueur.CreerMenu(labelsFiles, "--------- Menu Sauvegarde ------------", true); //sauvegarde dans un fichier existant if (selectFile < nameFiles.Length) { Fichier.EcrireSavePartie(Fichier.ObtenirPathAvecNom(pathSave, nameFiles[selectFile]), new int[][, ] { grilleJoueurBateaux, grilleOrdiBateaux, grilleJoueurMissiles, grilleOrdiMissiles }, new int[][] { tabToucheBateauxJoueur, tabToucheBateauxOrdi, preDir, typePrec }, preCoord, goodDir, diff, tour); } //sauvegarde dans un nouveau fichier else if (selectFile == nameFiles.Length) { Console.WriteLine("--------- Nouveau Fichier ------------"); //demande ddu nom du fichier name = InterfaceJoueur.DemanderNomNouveauFile(); //adaptation du nom du fichier name = Fichier.CreerNouveauFichier(name, pathSave); //sauvegarde Fichier.EcrireSavePartie(pathSave + "\\" + name, new int[][, ] { grilleJoueurBateaux, grilleOrdiBateaux, grilleJoueurMissiles, grilleOrdiMissiles }, new int[][] { tabToucheBateauxJoueur, tabToucheBateauxOrdi, preDir, typePrec }, preCoord, goodDir, diff, tour); } //retour au menu principal DemarrerMenuContinue(grilleJoueurBateaux, grilleJoueurMissiles, grilleOrdiBateaux, grilleOrdiMissiles, tabTaillesBateaux, rdn, tabToucheBateauxJoueur, tabToucheBateauxOrdi, diff , preDir, typePrec, preCoord, goodDir, tour); } //Quitter else if (selectionContinue == 2) { Environment.Exit(0); } //Continuer else { return; } InterfaceJoueur.AfficherGrilles(grilleJoueurBateaux, grilleJoueurMissiles, grilleOrdiBateaux, grilleOrdiMissiles, 0, tabToucheBateauxJoueur, tabToucheBateauxOrdi, 0); }
/// <summary> /// Lancement du menu principal /// </summary> /// <param name="grilleJoueurBateaux"></param> /// <param name="grilleJoueurMissiles"></param> /// <param name="grilleOrdiBateaux"></param> /// <param name="grilleOrdiMissiles"></param> /// <param name="tabTaillesBateaux"></param> /// <param name="rdn"></param> /// <param name="tabToucheBateauxJoueur"></param> /// <param name="tabToucheBateauxOrdi"></param> /// <param name="diff"></param> /// <param name="saveEachTurn"></param> /// <param name="preDir"></param> /// <param name="typePrec"></param> /// <param name="preCoord"></param> /// <param name="goodDir"></param> /// <param name="tour"></param> public static void DemarrerMenuPrincipal(ref int[,] grilleJoueurBateaux, int[,] grilleJoueurMissiles , ref int[,] grilleOrdiBateaux, int[,] grilleOrdiMissiles, int[] tabTaillesBateaux , Random rdn, int[] tabToucheBateauxJoueur, int[] tabToucheBateauxOrdi, ref int diff, ref bool saveEachTurn, ref int[] preDir, ref int[] typePrec, int[][] preCoord, bool[] goodDir, ref int tour) { //menu principal string[] labels; //menu selection fichier string[] nameFiles; int selectFile; string pathSave = Fichier.ObtenirPathSave(); //menu oui non string[] labelsOuiNon = { "Oui", "Non" }; int selectOuiNon; //menu option string[] labelsOption; int selectOption; //menu difficulté string[] labelsDiff; //si on a des fichiers de sauvegarde existant if (Fichier.EtreDirectoryVide(pathSave)) { labels = new string[] { "Nouvelle Partie", "Option", "Quitter" }; } else { //ajout du labels charger partie labels = new string[] { "Nouvelle Partie", "Charger Partie", "Option", "Quitter" }; } int selection = InterfaceJoueur.CreerMenu(labels, "--------- Menu Principal ------------", true); //Nouvelle Partie if (selection == 0) { //menu diff labelsDiff = new string[] { "Facile", "Difficile" }; diff = InterfaceJoueur.CreerMenu(labelsDiff, "--------- Choix Difficulté ------------"); //init grille bateaux GrilleBateaux.InitialiserGrilleBateaux(grilleOrdiBateaux, tabTaillesBateaux, rdn); do { grilleJoueurBateaux = new int[10, 10]; GrilleBateaux.InitialiserGrilleBateaux(grilleJoueurBateaux, tabTaillesBateaux, rdn); InterfaceJoueur.AfficherGrilles(grilleJoueurBateaux, grilleJoueurMissiles, grilleOrdiBateaux, grilleOrdiMissiles, 0, tabToucheBateauxJoueur, tabToucheBateauxOrdi, 0); selectOuiNon = InterfaceJoueur.CreerMenu(labelsOuiNon, "Voulez-vous charger une nouvelle grille?"); }while (selectOuiNon == 0); return; } //Charger Partie else if (selection == 1 && !Fichier.EtreDirectoryVide(pathSave)) { //obtenir les fichiers dans le directory //Save nameFiles = Fichier.ObtenirNomFichierdansSaveDirectory(pathSave); //menu selection fichier selectFile = InterfaceJoueur.CreerMenu(nameFiles, "--------- Menu Chargement ------------", true); //chargement de la sauvegarde Fichier.LireSavePartie(Fichier.ObtenirPathAvecNom(pathSave, nameFiles[selectFile]), new int[][, ] { grilleJoueurBateaux, grilleOrdiBateaux, grilleJoueurMissiles, grilleOrdiMissiles }, new int[][] { tabToucheBateauxJoueur, tabToucheBateauxOrdi, preDir, typePrec }, preCoord , goodDir, ref diff, ref tour); } //Option else if (selection == 1 && Fichier.EtreDirectoryVide(pathSave) || selection == 2 && !Fichier.EtreDirectoryVide(pathSave)) { while (true) { //menu option labelsOption = new string[] { String.Format("Sauvegarde à chaque tour : {0}", saveEachTurn ? "Oui" : "Non"), "Retour" }; selectOption = InterfaceJoueur.CreerMenu(labelsOption, "--------- Options ------------"); //sauvegarde auto if (selectOption == 0) { selectOuiNon = InterfaceJoueur.CreerMenu(labelsOuiNon, "Voulez vous que le jeu sauvegarde automatiquement votre grille ?"); if (selectOuiNon == 0) { saveEachTurn = true; } else { saveEachTurn = false; } //sauvegarde paramètre string path = Fichier.ObtenirPathSave(); path = Path.GetDirectoryName(path); Fichier.EcrireSaveParametre(path + "\\" + "parametre.txt", saveEachTurn); } //retour else { break; } } //retour au menu principal DemarrerMenuPrincipal(ref grilleJoueurBateaux, grilleJoueurMissiles, ref grilleOrdiBateaux, grilleOrdiMissiles, tabTaillesBateaux, rdn, tabToucheBateauxJoueur, tabToucheBateauxOrdi, ref diff , ref saveEachTurn, ref preDir, ref typePrec, preCoord, goodDir, ref tour); } //Quitter else { Environment.Exit(0); } }