示例#1
0
 /// <summary>
 /// Sauvegarde les données de la partie en cours dans un fichier texte de sauvegarde
 /// </summary>
 public static void Sauvegarder()
 {
     if (File.Exists(Sauvegarde.NomFichier()) && Sauvegarde.DemandeEffacerAnciennePartie() == false)
     {
         NomFichierIndex = Sauvegarde.RecupererDernierIndexSauvegarde() + 1;
     }
     // Sauvegarde positions J1
     string[] lignes = Sauvegarde.ConvertirObjetEnLigne(new string[0], Bateau.ObtenirPositionBateauxJoueur(1));
     // Sauvegarde vies J1
     lignes = Sauvegarde.ConvertirObjetEnLigne(lignes, Bateau.ObtenirVieBateauxJoueur(1));
     // Sauvegarde positions J2
     lignes = Sauvegarde.ConvertirObjetEnLigne(lignes, Bateau.ObtenirPositionBateauxJoueur(2));
     // Sauvegarde vies J2
     lignes = Sauvegarde.ConvertirObjetEnLigne(lignes, Bateau.ObtenirVieBateauxJoueur(2));
     // Sauvegarde grille j1
     lignes = Sauvegarde.ConvertirObjetEnLigne(lignes, Grille.ObtenirGrilleJoueur(1));
     // Sauvegarde grille decouverte J1
     lignes = Sauvegarde.ConvertirObjetEnLigne(lignes, Grille.ObtenirGrilleDecouverteJoueur(1));
     // Sauvegarde grille J2
     lignes = Sauvegarde.ConvertirObjetEnLigne(lignes, Grille.ObtenirGrilleJoueur(2));
     // Sauvegarde grille decouverte J2
     lignes = Sauvegarde.ConvertirObjetEnLigne(lignes, Grille.ObtenirGrilleDecouverteJoueur(2));
     // Sauvegarde niveau
     lignes = lignes.Concat(new string[] { ((int)Jeu.NiveauJeu).ToString() }).ToArray();
     File.WriteAllLines(Sauvegarde.NomFichier(), lignes);
     Console.Clear();
     Console.WriteLine("======= Sauvegarder une partie ===");
     Console.ForegroundColor = ConsoleColor.Green;
     Console.WriteLine("Votre partie a été sauvegardée dans le fichier " + Sauvegarde.NomFichier());
     Console.ResetColor();
     Console.WriteLine("-- Appuyez sur une touche pour continuer --");
     Console.ReadKey(false);
 }
示例#2
0
        /// <summary>
        /// Paramètre les positions du bateau passé en paramètre dans la liste des positions de bateau
        /// </summary>
        /// <param name="joueur">Joueur associé au bateau à placer</param>
        /// <param name="type">Type de bateau à placer</param>
        /// <param name="x">Position x du premier point de la droite associée au bateau à placer</param>
        /// <param name="y">Position y du premier point de la droite associée au bateau à placer</param>
        /// <param name="alignement">Alignement du bateau à placer</param>
        public static void PlacerBateau(int joueur, Bateau.TYPES type, int x, int y, Bateau.ALIGNEMENT alignement)
        {
            int[,] positionBateaux = Bateau.ObtenirPositionBateauxJoueur(joueur);
            int[] vieBateaux = Bateau.ObtenirVieBateauxJoueur(joueur);
            int   x1;
            int   y1;


            if (alignement == ALIGNEMENT.LIGNE)
            {
                x1 = x + Bateau.LongueurBateaux[(int)type] - 1;
                y1 = y;
            }
            else
            {
                y1 = y + Bateau.LongueurBateaux[(int)type] - 1;
                x1 = x;
            }

            if (x < 0 || y < 0 || x1 >= Grille.LargeurGrille || y1 >= Grille.LargeurGrille)
            {
                throw new Exception("Impossible de placer le bateau. Il se trouve en dehors de la grille.");
            }

            vieBateaux[(int)type]         = Bateau.LongueurBateaux[(int)type];
            positionBateaux[(int)type, 0] = x;
            positionBateaux[(int)type, 1] = y;
            positionBateaux[(int)type, 2] = x1;
            positionBateaux[(int)type, 3] = y1;

            Grille.mettreaJourGrilleUnBateau(Grille.ObtenirGrilleJoueur(joueur), x, y, x1, y1);
        }
示例#3
0
        /// <summary>
        /// Modifie la vie du bateau passé en paramètre associé au joueur passé en paramètres
        /// </summary>
        /// <param name="joueur">Joueur dont on doit modifier un bateau</param>
        /// <param name="type">Type de bateau dont on doit modifier la vie </param>
        /// <param name="x">Position x à la quelle le bateau a été touché</param>
        /// <param name="y">Position y à laquelle le bateau a été touché</param>
        /// <returns>Vrai si le bateau est coulé, Faux sinon</returns>
        public static bool ToucherBateau(int joueur, Bateau.TYPES type, int x, int y)
        {
            int[,] positionbateau = Bateau.ObtenirPositionBateauxJoueur(joueur);
            int[] vieBateaux = Bateau.ObtenirVieBateauxJoueur(joueur);
            int[,] grille         = Grille.ObtenirGrilleJoueur(joueur);
            grille[x, y]          = (int)Grille.Cases.TOUCHE;
            int[,] decouverte     = Grille.ObtenirGrilleDecouverteJoueur(Joueur.ObtenirAutreJoueur(joueur));
            decouverte[x, y]      = (int)Grille.Cases.TOUCHE;
            vieBateaux[(int)type] = vieBateaux[(int)type] - 1;
            //vieBateaux[(int)type] = 0;

            if (vieBateaux[(int)type] <= 0)
            {
                // On marque la bateau comme coulé sur la grille
                for (int o = 0; o < Bateau.LongueurBateaux[(int)type]; o++)
                {
                    if (Bateau.ObtenirAlignementBateau(joueur, type) == ALIGNEMENT.COLONNE)
                    {
                        grille[positionbateau[(int)type, 0], positionbateau[(int)type, 1] + o]     = (int)Grille.Cases.COULE;
                        decouverte[positionbateau[(int)type, 0], positionbateau[(int)type, 1] + o] = (int)Grille.Cases.COULE;
                    }
                    else
                    {
                        grille[positionbateau[(int)type, 0] + o, positionbateau[(int)type, 1]]     = (int)Grille.Cases.COULE;
                        decouverte[positionbateau[(int)type, 0] + o, positionbateau[(int)type, 1]] = (int)Grille.Cases.COULE;
                    }
                }
                return(true);
            }
            return(false);
        }
示例#4
0
 /// <summary>
 /// Retourne l'alignement du bateau de type type du joueur joueur
 /// </summary>
 /// <param name="joueur">Joueur dont on doit retourner l'alignement d'un bateau</param>
 /// <param name="type">Type de bateau dont on doit retourner l'alignement</param>
 /// <returns>L'alignement du bateau</returns>
 public static ALIGNEMENT ObtenirAlignementBateau(int joueur, Bateau.TYPES type)
 {
     int[,] positionbateaux = Bateau.ObtenirPositionBateauxJoueur(joueur);
     if (positionbateaux[(int)type, 0] == positionbateaux[(int)type, 2])
     {
         return(ALIGNEMENT.COLONNE);
     }
     else
     {
         return(ALIGNEMENT.LIGNE);
     }
 }