Probléme programmation du jeu "plus ou moins"
Fermé
Coltazoplo
-
18 avril 2010 à 21:01
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 20 avril 2010 à 21:44
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 20 avril 2010 à 21:44
A voir également:
- Probléme programmation du jeu "plus ou moins"
- 94 jeu - Télécharger - Puzzle & Réflexion
- Jeu zuma - Télécharger - Jeux vidéo
- Application de programmation - Guide
- Jeu du pendu - Télécharger - Vie quotidienne
- Jeu 94 degrés - Télécharger - Divers Jeux
7 réponses
rara-wow
Messages postés
725
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
2 octobre 2010
94
18 avril 2010 à 21:34
18 avril 2010 à 21:34
Bonjour,
Le logiciel a trouvé 4 erreurs :
Ligne 7 il te manque le spécificateur de type ( int, double etc... ),
Ligne 9 il faut déclarer le "nombreMystere" par exemple
Ligne 9 Il faut en fait que tu change en haut de ton code
Par
Ligne 14 j'ai pas trouvé mais j'me creuse la tête ^^'
Le logiciel a trouvé 4 erreurs :
Ligne 7 il te manque le spécificateur de type ( int, double etc... ),
Ligne 9 il faut déclarer le "nombreMystere" par exemple
int nombreMystere = 0;
Ligne 9 Il faut en fait que tu change en haut de ton code
int max = 0;
Par
int MAX = 0;
Ligne 14 j'ai pas trouvé mais j'me creuse la tête ^^'
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
18 avril 2010 à 21:40
18 avril 2010 à 21:40
Bonjour,
En plus de te donner le numéro de lignes des erreurs, ton compilateur te fournit un message qui explique ce qui ne va pas souvent.
A la ligne, const MIN = 1; Tu définis la variable MIN comme constante, mais tu ne précises pas son type. Il faut mettre : const int MIN = 0 ; (si tu souhaites un int).
nombreMystere = (rand() ...
Il faut déclarer nombreMystere... int nombreMystere;
Ensuite, ton utilisation des accolades est à revoir.
Tu refermes après : nombreMystere ton accolade, ce qui finit la fonction main. Tout ce qui est après est donc en dehors de toute fonction.
Je vois après, deux accolades ouvrantes alors qu'il n'y a pas besoin. Les accolades ont un usage bien précis en C.
J'ai pas regardé le reste, mais corrige déjà ceci, et la prochaine fois colle les messages d'erreur de ton compilateur.
Cdlt,
En plus de te donner le numéro de lignes des erreurs, ton compilateur te fournit un message qui explique ce qui ne va pas souvent.
A la ligne, const MIN = 1; Tu définis la variable MIN comme constante, mais tu ne précises pas son type. Il faut mettre : const int MIN = 0 ; (si tu souhaites un int).
nombreMystere = (rand() ...
Il faut déclarer nombreMystere... int nombreMystere;
Ensuite, ton utilisation des accolades est à revoir.
Tu refermes après : nombreMystere ton accolade, ce qui finit la fonction main. Tout ce qui est après est donc en dehors de toute fonction.
Je vois après, deux accolades ouvrantes alors qu'il n'y a pas besoin. Les accolades ont un usage bien précis en C.
J'ai pas regardé le reste, mais corrige déjà ceci, et la prochaine fois colle les messages d'erreur de ton compilateur.
Cdlt,
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
20 avril 2010 à 08:51
20 avril 2010 à 08:51
Petite question ? Pour toi, à quoi ça sert les accolades ? Car j'ai l'impression que tu en mets pour regrouper les instructions ?
Sinon, il faut lire ses messages d'erreur, ils sont souvent bien explicite.
Par exemple : C:\Users\thibaut\Desktop\Calcul\main.c|11|error: 'nombreMystere' undeclared
Signifie qu'à la ligne 11, tu utilises une variable "nombreMystere" qui est non déclarée.
En effet, tu mets : nombreMystere=0; mais de quel type est la variable ? Il faut mettre : type variable; soit int nombreMystere dans ton cas.
Les autres messages d'erreur sont similaires, tu peux donc les corriger de toi-même.
Sinon une erreur que ton compilateur n'a pas signalé car ce n'est pas une erreur de sémantique.
while (nombreMystere = nombreEntrer)
Ceci ne va pas faire tant que : nombreMystere égal à nombreEntrer. L'opérateur de comparaison en C est l'opérateur double égal (==). Le simple égal sert à l'affectation. Donc ton instruction (nombreMystere = nombreEntrer) sera vraie quand nombreMystere différent de 0. Correction : while (nombreMystere == nombreEntrer)
Cette remarque s'applique aussi pour ton if.
Sinon, il faut lire ses messages d'erreur, ils sont souvent bien explicite.
Par exemple : C:\Users\thibaut\Desktop\Calcul\main.c|11|error: 'nombreMystere' undeclared
Signifie qu'à la ligne 11, tu utilises une variable "nombreMystere" qui est non déclarée.
En effet, tu mets : nombreMystere=0; mais de quel type est la variable ? Il faut mettre : type variable; soit int nombreMystere dans ton cas.
Les autres messages d'erreur sont similaires, tu peux donc les corriger de toi-même.
Sinon une erreur que ton compilateur n'a pas signalé car ce n'est pas une erreur de sémantique.
while (nombreMystere = nombreEntrer)
Ceci ne va pas faire tant que : nombreMystere égal à nombreEntrer. L'opérateur de comparaison en C est l'opérateur double égal (==). Le simple égal sert à l'affectation. Donc ton instruction (nombreMystere = nombreEntrer) sera vraie quand nombreMystere différent de 0. Correction : while (nombreMystere == nombreEntrer)
Cette remarque s'applique aussi pour ton if.
rara-wow
Messages postés
725
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
2 octobre 2010
94
18 avril 2010 à 21:19
18 avril 2010 à 21:19
J'suis débutant tout comme toi mais il m'semble reconnaitre le tuto du site du zéro donc je vais tester ton code dessuite :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjours,
Alors, déjà je souhaite à vous remercier de cette aide...
J'ai fait comme vous m'avez dit et j'ai corriger les erreurs maintenant voilà ce qu'il me reste...
||=== Calcul, Debug ===|
C:\Users\thibaut\Desktop\Calcul\main.c||In function 'main':|
C:\Users\thibaut\Desktop\Calcul\main.c|11|error: 'nombreMystere' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|11|error: (Each undeclared identifier is reported only once|
C:\Users\thibaut\Desktop\Calcul\main.c|11|error: for each function it appears in.)|
C:\Users\thibaut\Desktop\Calcul\main.c|23|warning: unused variable 'nombreEntrer'|
C:\Users\thibaut\Desktop\Calcul\main.c|24|warning: unused variable 'nombreMystere'|
C:\Users\thibaut\Desktop\Calcul\main.c|26|warning: unused variable 'coup'|
C:\Users\thibaut\Desktop\Calcul\main.c|33|error: 'niveau' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|36|error: 'max' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|54|error: 'nombreEntrer' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|55|error: 'coup' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|67|error: syntax error before "if"|
||=== Build finished: 8 errors, 3 warnings ===|
Et je vous remet mon code actuel si vous en avez besoin:
Voilà en espérant que cela vous suffira...
Encore merci.
Simple question: fiddy, tu maitrise bien le language C..?
Alors, déjà je souhaite à vous remercier de cette aide...
J'ai fait comme vous m'avez dit et j'ai corriger les erreurs maintenant voilà ce qu'il me reste...
||=== Calcul, Debug ===|
C:\Users\thibaut\Desktop\Calcul\main.c||In function 'main':|
C:\Users\thibaut\Desktop\Calcul\main.c|11|error: 'nombreMystere' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|11|error: (Each undeclared identifier is reported only once|
C:\Users\thibaut\Desktop\Calcul\main.c|11|error: for each function it appears in.)|
C:\Users\thibaut\Desktop\Calcul\main.c|23|warning: unused variable 'nombreEntrer'|
C:\Users\thibaut\Desktop\Calcul\main.c|24|warning: unused variable 'nombreMystere'|
C:\Users\thibaut\Desktop\Calcul\main.c|26|warning: unused variable 'coup'|
C:\Users\thibaut\Desktop\Calcul\main.c|33|error: 'niveau' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|36|error: 'max' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|54|error: 'nombreEntrer' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|55|error: 'coup' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|67|error: syntax error before "if"|
||=== Build finished: 8 errors, 3 warnings ===|
Et je vous remet mon code actuel si vous en avez besoin:
#include <stdio.h> #include <stdlib.h> #include <time.h> int main ( int argc, char** argv ) { { int MAX = 0; const int MIN = 1; srand(time(NULL)); nombreMystere = 0; nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; //Generateur de chiffre } { printf("Salut, c'est le jeu du Plus ou Moins...\n\n"); int nombreEntrer = 0; int nombreMystere = 0; int niveau = 0; int coup = 0; printf("Quel niveau veut-tu jouer??\n\n\n"); printf("Niveau 1\n\n"); printf("Niveau 2\n\n"); scanf("%d", &niveau); printf("Ah, tu as choisi le niveau %d.\n\n", niveau);//choix du niveau } switch(niveau) { case 1: max = 100; break; case 2: max = 500; break; case 3: max = 1000; break; default: printf("Erreur lors du script!\n"); break; } do { printf("Alors, Quel est le chiffre???\n\n"); scanf("%d", &nombreEntrer); coup ++; if (nombreMystere < nombreEntrer) printf("Desole, c'est moins...\n\n"); else if (nombreMystere > nombreEntrer) printf("Desole, c'est plus...\n\n"); else printf("Bien joue!!!\n\n"); }while (nombreMystere = nombreEntrer) if (nombreMystere = nombreEntrer) { printf("Vous avez trouvez le nombre Mystere en %d essai", coup); } return 0; }
Voilà en espérant que cela vous suffira...
Encore merci.
Simple question: fiddy, tu maitrise bien le language C..?
Alors encore merci pour ces réponses...Mais je ne comprend pas ce que veut dire cette erreur:
C:\Users\thibaut\Desktop\Calcul\main.c|32|error: 'niveau' undeclared (first use in this function)| :)??
VOilà et maitenant mes autres erreurs:
C:\Users\thibaut\Desktop\Calcul\main.c||In function 'main':|
C:\Users\thibaut\Desktop\Calcul\main.c|9|warning: unused variable 'nombreEntrer'|
C:\Users\thibaut\Desktop\Calcul\main.c|11|warning: unused variable 'niveau'|
C:\Users\thibaut\Desktop\Calcul\main.c|12|warning: unused variable 'coup'|
C:\Users\thibaut\Desktop\Calcul\main.c|32|error: 'niveau' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|32|error: (Each undeclared identifier is reported only once|
C:\Users\thibaut\Desktop\Calcul\main.c|32|error: for each function it appears in.)|
C:\Users\thibaut\Desktop\Calcul\main.c|38|error: 'MAX' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|56|error: 'nombreEntrer' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|57|error: 'coup' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|60|error: 'nombreMystere' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|69|error: syntax error before "if"|
||=== Build finished: 8 errors, 3 warnings ===|
Voilà, encore merci et a bientôt.
C:\Users\thibaut\Desktop\Calcul\main.c|32|error: 'niveau' undeclared (first use in this function)| :)??
VOilà et maitenant mes autres erreurs:
C:\Users\thibaut\Desktop\Calcul\main.c||In function 'main':|
C:\Users\thibaut\Desktop\Calcul\main.c|9|warning: unused variable 'nombreEntrer'|
C:\Users\thibaut\Desktop\Calcul\main.c|11|warning: unused variable 'niveau'|
C:\Users\thibaut\Desktop\Calcul\main.c|12|warning: unused variable 'coup'|
C:\Users\thibaut\Desktop\Calcul\main.c|32|error: 'niveau' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|32|error: (Each undeclared identifier is reported only once|
C:\Users\thibaut\Desktop\Calcul\main.c|32|error: for each function it appears in.)|
C:\Users\thibaut\Desktop\Calcul\main.c|38|error: 'MAX' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|56|error: 'nombreEntrer' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|57|error: 'coup' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|60|error: 'nombreMystere' undeclared (first use in this function)|
C:\Users\thibaut\Desktop\Calcul\main.c|69|error: syntax error before "if"|
||=== Build finished: 8 errors, 3 warnings ===|
Voilà, encore merci et a bientôt.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
20 avril 2010 à 21:44
20 avril 2010 à 21:44
C:\Users\thibaut\Desktop\Calcul\main.c|32|error: 'niveau' undeclared (first use in this function)| :)??
Ca signifie que la variable niveau est non déclarée.
C'est exactement la même erreur que nombreMystere undeclared.
Tu n'as toujours pas répondu à ma question. Pour toi à quoi sert les accolades ?
Si je te pose la question, c'est que tu utilises des accolades à tort. Tu n'as pas besoin de rouvrir des accolades dans ton main.
Ensuite tu as déclaré tes variables comme je t'ai demandé, sauf que tu l'as fait au mauvais endroit. Il faut le faire juste après le main.
Ca signifie que la variable niveau est non déclarée.
C'est exactement la même erreur que nombreMystere undeclared.
Tu n'as toujours pas répondu à ma question. Pour toi à quoi sert les accolades ?
Si je te pose la question, c'est que tu utilises des accolades à tort. Tu n'as pas besoin de rouvrir des accolades dans ton main.
Ensuite tu as déclaré tes variables comme je t'ai demandé, sauf que tu l'as fait au mauvais endroit. Il faut le faire juste après le main.