예제 #1
0
 public CaseMorpion(Coordonnee laCoordonnee, IRepresentationCaseMorpion uneRepresentationCaseMorpion) : base()
 {
     _maCoordonnee     = laCoordonnee;
     _value            = new Pion("");
     _id               = MethodesGlobales.ConvertirCoordonneEnIdCase(laCoordonnee);
     _maRepresentation = uneRepresentationCaseMorpion;
 }
예제 #2
0
        private int GetNbrElementsIdentiquesEnBasAGauche(Coordonnee uneCoordonnee, Pion unPion, int p_nbrElementGagnant)
        {
            int nbrElementTrouve = 0;

            int nbrMaxCount = p_nbrElementGagnant;

            int  iCompteur          = 0;
            bool aTrouveeUnMemePion = true;

            while (aTrouveeUnMemePion && (uneCoordonnee.X - iCompteur < nbrMaxCount) && (uneCoordonnee.Y + iCompteur < nbrMaxCount))
            {
                if (_mesCases[ConvertIdCase(uneCoordonnee.X - iCompteur, uneCoordonnee.Y + iCompteur)].GetElement().Valeur().Equals(unPion.Valeur()))
                {
                    nbrElementTrouve++;
                }
                else
                {
                    aTrouveeUnMemePion = false;
                }

                iCompteur++;
            }

            return(nbrElementTrouve - 1);
        }
예제 #3
0
 public CaseMorpion(Coordonnee laCoordonnee)
 {
     _maCoordonnee     = laCoordonnee;
     _value            = new Pion("");
     _id               = MethodesGlobales.ConvertirCoordonneEnIdCase(laCoordonnee);
     _maRepresentation = new ControlCaseMorpion(MethodesGlobales.ConvertirCoordonneEnIdCase(laCoordonnee));
 }
예제 #4
0
 public void PoserElement(Coordonnee cetteCoordonnee, Pion unPion)
 {
     if (_mesCases.ContainsKey(ConvertIdCase(cetteCoordonnee.X, cetteCoordonnee.Y)))
     {
         if (!_mesCases[ConvertIdCase(cetteCoordonnee.X, cetteCoordonnee.Y)].EstCoche())
         {
             _mesCases[ConvertIdCase(cetteCoordonnee.X, cetteCoordonnee.Y)].RecevoirElement(unPion);
         }
     }
 }
예제 #5
0
        private bool VerifierSiJoueurGagneVerticalement(Coordonnee uneCoordonnee, Pion unPion, int p_nbrElementGagnant)
        {
            if (PeutGagneVerticalement(uneCoordonnee, p_nbrElementGagnant))
            {
                int nbrElementTrouve = GetNbrElementsTrouvesIdentiquesVerticale(uneCoordonnee, unPion, p_nbrElementGagnant);

                if (nbrElementTrouve == p_nbrElementGagnant)
                {
                    return(true);
                }
            }

            return(false);
        }
예제 #6
0
        public bool VerifierSiJoueurGagne(Coordonnee uneCoordonnee, Pion unPion, int nbrElementGagnantMax)
        {
            if (VerfierSiJoueurGagneHorizontalement(uneCoordonnee, unPion, nbrElementGagnantMax))
            {
                return(true);
            }

            if (VerifierSiJoueurGagneVerticalement(uneCoordonnee, unPion, nbrElementGagnantMax))
            {
                return(true);
            }

            if (VerifierSiJoueurGagneDiagonalement(uneCoordonnee, unPion, nbrElementGagnantMax))
            {
                return(true);
            }

            return(false);
        }
예제 #7
0
 public void AnnulerElement(Pion pion, System.Drawing.Image image)
 {
     _value = pion;
     _maRepresentation.AnnulerCoche(image);
 }
예제 #8
0
        private int GetNbrElementsTrouvesIdentiquesDiagonalement(Coordonnee uneCoordonnee, Pion unPion, int p_nbrElementGagnant)
        {
            int nbrElementTrouve = 0;

            if (PeutAllerEnHautADroite(uneCoordonnee, p_nbrElementGagnant))
            {
                nbrElementTrouve = 0;
                nbrElementTrouve = nbrElementTrouve + GetNbrElementsIdentiquesEnHautADroite(uneCoordonnee, unPion, p_nbrElementGagnant);
            }

            if (PeutAllerEnHautAGauche(uneCoordonnee, p_nbrElementGagnant))
            {
                nbrElementTrouve = 0;
                nbrElementTrouve = nbrElementTrouve + GetNbrElementsIdentiquesEnHautAGauche(uneCoordonnee, unPion, p_nbrElementGagnant);
            }

            if (PeutAllerEnBasADroite(uneCoordonnee, p_nbrElementGagnant))
            {
                nbrElementTrouve = 0;
                nbrElementTrouve = nbrElementTrouve + GetNbrElementsIdentiquesEnBasADroite(uneCoordonnee, unPion, p_nbrElementGagnant);
            }

            if (PeutAllerEnBasAGauche(uneCoordonnee, p_nbrElementGagnant))
            {
                nbrElementTrouve = 0;
                nbrElementTrouve = nbrElementTrouve + GetNbrElementsIdentiquesEnBasAGauche(uneCoordonnee, unPion, p_nbrElementGagnant);
            }

            if (PeutAllerEnHautADroiteEtEnBasAGauche(uneCoordonnee, p_nbrElementGagnant))
            {
                nbrElementTrouve = 0;
                nbrElementTrouve = nbrElementTrouve + GetNbrElementsIdentiquesEnHautADroite(uneCoordonnee, unPion, p_nbrElementGagnant);
                nbrElementTrouve = nbrElementTrouve + GetNbrElementsIdentiquesEnBasAGauche(uneCoordonnee, unPion, p_nbrElementGagnant);
            }

            if (PeutAllerEnHautAGaucheEtEnBasADroite(uneCoordonnee, p_nbrElementGagnant))
            {
                nbrElementTrouve = 0;
                nbrElementTrouve = nbrElementTrouve + GetNbrElementsIdentiquesEnHautAGauche(uneCoordonnee, unPion, p_nbrElementGagnant);
                nbrElementTrouve = nbrElementTrouve + GetNbrElementsIdentiquesEnBasADroite(uneCoordonnee, unPion, p_nbrElementGagnant);
            }

            nbrElementTrouve++;

            return(nbrElementTrouve);
        }