コード例 #1
0
 private void CibleSup(monBouton b, Cavalier p)
 {
     for (int i = 0; i < p.GetDepi().GetLength(0); ++i)
     {
         DD.UnSetButtonCible(b, piece.GetDepi()[i], piece.GetDepj()[i]);
     }
 }
コード例 #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 bool IsRestCibleDispo(monBouton bori, Cavalier p)
 {
     for (int i = 0; i < p.GetDepi().GetLength(0); ++i)
     {
         if (DD.IsDispoCible(bori, p.GetDepi()[i], p.GetDepj()[i]))
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #4
0
        private void Buttons_Click(object sender, EventArgs e)
        {
            if (sender is monBouton && (cpClic == 0) && !pause)
            {
                if (NbrPas == (-1) || ChoixDuree == (-1))
                {
                    DialogResult reponse = MessageBox.Show(
                        "La sélection du nombre de pas et de la durée de la pause est incorrecte." +
                        "Veuillez recommencer la partie avec des sélections correctes.",
                        "Erreur de saisie",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error,
                        MessageBoxDefaultButton.Button3,
                        MessageBoxOptions.RightAlign);
                }
                else
                {
                    monBouton b = sender as monBouton;

                    ++cpClic;

                    // b.Enabled = false;
                    depLig = b.getNumLigne();
                    depCol = b.getNumCol();
                    if (demo)
                    {
                        boutonPause.Visible = false;

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

                        label1.Visible         = false;
                        ListChoixDuree.Visible = false;
                        ListNbrPas.Visible     = false;
                    }
                    else
                    {
                        boutonPause.Visible = true;

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

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


                    piece = new Cavalier(b, choixCav);
                    IAchoixRemplissage(b);
                    LancerSimulation();
                }
            }
        }
コード例 #5
0
        private void PremierDeplacerPiece(monBouton bdest)
        {
            if (DD.IsDispo(bdest.getNumLigne(), bdest.getNumCol()))
            {
                depLig = bdest.getNumLigne();
                depCol = bdest.getNumCol();

                piece = new Cavalier(bdest, choixCav);

                bdest.ImageAj(piece.GetImg());

                DD.FermerDispo(depLig, depCol);

                //CibleAj(bdest, piece);
            }
        }
コード例 #6
0
        private void LabelVict(monBouton b, Cavalier p)
        {
            labelVict.Text = "";
            if (IsRestCibleDispo(b, p))
            {
                labelVict.Text = "";
            }
            else
            {
                if (DD.IsToutOccupe())
                {
                    labelVict.Text = "VICTOIRE !";
                    victoire       = true;
                }
                else
                {
                    labelVict.Text = "DEFAITE...";
                    victoire       = false;
                }
                switch (cpRtClic)
                {
                case 0:
                    labelVict.Text += "\n(avec aucun retour)";
                    break;

                case 1:
                    labelVict.Text += "\n(avec un seul retour)";
                    break;

                default:
                    labelVict.Text += "\n(avec " + cpRtClic + " retours)";
                    break;
                }
                labelVict.Text   += "\nScore = " + cpClic + " pas.";
                labelVict.Visible = true;
                if (!victoire)
                {
                    boutonSolution.Visible = true;
                }
            }
        }
コード例 #7
0
        private void PremierDeplacerPiece(monBouton bdest)
        {
            if (DD.IsDispo(bdest.getNumLigne(), bdest.getNumCol()))
            {
                depLig = bdest.getNumLigne();
                depCol = bdest.getNumCol();

                this.piece = new Cavalier(bdest, choixCav);

                bdest.ImageAj(piece.GetImg());

                DD.FermerDispo(depLig, depCol);

                jouLig = depLig;
                jouCol = depCol;

                dpl[cpClic] = bdest;
                ++cpClic;

                CibleAj(bdest, this.piece);
            }
        }
コード例 #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();
                    }
                }
            }
        }