示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
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);
            }
        }