Problème codage MasterMind
Fermé
Shusty
Messages postés
1
Date d'inscription
dimanche 26 octobre 2014
Statut
Membre
Dernière intervention
26 octobre 2014
-
26 oct. 2014 à 16:22
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 26 oct. 2014 à 17:19
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 26 oct. 2014 à 17:19
A voir également:
- Problème codage MasterMind
- Codage ascii - Guide
- Codage binaire - Guide
- Fichier word illisible codage - Guide
- Application codage - Guide
- Controleur de codage/decodage pci ✓ - Forum Pilotes (drivers)
1 réponse
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 26/10/2014 à 17:20
Modifié par fiddy le 26/10/2014 à 17:20
Bonjour,
scanf ("%c", &c);
J'imagine que tu fais ça pour vider le '\n'. Autant faire un simple : getchar(); sinon on se pose la question "A quoi sert ta variable c"...
printf ("Mauvaise valeur, veuilez tapez sur 1 si vous souhaitez commencer le jeu: \n");
scanf ("%d", &choix);
Pourquoi tu ne remets pas un scanf("%c", &c); ici ? Il faut respecter la même logique. Ou mieux, faire une fonction...
Dans SaisieCombinaison(), tu mets combinaison=tab[i];
Ca serait plutôt tab[i]=combinaison...
Mais autant mettre directement : scanf("%d", tab+i);
Dans SaisieCombinaison(), tu mets size = 4;
A quoi ça sert de passer la variable dans SaisieCombinaison(), si tu récris par dessus ? Je te conseille donc d'enlever cette instruction.
D'ailleurs, dans main(), pour plus de portabilité, tu pourrais mettre : SaisieCombinaison(tableau, sizeof tableau); avec tableau qui vaut combinaison1 ou 2 selon ce que tu veux faire.
for (i=0 ; i<25 ; i+=1)
{
printf ("\n");
}
A mettre plutôt dans une fonction "EffaceEcran()". Cela facilite la maintenance et la lisibilité.
if (Noir==4)
Tu ne modifies pas cette variable. Donc, cette condition n'est jamais valable. Il faut que tu envoies cette variable en paramètre de Analyse() en tant que pointeur.
N'oublie pas de mettre un '\n' avant la fin du programme pour flusher le buffer écran, ainsi que le return 0;.
Merci la prochaine fois d'utiliser la balise "code c" pour poster ton code.
Exemple :
<code c>ici tu mets ton code</code>
Cdlt,
Google is your friend
scanf ("%c", &c);
J'imagine que tu fais ça pour vider le '\n'. Autant faire un simple : getchar(); sinon on se pose la question "A quoi sert ta variable c"...
printf ("Mauvaise valeur, veuilez tapez sur 1 si vous souhaitez commencer le jeu: \n");
scanf ("%d", &choix);
Pourquoi tu ne remets pas un scanf("%c", &c); ici ? Il faut respecter la même logique. Ou mieux, faire une fonction...
Dans SaisieCombinaison(), tu mets combinaison=tab[i];
Ca serait plutôt tab[i]=combinaison...
Mais autant mettre directement : scanf("%d", tab+i);
Dans SaisieCombinaison(), tu mets size = 4;
A quoi ça sert de passer la variable dans SaisieCombinaison(), si tu récris par dessus ? Je te conseille donc d'enlever cette instruction.
D'ailleurs, dans main(), pour plus de portabilité, tu pourrais mettre : SaisieCombinaison(tableau, sizeof tableau); avec tableau qui vaut combinaison1 ou 2 selon ce que tu veux faire.
for (i=0 ; i<25 ; i+=1)
{
printf ("\n");
}
A mettre plutôt dans une fonction "EffaceEcran()". Cela facilite la maintenance et la lisibilité.
if (Noir==4)
Tu ne modifies pas cette variable. Donc, cette condition n'est jamais valable. Il faut que tu envoies cette variable en paramètre de Analyse() en tant que pointeur.
N'oublie pas de mettre un '\n' avant la fin du programme pour flusher le buffer écran, ainsi que le return 0;.
Merci la prochaine fois d'utiliser la balise "code c" pour poster ton code.
Exemple :
<code c>ici tu mets ton code</code>
Cdlt,
Google is your friend