Пример #1
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);
        }
Пример #2
0
        /// <summary>
        /// Place les bateaux du joueur passé en paramètre de manière aléatoire
        /// </summary>
        /// <param name="joueur">Joueur dont on doit placer les bateaux</param>
        public static void PlacerBateauxAuHasard(int joueur)
        {
            Random rnd = Program.random;

            Bateau.ALIGNEMENT alignement = ALIGNEMENT.COLONNE;
            int x  = 0;
            int y  = 0;
            int x1 = 0;
            int y1 = 0;

            for (int i = 0; i < Bateau.NombreTypesBateaux; i++)
            {
                int essais = 0;
                do
                {
                    alignement = (Bateau.ALIGNEMENT)rnd.Next(0, 2);
                    x          = rnd.Next(0, Grille.LargeurGrille);
                    y          = rnd.Next(0, Grille.HauteurGrille);

                    if (alignement == Bateau.ALIGNEMENT.LIGNE)
                    {
                        if (x + Bateau.LongueurBateaux[i] >= Grille.LargeurGrille)
                        {
                            x = x - (Grille.LargeurGrille - Bateau.LongueurBateaux[i]);
                        }
                        x1 = x + Bateau.LongueurBateaux[i];
                        y1 = y;
                    }
                    if (alignement == Bateau.ALIGNEMENT.COLONNE)
                    {
                        if (y + Bateau.LongueurBateaux[i] >= Grille.HauteurGrille)
                        {
                            y = y - (Grille.LargeurGrille - Bateau.LongueurBateaux[i]);
                        }
                        y1 = y + Bateau.LongueurBateaux[i];
                        x1 = x;
                    }
                    essais++;
                }while (Bateau.VerifierColisionBateaux(joueur, x, y, x1, y1, (Bateau.TYPES)i) == false && essais < 200);
                if (essais >= 200)
                {
                    throw new Exception("Impossible de placer tous les bateaux sur la grille associée au joueur J" + joueur);
                }
                Bateau.PlacerBateau(joueur, (Bateau.TYPES)i, x, y, alignement);
            }
        }