示例#1
0
        public Plateau(Partie partie, int largeur, int hauteur, int mines)
        {
            this.partie      = partie;
            this.largeur     = largeur;
            this.hauteur     = hauteur;
            this.mines       = mines;
            this.restantes   = mines;
            this.mineAPlacer = mines;

            cases = new Case[largeur, hauteur];

            //Initialise les cases du plateau
            for (int y = 0; y < hauteur; y++)
            {
                for (int x = 0; x < largeur; x++)
                {
                    bool isMine = false;
                    int  test   = des.Next(0, (hauteur * largeur) - ((y * largeur) + x));
                    if (test < mineAPlacer)
                    {
                        isMine = true;
                        mineAPlacer--;
                    }
                    cases[x, y] = new Case(this, x, y, isMine); //Faire en sorte de minée aléatoirement
                }
            }
            //Créé les liaisons
            for (int y = 0; y < hauteur; y++)
            {
                for (int x = 0; x < largeur; x++)
                {
                    // connection avec les voisines
                    int N = hauteur - 1;

                    if (x > 0 && y > 0)
                    {
                        Connecter(cases[x, y], cases[x - 1, y - 1]);
                    }

                    if (x > 0)
                    {
                        Connecter(cases[x, y], cases[x - 1, y]);
                    }

                    if (y > 0)
                    {
                        Connecter(cases[x, y], cases[x, y - 1]);
                    }

                    if (x > 0 && y < N)
                    {
                        Connecter(cases[x, y], cases[x - 1, y + 1]);
                    }
                }
            }
        }
示例#2
0
        /// <summary>Démarre l'exécution du jeu de démineur.</summary>
        public void Demarrer()
        {
            bool sortie = true; // Gère la sortie du jeu de démineur
            bool continuer;

            while (sortie)
            {
                MenuPrincipal.EffaceEcran();
                switch (MenuPrincipal.AfficherMenu())
                {
                case "1":             // Commencer une partie
                    Partie partie = null;
                    continuer = true; // Gère la sortie du menu de parties

                    while (continuer)
                    {
                        MenuPrincipal.EffaceEcran();
                        switch (MenuPrincipal.AfficherCommencerPartie())
                        {
                        case "1":                  // Partie avec une joueur humain
                            if (joueurs.Count > 0) // Si il a asser de joueurs pour créer une partie
                            {
                                partie    = new Partie(SelectionJoueur(), SelectionDifficulte(), SelectionTaille());
                                continuer = false;
                            }
                            else
                            {
                                MenuPrincipal.ManqueJoueurs();
                                MenuPrincipal.AttenteUtilisateur();
                            }
                            break;

                        case "2":         // Partie avec l'intelligence artificielle
                            partie    = new Partie(SelectionDifficulte(), SelectionTaille());
                            continuer = false;
                            break;

                        case "3":         // Retour
                            continuer = false;
                            break;

                        default:         // Entrée incorrecte
                            MenuPrincipal.EntreeIncorrecte();
                            MenuPrincipal.AttenteUtilisateur();
                            break;
                        }
                    }

                    if (partie != null)
                    {
                        partie.Jouer();
                        MenuPrincipal.AttenteUtilisateur();
                    }
                    break;

                case "2":             // Gestion des joueurs
                    continuer = true; // Gère la sortie du menu de gestion des joueurs
                    while (continuer)
                    {
                        MenuPrincipal.EffaceEcran();
                        switch (MenuPrincipal.AfficherGestionJoueurs())
                        {
                        case "1":         // Créer un joueur
                            NouveauJoueur();
                            continuer = false;
                            break;

                        case "2":         // Supprimer un joueur
                            if (joueurs.Count > 0)
                            {
                                SupprimerJoueur();
                                continuer = false;
                            }
                            else
                            {
                                MenuPrincipal.ManqueJoueurs();
                                MenuPrincipal.AttenteUtilisateur();
                            }
                            break;

                        case "3":         // Retour
                            continuer = false;
                            break;

                        default:         // Entrée incorrecte
                            MenuPrincipal.EntreeIncorrecte();
                            MenuPrincipal.AttenteUtilisateur();
                            break;
                        }
                    }
                    break;

                case "3":     // Afficher le classement
                    MenuPrincipal.EffaceEcran();
                    AfficherTopClassement();
                    MenuPrincipal.AttenteUtilisateur();
                    break;

                case "4":     // Sauvegarder et quitter
                    MenuPrincipal.EffaceEcran();
                    if (MenuPrincipal.Confirmer(MenuPrincipal.ValidationQuitter()))
                    {
                        SauvegarderJoueurs();
                        sortie = false;
                    }
                    break;
                }
            }
        }