namespace Models.Jeux.Plateau
{
    public class Case
    {
        /// <summary>
        /// Constructeur de la classe Case
        /// </summary>
        /// <param name="couleur">Objet couleur de type Couleur correspondant à la couleur de la case</param>
        /// <param name="X">Objet X de type int correspondant à la colone de la case</param>
        /// <param name="Y">Objet Y de type int correspondant à la ligne de la case</param>
        public Case(Couleur couleur, int X, int Y)
        {
            CouleurCase = couleur;
            PosX = X;
            PosY = Y;
        }

        /// <summary>
        /// Créé le getter et le setter de l'attribut Couleur Case
        /// </summary>
        public Couleur CouleurCase
        {
            get
            {
                return couleurCase;
            }

            set
            {
                couleurCase = value;
            }
        }
        private Couleur couleurCase;

        /// <summary>
        /// Créé le getter et le setter de l'attribut PosX et vérifie que la valeur de celui-ci est
        /// comprise entre 0 et 9
        /// </summary>
        public int PosX
        {
            get
            {
                return posX;
            }
            set
            {
                if (value < 0)
                {
                    posX = 0;
                }
                else
                {
                    if (value > 9)
                    {
                        posX = 9;
                    }
                    else
                        posX = value;
                }


            }
        }
        private int posX;

        /// <summary>
        /// Créé le getter et le setter de l'attribut PosY et vérifie que la valeur de celui-ci est
        /// comprise entre 0 et 9
        /// </summary>
        public int PosY
        {
            get
            {
                return posY;
            }
            set
            {
                if (value < 0)
                {
                    posY = 0;
                }
                else
                {
                    if (value > 9)
                    {
                        posY = 9;
                    }
                    else
                        posY = value;
                }
            }
        }
        private int posY;

        /// <summary>
        /// Créé le getter et le setter de l'attribut Pion
        /// </summary>
        public bool Pion
        {
            get
            {
                return pion;
            }
            set
            {
                pion = value;
            }
        }
        private bool pion = false;


        /// <summary>
        /// Affiche une case
        /// </summary>
        /// <returns>Une phrase quidit la couleur de la case et ses coordonnées</returns>
        public override string ToString()
        {
            return $"Cette case est {CouleurCase} et ses coordonnées sont X={PosX} Y={PosY}";
        }

    }
}
