Jeu dallumette en langage C
Fermé
popo42
-
2 déc. 2009 à 17:01
Emmanuel Delahaye Messages postés 107 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 17 juillet 2019 - 2 déc. 2009 à 17:31
Emmanuel Delahaye Messages postés 107 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 17 juillet 2019 - 2 déc. 2009 à 17:31
A voir également:
- Jeu dallumette en langage C
- 94 jeu - Télécharger - Puzzle & Réflexion
- Jeu zuma - Télécharger - Jeux vidéo
- Langage binaire - Guide
- Jeu 94 degrés - Télécharger - Divers Jeux
- Logo jeu - Télécharger - Jeux vidéo
2 réponses
Emmanuel Delahaye
Messages postés
107
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
17 juillet 2019
7
2 déc. 2009 à 17:31
2 déc. 2009 à 17:31
"mon programme compile en silence"
Vraiment ?
Détails ici : http://www.bien-programmer.fr/codage.php#cfg_compilo
Je rappelle qu'une variable locale n'est pas initialisée par défaut. Sa valeur est donc indéterminée. Il faut donc donner une valeur initiale correcte à 'nb'. Idem dans main() et avec 'b'.
ce code n'a aucun sens. L'affichage (printf()) est inconditionnel. En effet, la seule action soumise à condition est une action 'vide' (;). Tu veux probablement :
rand() retourne un nombre entre 0 et RAND_MAX. C'est bien ça que tu veux ?
http://www.bien-programmer.fr/notes.php#rand
En exécutant, j'obtiens :
Je passe donc un parametre (5) et j'ai le même résultat. Visiblement, la condition
exige au moins 2 paramètres. Le texte de la fonction 'usage' est donc incomplet (à moins que la fonction de contrôle ne soit buggée...).
Pour savoir si le comportement est conforme aux attentes, il faudrait que les attentes soient clairement définies. Où est la spécification ? Où est l'analyse ?
Vraiment ?
-------------- Build: Debug in hello --------------- Compiling: main.c Linking console executable: bin\Debug\hello.exe C:\dev\hello\main.c: In function `coup_uti': C:\dev\hello\main.c:12: warning: 'nb' might be used uninitialized in this function C:\dev\hello\main.c: In function `main': C:\dev\hello\main.c:102: warning: empty body in an if-statement C:\dev\hello\main.c:41: warning: 'nb' might be used uninitialized in this function Output size is 20.96 KB Process terminated with status 0 (0 minutes, 3 seconds) 0 errors, 3 warnings
Détails ici : http://www.bien-programmer.fr/codage.php#cfg_compilo
void coup_uti (int nb_allumettes, int trait) { /*pour l'utilisateur */ int nb; if (trait == 0) { /*trait= nb d'allumette enlevé */ while (nb != 1 || nb != 2)
Je rappelle qu'une variable locale n'est pas initialisée par défaut. Sa valeur est donc indéterminée. Il faut donc donner une valeur initiale correcte à 'nb'. Idem dans main() et avec 'b'.
if (b == 1); /*Marqueur de "dernier joueur" a avoir retire la ou les allumettes ce qui nous servira a la fin pour afficher le vainqueur.*/ printf ("Vouz gagnez !");
ce code n'a aucun sens. L'affichage (printf()) est inconditionnel. En effet, la seule action soumise à condition est une action 'vide' (;). Tu veux probablement :
if (b == 1) { /* Marqueur de "dernier joueur" a avoir retire * la ou les allumettes ce qui nous servira * a la fin pour afficher le vainqueur. */ printf ("Vouz gagnez !"); }
rand() retourne un nombre entre 0 et RAND_MAX. C'est bien ça que tu veux ?
http://www.bien-programmer.fr/notes.php#rand
En exécutant, j'obtiens :
Usage C:\dev\hello\bin\Debug\hello.exe <nb_allumettes> Process returned -1 (0xFFFFFFFF) execution time : 0.017 s Press any key to continue.
Je passe donc un parametre (5) et j'ai le même résultat. Visiblement, la condition
/* decodage et controle des arguments*/ if (argc < 3) { Usage (argv[0]); exit (-1); }
exige au moins 2 paramètres. Le texte de la fonction 'usage' est donc incomplet (à moins que la fonction de contrôle ne soit buggée...).
Pour savoir si le comportement est conforme aux attentes, il faudrait que les attentes soient clairement définies. Où est la spécification ? Où est l'analyse ?