Beispiel #1
0
        public BattleGridControl()
        {
            InitializeComponent();
            int i;

            for (i = 0; i < BattleGrid.ROWS; i++)
            {
                layout.RowDefinitions.Add(new RowDefinition()
                {
                    Height = new GridLength(20)
                });
            }
            for (i = 0; i < BattleGrid.COLS; i++)
            {
                layout.ColumnDefinitions.Add(new ColumnDefinition()
                {
                    Width = new GridLength(20)
                });
            }
            for (i = 0; i < BattleGrid.ROWS; i++)
            {
                for (int j = 0; j < BattleGrid.COLS; j++)
                {
                    Rectangle r = new Rectangle()
                    {
                        HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch, VerticalAlignment = System.Windows.VerticalAlignment.Stretch, Stroke = Brushes.White, StrokeThickness = 1, Fill = Brushes.Blue
                    };
                    layout.Children.Add(r);
                    Grid.SetRow(r, i);
                    Grid.SetColumn(r, j);
                }
            }

            BattleGrid g = new BattleGrid();

            // Ajout de bateaux
            g.NewGrid();

            // Tirs
            for (i = 0; i < 10; i++)
            {
                g.Shoot(2, i);
                g.Shoot(3, i);
            }

            g.Shoot(6, 2);
            g.Shoot(1, 1);
            g.Shoot(4, 1);
            g.Shoot(1, 4);

            // Draw
            this.Draw(g);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            /*
             *    PERMIERS ESSAIS
             */

            // Création d'un navire horizontal aux coordonnées (2, 5), de taille 3
            //Ship b = new Ship(2, 5, 3, Orientations.Horizontal);

            // IsAtCoordinates() doit renvoyer true si le bateau est aux coordonnées données

            /*
             * System.Console.WriteLine(b.IsAtCoordinates(2, 5));
             * System.Console.WriteLine(b.IsAtCoordinates(3, 5));
             * System.Console.WriteLine(b.IsAtCoordinates(4, 5));
             */

            // IsAtCoordinates() doit renvoyer false si le bateau n'est pas aux coordonnées données

            /*
             * System.Console.WriteLine(b.IsAtCoordinates(1, 5));
             * System.Console.WriteLine(b.IsAtCoordinates(5, 5));
             * System.Console.WriteLine(b.IsAtCoordinates(2, 6));
             */


            // Création d'une grille vierge
            //BattleGrid g = new BattleGrid();
            // Ajout du navire à la grille
            //g.AddShip(b);

            // Vérification qu'il y a de l'eau dans toutes les cases (doit renvoyer Water)

            /*
             * for (int x = 0; x < 10; x++)
             *  for (int y = 0; y < 10; y++)
             *      System.Console.WriteLine(x + "," + y + "=" + g.States[x, y]);
             */

            // Vérification de l'état des cases (doit tjs renvoyer true)

            /*
             * System.Console.WriteLine(g.States[2, 5] == GridStates.Ship);
             * System.Console.WriteLine(g.States[3, 5] == GridStates.Ship);
             * System.Console.WriteLine(g.States[4, 5] == GridStates.Ship);
             * System.Console.WriteLine(g.States[1, 5] == GridStates.Water);
             * System.Console.WriteLine(g.States[5, 5] == GridStates.Water);
             */

            //Affichage de la grille en console
            //g.Draw();

            /*
             * // On doit pouvoir ajouter un petit navire en haut à gauche
             * System.Console.WriteLine(g.CanAddShip(new Ship(0, 0, 2, Orientations.Horizontal)));
             * // On ne doit pas pouvoir ajouter un navire qui en chevauche un autre
             * System.Console.WriteLine(g.CanAddShip(new Ship(1, 5, 2, Orientations.Horizontal)));
             * // On ne doit pas pouvoir ajouter un navire qui déborde
             * System.Console.WriteLine(g.CanAddShip(new Ship(9, 1, 2, Orientations.Horizontal)));
             */

            /*
             * // Un tir dans l'eau marque la case comme manquée
             * System.Console.WriteLine(g.Shoot(0, 0));
             * // Outre la valeur de retour, la grille doit être modifiée
             * System.Console.WriteLine(g.States[0, 0]);
             * // Tir sur un navire
             * System.Console.WriteLine(g.Shoot(2, 5));
             */

            /*
             * // A ce moment, le jeu ne fait que commencer
             * System.Console.WriteLine("Game over : " + g.GameOver());
             * g.Shoot(2, 5);
             * g.Shoot(3, 5);
             * g.Shoot(4, 5);
             * // Toutes les positions ont été tirées
             * System.Console.WriteLine("Game over : " + g.GameOver());
             */

            /*
             *   MODELISATION D'UN JOUEUR AUTOMATIQUE
             */

            /*
             * BattleGrid g = new BattleGrid();
             * g.AddShip(new Ship(1, 0, 3, Orientations.Horizontal));
             * IPlayer player = new StupidPlayer();
             */

            /*
             * // Dans l'eau !
             * player.Play(g);
             *
             * // Touche trois fois d'affilée
             * player.Play(g);
             * player.Play(g);
             * player.Play(g);
             *
             * // Il doit avoir gagné après trois coups d'affilée
             * System.Console.WriteLine(g.GameOver());
             */

            /*
             * g.AddShip(new Ship(2, 5, 3, Orientations.Horizontal));
             * int comptage = 0;
             * g.Draw();
             * while (!g.GameOver())
             * {
             *  player.Play(g);
             *  comptage++;
             * }
             * System.Console.WriteLine(comptage);
             * g.Draw();
             */

            // Création d'une grille avec génération aléatoire puis affichage

            BattleGrid g      = new BattleGrid();
            IPlayer    player = new StupidPlayer();

            g.NewGrid();
            g.Draw();

            while (!g.GameOver())
            {
                player.Play(g);
            }

            g.Draw();

            Console.Read();
        }