Comparer deux tableau en C (master mind)
Résolu/Fermé
mari_94
Messages postés
6
Date d'inscription
vendredi 20 avril 2018
Statut
Membre
Dernière intervention
18 novembre 2018
-
Modifié le 20 avril 2018 à 14:41
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 20 avril 2018 à 15:54
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 20 avril 2018 à 15:54
A voir également:
- Comparer deux tableaux en c
- Fusionner deux tableaux excel - Guide
- Tableaux croisés dynamiques - Guide
- Deux ecran pc - Guide
- Itinéraire google map entre deux adresses - Guide
- Deux comptes whatsapp - Guide
1 réponse
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié le 20 avril 2018 à 11:51
Modifié le 20 avril 2018 à 11:51
Salut mari_94,
Une façon de faire est, lorsque tu as traité une position, d'utiliser un "drapeau", c'est à dire une annotation ou un marquage, de façon à ne pas la traiter de nouveau.
Par exemple, si tes couleurs sont représentées par des entiers naturels, tu pourrais mettre -1 à l'emplacement traité, ou changer ce nombre en nombre négatif, ce qui te permettra de reconnaître et sauter les emplacements ainsi marqués lors de tes vérifications suivantes.
Note aussi que si un pion est bien placé, cela ne sert à rien de reparcourir les pions du début pour les vérifier par rapport à celui-là, qui est, par définition, traité. La 2ème boucle
Dal
Une façon de faire est, lorsque tu as traité une position, d'utiliser un "drapeau", c'est à dire une annotation ou un marquage, de façon à ne pas la traiter de nouveau.
Par exemple, si tes couleurs sont représentées par des entiers naturels, tu pourrais mettre -1 à l'emplacement traité, ou changer ce nombre en nombre négatif, ce qui te permettra de reconnaître et sauter les emplacements ainsi marqués lors de tes vérifications suivantes.
Note aussi que si un pion est bien placé, cela ne sert à rien de reparcourir les pions du début pour les vérifier par rapport à celui-là, qui est, par définition, traité. La 2ème boucle
forimbriquée ne devrait s'exécuter que si le test "bien placé ?" échoue (donc avec un
elseaprès ce
if). Si le pion est bien placé, tu le notes en incrémentant ta variable et tu places ton drapeau sur cet emplacement, et tu passes au pion suivant, c'est tout.
Dal
Modifié le 20 avril 2018 à 14:41
donc si j'ai bien compris :
20 avril 2018 à 12:14
"1 pions bien placé" ( donc ok)
mais "2 pions mal placés" alors qu'il y en a 3...
je ne comprend pas pourquoi
Modifié le 20 avril 2018 à 13:48
Cependant tu devrais marquer les emplacements traités dans p, plutôt que t (ou dans les deux, mais cela complexifie sans que cela soit vraiment nécessaire). Dans le else, tu ne testes pas si l'emplacement que tu examines a déjà été traité. Tu ne te sers donc pas du marqueur. Tu dois aussi marquer dans cette partie la position traitée dans les deux tableaux.
je pense aussi qu'il faudrait probablement faire deux passes... ou tester que les pions en avant de i ne sont pas des pions bien placés sur leurs positions avant d'en déduire que la position en question peut être comptée pour ton décompte "mal placés".
20 avril 2018 à 14:04
Modifié le 20 avril 2018 à 14:33
- tu traites d'abord les pions bien placés : une seule boucle suffit, en marquant les pions traités dans p et t
- ensuite, tu traites les pions mal placés, c'est à dire que : pour chaque couleur restante dans t, tu dénombres les couleurs existantes non traitées dans p, en marquant là aussi les pions traités dans p et t
Sur cette partie, il te faudra deux boucles imbriquées. Comme tu y compares des couleurs restantes, il ne faudra pas oublier d'exclure les positions déjà marquées comme traitées, histoire que les -1 ne soient pas comparés à tort.