static void Main(string[] args) { Console.WriteLine("Bonjour, vous aller jouer ****Master Technobel mind****"); Console.WriteLine("Régle du jeu : En debut de partie, parmi 8 couleurs, l'ordinateur sélectionne 4 couleurs différentes pour commencer"); foreach (string x in Couleurs.GetNames(typeof(Couleurs))) //liste des couleurs par le nom **Couleurs** { Console.BackgroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), x); Console.BackgroundColor = Enum.Parse <ConsoleColor>(x); Console.WriteLine($"{(int)Console.BackgroundColor} {x}"); } Console.WriteLine("Entrer 4 différents nombres de 1 à 8"); // test de l'aléatoire des nombres de 1 à 8 Random rnd = new Random(); int[] target = new int[4]; while (target.Distinct().Count() != 4) //random en route, l'algo choisi 4 différents nombres { for (int x = 0; x < 4; x++) { target[x] = rnd.Next(8); } } int attempts = 0; while (true) { string userInput = Console.ReadLine(); // Attente du joueur qui tape 4 nombres attempts++; int[] userNumber = userInput.Select(ValueTuple => ValueTuple - '0').ToArray(); int countCorrect = 0; int positionCorrect = 0; for (int c = 0; c < 4; c++) //verification des nombres place juste { if (target.Contains(userNumber[c])) { countCorrect++; } if (target[c] == userNumber[c]) { positionCorrect++; } } if (positionCorrect == 4) //4 nombres juste il sort de la boucle par break { Console.WriteLine($"tous les nombres sont correct ! Nombre de tentatives : {attempts} "); break; } Console.WriteLine($"{countCorrect} correct mais pas en bon endroit"); Console.WriteLine($"{positionCorrect} au bon endroit. Essayez à nouveau: "); } }
static void Main(string[] args) { List <Couleurs> listeOrdi = new List <Couleurs>(); //collection qui va servir à stocker les couleurs de l'ordinateur List <Couleurs> listeUser = new List <Couleurs>(); //collection qui va servir à stocker les couleurs de l'utilisateur listeOrdi.AddRange(new Couleurs[] { Couleurs.Bleu, Couleurs.Mauve, Couleurs.Orange, Couleurs.Vert }); //ajouter 4 couleurs dans collection ordi Console.WriteLine("Bonjour, vous allez affronter l'ordinateur au jeu du Mastermind."); Console.WriteLine("Règle du jeu : En début de partie, parmi 8 couleurs, l’ordinateur sélectionne 4 couleurs différentes pour composer un code couleur ordonné. Ensuite, le joueur se doit de définir lui aussi un code de 4 couleurs dans le but de deviner celui de l’ordinateur. Si le joueur trouve le code dans le bon ordre, il gagne.Par contre, si celui - ci commet une erreur, l’ordinateur se doit de donner des indices."); int bonneCouleur = 0; int bonEndroit = 0; Console.WriteLine("Voici les 8 couleurs disponibles, veuillez en choisir 4. Encodez le chiffre correspondant à la couleur choisie, puis appuyez sur enter et recommencer jusqu'à ce que 4 chiffres soient encodés"); do { if (listeUser.Count == 4) //si liste remplie pour que fasse traitement que après transmis infos { if (bonneCouleur > 0) { Console.WriteLine($"{bonneCouleur} couleur(s) n'est/ne sont pas à sa/leur place"); } if (bonEndroit == 0 && bonneCouleur == 0) { Console.WriteLine("Vous n'avez trouvé aucune couleur."); } if (bonEndroit > 0) { Console.WriteLine($"{bonEndroit} couleur(s) est/sont au bon endroit"); //indices } Console.WriteLine("Choisissez à nouveau 4 couleurs. Encodez le chiffre correspondant à la couleur choisie, puis appuyez sur enter et recommencer jusqu'à ce que 4 chiffres soient encodés"); listeUser.Clear(); //vider la collection bonEndroit = 0; //remettre à 0 pour nouveaux indices bonneCouleur = 0; //Console.Clear(); //Clear la console d'affichage } int nb = 1; foreach (string x in Couleurs.GetNames(typeof(Couleurs))) { Console.WriteLine($"{nb} {x}"); //imprime l'énumération (les 8 couleurs) nb++; } int a = 0; while (a <= 3) { bool b_x = int.TryParse(Console.ReadLine(), out int x); //utilisateur entre sa couleur avec chiffre correspondant if (x >= 1 && x <= 8) { listeUser.Add((Couleurs)x); //ajouter 4 couleurs dans collection user a++; //n'ajoute i que si entré dans collection } else if (!(b_x)) { Console.WriteLine("Ceci n'est pas un chiffre, veuillez recommencer"); } else { Console.WriteLine("Ce chiffre ne correspond à aucune couleur, veuillez recommencer"); } } Console.WriteLine("Voici les 4 couleurs que vous avez choisies:"); for (int i = 0; i <= 3; i++) //parcourir collection { Console.WriteLine(listeUser[i]); //afficher les 4 couleurs choisies à l'utilisateur } for (int i = 0; i <= 3; i++) { for (int j = 0; j <= 3; j++) //parcourir toutes combinaisons possibles { if ((listeUser[i] == listeOrdi[j]) && (i != j)) { bonneCouleur++; //vérifie si utilise bonne couleur } } if (listeUser[i] == listeOrdi[i]) { bonEndroit++; //vérifie si élément au bon endroit } } } while (bonEndroit < 4); //tant que pas trouvé les 4 bonnes couleurs Console.WriteLine("Vous avez gagné"); }