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