Bonjour à tous,

Dans le cadre d'un projet, mon binôme et moi-même développons un jeu de type "Mastermind". Nous ne comprenons pas l'explication de notre professeur au sujet de la vérification d'une combinaison de couleur.

Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
String[] combinaison_a_trouver = new string[] { splitted_joueur_2[0], splitted_joueur_2[1], splitted_joueur_2[2], splitted_joueur_2[3] };
                String[] combinaison_jouee = new string[] { splitted_joueur_1_jeu[0], splitted_joueur_1_jeu[1], splitted_joueur_1_jeu[2], splitted_joueur_1_jeu[3] };
 
                int nb_coul = 0, i = 0, j = 0, nb_bien_posee = 0;
                foreach (string splitted_joueur in combinaison_jouee)
                {
                    foreach (string splitted_joueur_jeu in combinaison_a_trouver)
                    {
                        if (splitted_joueur == splitted_joueur_jeu)
                        {
                            nb_coul++;
                            if (i == j) nb_bien_posee++;
                        }
                        j++;
                    }
                    j = 0;
                    i++;
                }
                Console.WriteLine("nombre de couleur = " + nb_coul + " nombre de position = " + nb_bien_posee);

Chaque splitted_joueur_1_jeu[x] correspond à une couleur. J'ai cherché de la doc sur les boucles foreach en c#, mais je ne l'ai pas bien comprise.

Admettons la combinaison a trouver : rouge, rouge, vert, bleu
la combinaison essayée : rouge, rouge, vert, jaune
dans ce cas j'obtiens 3 couleurs bien posées, et nb_coul=5

Je ne comprends pas vraiment à quoi correspond ce 5 ? Quelqu'un pourrait-il m'éclairer ?
J'en profite également pour vous demander si vous avez des suggestions à propos de l'algorithme de vérification (à part toute une série de tests un peu barbare à laquelle j'ai déjà pensé ^^)

Merci d'avance de votre aide,
Cécile