コード例 #1
0
 /// <summary>
 /// S'exécute lorsque l'on clique sur le bouton « Bleu ».
 /// </summary>
 /// <param name="sender">Objet appelant</param>
 /// <param name="e">Arguments</param>
 private void btnBleu_Click(object sender, RoutedEventArgs e)
 {
     GestionnaireEcransJeu.ChangerEcran("Placement des pieces", new Dictionary <string, ParametresConstruction>
     {
         { "Couleur joueurs", new ParametresCouleurJoueurs(Couleur.Bleu) }
     });
 }
コード例 #2
0
 /// <summary>
 /// S'exécute lorsque l'on clique sur le bouton « Jouer ».
 /// </summary>
 /// <param name="sender">Objet appelant</param>
 /// <param name="e">Arguments</param>
 private void btnJouer_Click(object sender, RoutedEventArgs e)
 {
     GestionnaireEcransJeu.ChangerEcran(
         "Partie", new Dictionary <string, ParametresConstruction>
     {
         { "Pieces", new ParametresPiecesJoueur(pieces, GrilleJeu.TAILLE_GRILLE_JEU, HAUTEUR_GRILLE_DISPONIBLE) },
         { "Couleur joueurs", ParametresCouleursJoueurs }
     }
         );
 }
        /// <summary>
        /// S'exécute lorsque l'on clique sur le bouton « Recommencer partie ».
        /// </summary>
        /// <param name="sender">Objet appelant</param>
        /// <param name="e">Arguments</param>
        private void btnRecommencerPartie_Click(object sender, RoutedEventArgs e)
        {
            bool bDecision = true;

            if (!EstDebutPartie && MessageBox.Show("Voulez-vous vraiment recommencer la partie ?",
                                                   "Recommencer la partie",
                                                   MessageBoxButton.YesNo,
                                                   MessageBoxImage.Question,
                                                   MessageBoxResult.No) == MessageBoxResult.No)
            {
                bDecision = false;
            }
            if (bDecision)
            {
                GestionnaireEcransJeu.ChangerEcran("Choix couleur");
            }
        }
コード例 #4
0
 /// <summary>
 /// S'exécute lorsque l'on clique sur le bouton « lancer partie ».
 /// </summary>
 /// <param name="sender">Objet appelant</param>
 /// <param name="e">Arguments</param>
 private void btnLancerPartie_Click(object sender, RoutedEventArgs e)
 => GestionnaireEcransJeu.ChangerEcran("Choix couleur");
        /// <summary>
        /// Construction du contrôleur
        /// </summary>
        /// <param name="parametres">Paramètres en provenance du contrôleur précédent</param>
        public void Construire(Dictionary <string, ParametresConstruction> parametres)
        {
            CouleurJoueurs = (ParametresCouleurJoueurs)parametres["Couleur joueurs"];

            grdPartie.IsEnabled = true;

            EstPartieTerminee = false;
            EstDebutPartie    = true;

            GrillePartie = new GrilleJeu(CouleurJoueurs.CouleurJoueur, this);

            ConteneurPiecesCapturees = new ConteneurPiecesCapturees(stpPiecesCapturees);

            // Initialise la liste d'observateurs.
            observers = new List <IObserver <JeuStrategoControl> >();

            // Initialiser l'IA.
            IA = new IA_Stratego(this, CouleurJoueurs.CouleurIA);

            DiviserGrilleJeu();
            ColorerGrilleJeu();
            DefinirZoneSelectionGrille();
            InitialiserSelectionActive();

            if (!PositionnerPieces(((ParametresPiecesJoueur)parametres["Pieces"]).Pieces))
            {
                MessageBox.Show("Nombre de pièces ou couleurs invalide(s).", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
                GestionnaireEcransJeu.ChangerEcran("Accueil");
            }
            InitialiserAffichagePieces();

            #region Tests

            // Code des tests initiaux.

            /*
             * ReponseDeplacement deplacement;
             *
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(0, 6), new Point(0, 5)); // Deplacement
             *
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(0, 5), new Point(-1, 5)); // Coord invalide
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(2, 6), new Point(2, 5)); // Lac
             *
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(2, 6), new Point(3, 6)); // Piece vs sa propre couleur
             *
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(1, 6), new Point(1, 5));
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(1, 5), new Point(1, 4));
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(1, 4), new Point(1, 3)); // Prise par attaquant
             *
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(1, 3), new Point(1, 2));
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(1, 2), new Point(1, 1));
             * // deplacement = GrillePartie.ResoudreDeplacement(new Point(1, 1), new Point(1, 0)); // 2 pièces éliminées
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(1, 1), new Point(2, 1));
             * deplacement = GrillePartie.ResoudreDeplacement(new Point(2, 1), new Point(2, 0)); // Attaquant éliminé
             */

            #endregion

            TourJeu = Couleur.Rouge;

            if (!GrillePartie.VerifierDeplacementsBombes(CouleurJoueurs.CouleurJoueur))
            {
                TerminerPartie();
                MessageBox.Show("Vous avez perdu (aucun mouvement possible)...", "Échec");
            }

            if (!GrillePartie.VerifierDeplacementsBombes(CouleurJoueurs.CouleurIA))
            {
                TerminerPartie();
                MessageBox.Show("Vous avez gagné (aucun mouvement possible)!", "Victoire");
            }

            // Lancer l'IA
            if (CouleurJoueurs.CouleurIA == Couleur.Rouge)
            {
                new Thread(LancerIA).Start();
            }
        }
コード例 #6
0
 private void btnRetour_Click(object sender, RoutedEventArgs e)
 => GestionnaireEcransJeu.ChangerEcran("Accueil");