Пример #1
0
        /// <summary>
        /// S'exécute lorsque l'on clique sur le bouton « Aléatoire ».
        /// </summary>
        /// <param name="sender">Objet appelant</param>
        /// <param name="e">Arguments</param>
        private void btnAleatoire_Click(object sender, RoutedEventArgs e)
        {
            btnAleatoire.IsEnabled = false;
            for (int x = 0; x < GrilleJeu.TAILLE_GRILLE_JEU; x++)
            {
                for (int y = 0; y < HAUTEUR_GRILLE_DISPONIBLE; y++)
                {
                    if (pieces[x, y] == null) // On ajoute une pièce aléatoire à chaque case vide
                    {
                        ReponseGenerateurPiece piece = selectionneurPieces.GenererPieceAleatoire(ParametresCouleursJoueurs.CouleurJoueur);

                        EstSelection = false;
                        selectionneurPieces.CacherInterface();

                        pieces[x, y] = new PieceAffichable(piece.Piece, piece.Affichage, piece.Nom);
                        pieces[x, y].Modifier((Piece Piece, Rectangle Affichage, string Nom) =>
                        {
                            Affichage.MouseLeftButtonUp += (object pieceAffichable, MouseButtonEventArgs evenement) =>
                            {
                                selectionneurPieces.RedonnerPiece(Nom);
                                grdPlateauJeu.Children.Remove(Affichage);

                                pieces[Grid.GetColumn((Rectangle)pieceAffichable),
                                       Grid.GetRow((Rectangle)pieceAffichable)] = null;
                                btnJouer.IsEnabled = false;
                                if (selectionneurPieces.NombresTypesPiecesRestants() == SelectionneurPieces.NB_TYPES_PIECES)
                                {
                                    btnVider.IsEnabled = false;
                                }
                                btnAleatoire.IsEnabled = true;
                            };
                        });

                        Grid.SetColumn(pieces[x, y].Affichage, x);
                        Grid.SetRow(pieces[x, y].Affichage, y);

                        grdPlateauJeu.Children.Add(pieces[x, y].Affichage);
                    }
                }
            }

            btnJouer.IsEnabled = true;
            btnVider.IsEnabled = true;
        }
Пример #2
0
        /// <summary>
        /// Demander une pièce aléatoire
        /// </summary>
        /// <param name="couleur">Couleur de la pièce</param>
        /// <returns></returns>
        public ReponseGenerateurPiece GenererPieceAleatoire(Couleur couleur)
        {
            Random aleatoire = new Random(Guid.NewGuid().GetHashCode());
            int    index     = aleatoire.Next(generateurs.Count);

            ReponseGenerateurPiece reponse = new ReponseGenerateurPiece(generateurs[index].Generateur.GenererPiece(couleur), new Rectangle()
            {
                Fill   = new ImageBrush(new BitmapImage(new Uri(generateurs[index].Affichage.Uri, UriKind.Relative))),
                Cursor = Cursors.Hand
            }, generateurs[index].NomSprite);

            if (generateurs[index].Generateur.Nombre == 0)
            {
                generateurs[index].Affichage.Control.Visibility       = Visibility.Collapsed;
                generateurs[index].Affichage.LabelNbPieces.Visibility = Visibility.Collapsed;

                generateursVides.Add(generateurs[index]);
                generateurs.Remove(generateurs[index]);
            }

            return(reponse);
        }