/// <summary> /// Méthode permettant de vider la grille tout en respectant le principe d'unicité /// </summary> /// <returns>Une grille valide ayant une seule solution</returns> public static Grille ViderGrilleUnique(int nbEssais) { Grille grille = GenerateurGrille.Generation(); grille.Solution = new Grille(grille); for (int i = 1; i < nbEssais; i++) { Random rnd = new Random(); Thread.Sleep(10); int nb = rnd.Next(1, 81); TesterCase(grille, nb); } return(grille); }
/// <summary> /// Permet de générer la grille et de mettre des cases vides /// </summary> /// <param name="nbCases">Nombre de cases à afficher</param> /// <returns>Une grille avec des 0 sur les cases à deviner</returns> public static Grille GenererGrilleAléatoire(int nbCases) { Grille grille = GenerateurGrille.Generation(); for (int i = 1; i <= 81 - nbCases; i++) { int x; int y; do { Random rnd = new Random(); x = rnd.Next(9); y = rnd.Next(9); } while (grille.GetCaseValue(x, y) == 0); grille.SetCaseValue(x, y, 0); grille.GetCase(x, y).IsChecked = true; } return(grille); }