Problèmes de tableaux - C - Programmation
Marsh Posté le 14-05-2008 à 11:11:04
Bonjour,
while(Res!=FIN)
Ca c'est douteux comme comparaison de tableaux.
A mon avis (jamais fait de master mind moi) dans vérifier, tu devrais d'abord vérifier si le chiffre est bien placé avant de tout parcourir.
Je m'explique:
faire quelque chose genre:
Code :
|
Marsh Posté le 14-05-2008 à 16:04:23
Ah oui merci beaucoup je vais essayer comme tu dis.
Je savais pas du tout comment comparer deux tableaux alors j'ai essayé plusieures façons et celle là avait l'air de marcher...
Marsh Posté le 14-05-2008 à 16:46:30
noamaq a écrit : Ah oui merci beaucoup je vais essayer comme tu dis. |
Celle ci ne fonctionne pas du tout.
exemple:
Code :
|
En fait tu compares les adresses des tableaux quand tu fais a!=FIN . Comme les tableaux sont différents, leurs adresses le seront toujours elles aussi.
Tu dois vérifier tous les éléments de ton tableau pour savoir s'il est bien rempli.
genre
Code :
|
tu peux aussi stocker les résultats dans un tableau de char avec par exemple
- => faux
# => mal placé
$ =>bien placé
et un \0 à la fin de ton tableau
ensuite tu peux utiliser strcmp pour savoir si le joueur a gagné
if (strcmp(tableau, "$$$$$" )==0)
gagné();
Marsh Posté le 14-05-2008 à 23:21:14
Oooh. Je te remercie infiniment pour toutes tes expliquations!
Je n'avais pas compris que je comparais les adresses. Je me suis cassé la tête en voulant comparer des chiffres et je n'ai pas du tout pensé à les utiliser en tant que caractères.
Bon, je vais tout recommencer demain et j'espère que je serai moins bête la prochaine fois...
Merci encore!
Marsh Posté le 15-05-2008 à 16:05:51
Maintenant j'ai réussi.
Merci beaucoup pour ces idées intelligentes! J'espère qu'un jour moi aussi je pourrai aider les autres...(je sais, c'est pas pour si tôt).
Je me suis un peu embrouillée avec les caractères, donc je les ai laissés tomber.
Juste pour savoir, si je dois comparer un jour des tableaux de grande taille, ça risque pas de poser problème en faisant élément par élément?
Marsh Posté le 16-05-2008 à 13:40:13
Si c'est long, surtout si les tableaux sont identiques ou si la différence se fait vers la fin.
Peut-etre qu'il existe une fonction qui compare le contenu de 2 zones mémoire de façon optimisée...
Marsh Posté le 14-05-2008 à 10:52:51
Bonjour à ceux qui passeront par ici. ^^
Je suis en train de me battre avec un devoir depuis plusieures semaines (pas en continu), et plusieurs sujets dans le forum m'ont déjà aidée à avancer, donc merci!
Je ne suis pas très douée, je m'excuse d'avance si mes questions sont trop bêtes.
Le programme à faire est une version simple du mastermind :
5 chiffres, et comme réponse : 2 si bien placé, 1 si présent mais mal placé et 0 sinon.
Voici ce à quoi je suis arrivée :
J'espère que ce n'est pas trop fouillis... mon problème se situe dans la fonction "vérifier", et je commence à être à court d'idées pour l'améliorer.
J'ai enlevé la partie pour avoir un zéro, parce qu'en la laissant, il m'en affichait cinq. Je suppose que je l'avais mal placée dans les boucles, mais je ne vois pas comment la mettre ailleurs.
J'avais aussi essayé d'initialiser la réponse à cinq zéros dans le main et de la changer ensuite avec la fonction, ... sans grands résultats.
Je pense qu'en ayant trois tableaux dans la fonction, ça marcherait, mais j'ai peur de tout compliquer.
(Il n'y a pas de message d'erreur pour si l'utilisateur entre un chiffre qui n'est pas entre 1 et 8, car c'est moi l'utilisateur pour le moment.)
Merci si quelqu'un parvient à m'éclairer!
Si jamais vous avez autre chose à faire, aucun soucis, je pourrais toujours recommencer en m'inspirant de se que d'autres personnes de ma classe ont fait, mais je préfèrerais quand même comprendre mes erreurs et réussir mon propre programme. ^^