Beispiel #1
0
        /// <summary>
        /// Détermine la position d'une pièce selon la stratégie
        /// </summary>
        /// <returns>Coordonnée de la position du coup à faire</returns>
        public override Coordonnee GetPosition()
        {
            List <Coordonnee> positionsPossibles = new List <Coordonnee>
            {
                new Coordonnee(2, 3),
                new Coordonnee(3, 3),
                new Coordonnee(6, 3),
                new Coordonnee(7, 3)
            };

            return(positionsPossibles.Count > 0 ?
                   positionsPossibles[Aleatoire.Next(positionsPossibles.Count)] :
                   new StrategiePlacementPieceAleatoire(Pieces, Largeur, Hauteur).GetPosition());
        }
Beispiel #2
0
        /// <summary>
        /// Détermine la position d'une pièce selon la stratégie
        /// </summary>
        /// <returns>Coordonnée de la position du coup à faire</returns>
        public override Coordonnee GetPosition()
        {
            List <Coordonnee> positionsPossibles = new List <Coordonnee>();

            for (int x = 0; x < Largeur; x++)
            {
                for (int y = 0; y < Hauteur; y++)
                {
                    if (Pieces[x, y] == null)
                    {
                        positionsPossibles.Add(new Coordonnee(x, y));
                    }
                }
            }

            return(positionsPossibles.Count > 0 ?
                   positionsPossibles[Aleatoire.Next(positionsPossibles.Count)] :
                   new Coordonnee(-1, -1));
        }
        /// <summary>
        /// Détermine la position d'une pièce selon la stratégie
        /// </summary>
        /// <returns>Coordonnée de la position du coup à faire</returns>
        public override Coordonnee GetPosition()
        {
            // Si on n'a pas trouvé le drapeau, le trouver
            if (!DrapeauTrouve)
            {
                for (int x = 0; x < Largeur; x++)
                {
                    for (int y = 0; y < Hauteur; y++)
                    {
                        if (Pieces[x, y] is Drapeau)
                        {
                            PositionDrapeau = new Coordonnee(x, y);
                            DrapeauTrouve   = true;
                        }
                    }
                }
            }

            List <Coordonnee> positionsPossibles = new List <Coordonnee>();

            if (Pieces[PositionDrapeau.X - 1, 0] == null)
            {
                positionsPossibles.Add(new Coordonnee(PositionDrapeau.X - 1, 0));
            }
            if (Pieces[PositionDrapeau.X, 1] == null)
            {
                positionsPossibles.Add(new Coordonnee(PositionDrapeau.X, 1));
            }
            if (Pieces[PositionDrapeau.X + 1, 0] == null)
            {
                positionsPossibles.Add(new Coordonnee(PositionDrapeau.X + 1, 0));
            }

            return(positionsPossibles.Count > 0 ?
                   positionsPossibles[Aleatoire.Next(positionsPossibles.Count)] :
                   new StrategiePlacementPieceAleatoire(Pieces, Largeur, Hauteur).GetPosition());
        }