Probléme programmation du jeu "plus ou moins"

Coltazoplo -  
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjours, voila mon code et mon probléme...
C'est un jeu ou il faut trouver le bon nombre...

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char** argv )
{
int max = 0;
const MIN = 1;
srand(time(NULL));
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;
 }












Alors j'ai des problémes au lignes 7, 9(4erreurs),6,14,24(7 erreurs),25(2erreurs),26(3erreurs),27(7erreurs),28(3erreurs),,51(3erreurs), et 52....Je sais je ne suis pas terrible en programmation mais j'ai la motivation =P....
Si vous avez besoin de détails par rapport au erreurs ne vous génez pas....Je vais quand même pas me plaindre si vous voulez m'aider....
Voilà merci.

Ps: Je ne vous demande pas de juste corriger mes erreurs mais aussi de me les expliquées car j'aimerais progresser....

Merci d'avance =)
A voir également:
  • Probléme programmation du jeu "plus ou moins"
  • 94 degrés jeu - Télécharger - Divers Jeux
  • Jeu java - Télécharger - Jeux vidéo
  • 94 jeu - Télécharger - Puzzle & Réflexion
  • Jeu zuma - Télécharger - Jeux vidéo
  • Jeu google - Guide

7 réponses

rara-wow Messages postés 959 Statut Membre 94
 
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

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 ^^'
1
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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,
1
Colta
 
Ok, merci, je corrige sa demain soir et je colle mes erreurs aussi... Bon j'y vais merci encore =)
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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.
1
rara-wow Messages postés 959 Statut Membre 94
 
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 :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Coltazoplo
 
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:

#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..?
0
Coltazoplo
 
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.
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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.
0