コード例 #1
0
        public FormeCavalier_Simulation(int depLig, int depCol, int choixCav, int choixCombiColor)
        {
            InitializeComponent();
            FormeCavalier_Simulation_Load(null, null);
            aleatoire = new Random();
            //constante A NE PAS CHANGER
            cpClic           = 0;
            rang             = 0;
            pause            = false;
            stopSimulation   = false;
            simulationLancee = false;
            demo             = true;

            //VARIABLE A CHANGER AVEC AUTRE FORME
            //choix du cavalier
            fmpca         = new FormeMenu_Parametre_Cavalier(choixCav);
            this.choixCav = fmpca.GetCcDef();

            // choixCav = FormeMenu_Parametre_Cavalier.GetCcDef();
            // choix du damier
            fmpco = new FormeMenu_Parametre_Couleur(choixCombiColor);
            cc    = fmpco.GetCcDef();
            cf    = fmpco.GetCfDef();
            ColorerMesBoutons();

            //obliger user a choisir nbrpas et duree
            NbrPas     = (5);
            ChoixDuree = (2);

            monBouton b = DD.GetMonBouton(depLig, depCol);

            Buttons_Click(b, null);
        }
コード例 #2
0
        // ******************** BOUTON PANNEAU DEPART **********************
        private void boutonDepart_Click(object sender, EventArgs e)
        {
            if (sender is Button && (cpClic == 0) && !pause)
            {
                ////// ESSAI NICO ADRI
                cpClic           = 0;
                rang             = 0;
                pause            = false;
                stopSimulation   = false;
                simulationLancee = false;
                //////
                ///
                ++cpClic;
                boutonPause.Visible = true;

                boutonDepart.Visible      = false;
                boutonRecommencer.Visible = false;

                label1.Visible         = false;
                ListChoixDuree.Visible = false;
                ListNbrPas.Visible     = false;

                depLig = aleatoire.Next(GetNbrCaseCoteDamier()) + GetNbrCaseMarge();
                depCol = aleatoire.Next(GetNbrCaseCoteDamier()) + GetNbrCaseMarge();

                monBouton bdest = DD.GetMonBouton(depLig, depCol);
                piece = new Cavalier(bdest, choixCav);
                IAchoixRemplissage(bdest);
                LancerSimulation();
            }
        }
コード例 #3
0
 private void AddMesBoutons()
 {
     for (int i = 0; i < DD.GetGrille().GetLength(0); i++)
     {
         for (int j = 0; j < DD.GetGrille().GetLength(1); j++)
         {
             this.Controls.Add(DD.GetMonBouton(i, j));
         }
     }
 }
コード例 #4
0
        // ************************* PARAMETRES *********************************

        private void ColorerMesBoutons()
        {
            for (int i = 0; i < DD.GetGrille().GetLength(0); i++)
            {
                for (int j = 0; j < DD.GetGrille().GetLength(1); j++)
                {
                    DD.GetMonBouton(i, j).SetColor(cf, cc);
                    DD.GetMonBouton(i, j).Colorer();
                }
            }
        }
コード例 #5
0
 private void SuppActionBouton()
 {
     for (int ligne = 0; ligne < DD.GetGrille().GetLength(0); ++ligne)
     {
         for (int colonne = 0; colonne < DD.GetGrille().GetLength(1); ++colonne)
         {
             if (ligne >= DD.GetTailleMarge() && ligne < (DD.GetTailleMarge() + DD.GetTailleLig()))
             {
                 if (colonne >= DD.GetTailleMarge() && colonne < (DD.GetTailleMarge() + DD.GetTailleCol()))
                 {
                     SuppActionBouton(DD.GetMonBouton(ligne, colonne));
                 }
             }
         }
     }
 }
コード例 #6
0
        private void Buttons_Click(object sender, EventArgs e) //Evenement "cliquer sur bouton"
        {
            //Les victoires, les défaites, sont liées à l'événement "click" de boutons.
            //Ainsi les conditions de victoire/défaite devront être ici.

            if (sender is monBouton)
            {
                monBouton bdest;
                bdest = sender as monBouton;

                if (DD.IsDispo(bdest.getNumLigne(), bdest.getNumCol()))
                {
                    if (cpClic == 0 && !entamer)
                    {
                        boutonDepart.Visible      = false;
                        boutonRecommencer.Visible = true;
                        monBoutonDep = bdest;
                        PremierDeplacerPiece(bdest);
                        entamer = true;
                    }
                    else
                    {
                        if (piece.IsAtteignable(bdest.getNumLigne(), bdest.getNumCol()))
                        {
                            //deplacement piece
                            monBouton bori = DD.GetMonBouton(jouLig, jouCol);
                            DeplacerPiece(bori, bdest);

                            //boutonRetour
                            if (cpClic > rtClic)
                            {
                                boutonRetour.Visible = true;
                            }
                            else
                            {
                                boutonRetour.Visible = false;
                            }

                            //labelVictoire
                            LabelVict(bdest, piece);
                        }
                    }
                    // labelTest.Text = "CPT=" + cpClic;
                }
            }
        }
コード例 #7
0
        // ******************** BOUTON PANNEAU DEPART **********************
        private void boutonDepart_Click(object sender, EventArgs e)
        {
            if (sender is Button && (cpClic == 0))
            {
                boutonDepart.Visible      = false;
                boutonRecommencer.Visible = true;
                labelVict.Visible         = false;
                victoire = false;
                boutonSolution.Visible = false;

                entamer = true;

                depLig = aleatoire.Next(GetNbrCaseCoteDamier()) + GetNbrCaseMarge();
                depCol = aleatoire.Next(GetNbrCaseCoteDamier()) + GetNbrCaseMarge();

                monBouton bdest = DD.GetMonBouton(depLig, depCol);
                monBoutonDep = bdest;
                PremierDeplacerPiece(bdest);
            }
        }
コード例 #8
0
        //  Parcours de la piece (cavalier) sur l'échiquier à partir d une case donnee
        private void IAchoixRemplissage(monBouton b)
        {
            //initialisation
            InitialisationIAChoix();
            InitialisationDamierNum();

            //simulation
            int ii = b.getNumLigne() - 1;
            int jj = b.getNumCol() - 1;

            piece = new Cavalier(b, choixCav);
            int[]  depi  = piece.GetDepi();
            int [] depj  = piece.GetDepj();
            Euler  euler = new Euler(depi, depj);

            damierNum = euler.getEchec(ii, jj);

            int       rangBouton;
            monBouton btmp;

            for (int i = 0; i < damierNum.GetLength(0); ++i)
            {
                for (int j = 0; j < damierNum.GetLength(1); ++j)
                {
                    // on ne veut pas certaines des 12*12 cases ( 0 et -1)
                    if (damierNum[i, j] >= 1)
                    {
                        //extraction
                        rangBouton = damierNum[i, j]; //rang allant de 1 à 64
                        btmp       = DD.GetMonBouton(i, j);
                        //assignation
                        IAchoix[rangBouton - 1]        = btmp; //(rang-1) allant de 0 à 63
                        IAchoixLigne[rangBouton - 1]   = btmp.getNumLigne();
                        IAchoixColonne[rangBouton - 1] = btmp.getNumCol();
                    }
                }
            }
        }