Пример #1
0
        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: ");
            }
        }
Пример #2
0
        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é");
        }