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); }
// ******************** 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(); } }
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)); } } }
// ************************* 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(); } } }
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)); } } } } }
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; } } }
// ******************** 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); } }
// 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(); } } } }