Besoin d'aide pour un programme en console en C

Voir le sujet précédent Voir le sujet suivant Aller en bas

Besoin d'aide pour un programme en console en C

Message par 3lazer4 le Ven 29 Avr 2011 - 9:47

Salut !

Je suis le tuto du site du Zer0 pour le C et j'ai réussi à faire le programme de plus ou moins du premier TP.

Le truc, c'est qu'à la fin, il montre ds trucs qu'on pourrait rajouter. Donc j'ai mis une boucle avec un booléen pour que le jeu demande si on veut recommencer mais je n'arrive pas à insérer un menu avec 3 niveaux qu'on choisirai au début (1 er niveau : 1 -> 20) (2 eme niveau : 1 -> 50) (3eme niveau -> 1 -> 100).

Voilà l'adresse du TP : http://www.siteduzero.com/tutoriel-3-13976-tp-plus-ou-moins-votre-premier-jeu.html

Voici mon code :
Spoiler:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{



        srand(time(NULL));


        int nombreMystere = 0;
        int nombreJoueur = 0;
        int compteur = 0;
        int rejouer = 1;
        int MAX = 0, MIN = 1;
        int niveau = 0;

        while (rejouer == 1)
        {

        printf("***** PLUS OU MOINS *****\n\n\n\n");
        printf("niveau 1 (0 -> 20)\n\n");
        printf("niveau 2 (0 -> 50)\n\n");
        printf("niveau 3 (0 -> 100)\n\n\n");
        printf ("Choisissez un niveau de difficulte : ");
        scanf("%d", &niveau);


        if (niveau == 1)
          {
              int MAX = 20;
              printf("nombre max. = %d\n\n\n", MAX);
          }
        else if (niveau == 2)
          {
              int MAX = 50;
              printf("nombre max. = %d\n\n\n", MAX);
          }
        else if (niveau == 3)
          {
              int MAX = 100;
              printf("nombre max. = %d\n\n\n", MAX);
          }
        else
          {
              printf("Vous vous etes trompe de chiffre ^^");
          }

          nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;



            while (nombreJoueur != nombreMystere)
            {



                printf("Choisissez un nombre : ");
                scanf("%d", &nombreJoueur);
                printf("\n\n\n");

                compteur++;


                if (nombreJoueur == nombreMystere)
                    {
                    printf("Bravo, vous avez trouve le nombre mystere en %d coup(s) ! :D\n\n\n", compteur);
                    printf("Voulez-vous rejouer ? (oui -> 1 / non -> 0)\n");
                    scanf("%d", &rejouer);
                    printf("\n\n\n\n\n");
                    }


                else if (nombreJoueur > nombreMystere)
                    {
                    printf("C'est moins ! ^^\n\n\n");
                    }
                else if (nombreJoueur < nombreMystere)
                    {
                    printf("C'est plus ! ^^\n\n\n");
                    }
                else
                    {
                    printf("Entrez un nombre entier de 1 a (max. niveau choisi) inclus ^^\n\n\n");
                    }


            }

        }


    return 0;


}

Merci d'avance !

[EDIT] Yeah, j'ai trouvé tout seul, je met le code corrigé dès que j'ai fini ^^

C'est bon :

Spoiler:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{



        srand(time(NULL));


        int nombreMystere = 1;
        int nombreJoueur = 0;
        int compteur = 0;
        int rejouer = 1;
        int MAX = 20, MIN = 1;
        int niveau = 0;

        while (rejouer == 1)
        {

        printf("***** PLUS OU MOINS *****\n\n\n\n");
        printf("niveau 1 (0 -> 20)\n\n");
        printf("niveau 2 (0 -> 50)\n\n");
        printf("niveau 3 (0 -> 100)\n\n\n");
        printf ("Choisissez un niveau de difficulte : ");
        scanf("%d", &niveau);


        if (niveau == 1)
          {
              MAX = 20;
              printf("nombre max. = %d\n\n\n", MAX);
          }
        else if (niveau == 2)
          {
              MAX = 50;
              printf("nombre max. = %d\n\n\n", MAX);
          }
        else if (niveau == 3)
          {
              MAX = 100;
              printf("Nombre max. = %d\n\n\n", MAX);
          }
        else
          {
              printf("Vous vous etes trompe de chiffre ^^ Rebootez le jeu svp\n\n\n");
              return 0;
          }

          nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;



            while (nombreJoueur != nombreMystere)
            {



                printf("Choisissez un nombre : ");
                scanf("%d", &nombreJoueur);
                printf("\n\n\n");

                compteur++;


                if (nombreJoueur == nombreMystere)
                    {
                    printf("Bravo, vous avez trouve le nombre mystere en %d coup(s) ! :D\n\n\n", compteur);
                    printf("Voulez-vous rejouer ? (oui -> 1 / non -> 0) : ");
                    scanf("%d", &rejouer);
                    printf("\n\n\n\n\n\n\n\n\n\n");
                    }


                else if (nombreJoueur > nombreMystere && nombreJoueur <= MAX)
                    {
                    printf("C'est moins ! ^^\n\n\n");
                    }
                else if (nombreJoueur < nombreMystere)
                    {
                    printf("C'est plus ! ^^\n\n\n");
                    }
                else
                    {
                    printf("Entrez un nombre entier de 1 a %d inclus ^^\n\n\n", MAX);
                    }


            }

        }


    return 0;


}

Si vous pouviez le tester avec l'IDE que vous voulez ce serai sympa, merci ! ^^

3lazer4

Messages : 1154
Date d'inscription : 26/07/2010
Age : 20
Localisation : Devant ma chaise, sur mon ordinateur (à moins que ce ne soit le contraire... ^^)

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Besoin d'aide pour un programme en console en C

Message par Link le Ven 29 Avr 2011 - 11:29

Content pour toi ^^
Par contre essai de placer des tabulations, parce que là, c'est difficilement lisible.
Peso, j'utilise jamais de elseif. Si j'ai bien compris le problème, un switch aurait pu faire l'affaire.

Dans le style :
switch (niveau)
{
case 1 : MAX = 20; break;
case 2 : MAX = 50; break;
...
}

(Bon ok, j'ai pas mis les tabulations non plus).
Je ne suis pas sûr que ce code soit 100% fonctionnel niveau syntaxe, disons que quand t'as plusieurs langages dans les pattes tu ne sais plus trop où tu en es sans vérifier.

Link

Messages : 2922
Date d'inscription : 13/01/2010
Age : 25

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Besoin d'aide pour un programme en console en C

Message par 3lazer4 le Ven 29 Avr 2011 - 12:50

Ben en fait j'avais oublié de mettre des tabulations donc je me suis débrouillé mais c'est vrai que c'est pas très lisible

En fait mon erreur est au niveau de mon premier if, j'avais tapé "int MAX = quelquechose alors qu'il ne fallait pas mettre de int puisque j'avais déjà créé la variable MAX au début du programme.

Sinon, j'avais pensé au switch, mais comme je commence à savoir me débrouiller avec cette commande j'ai préféré utiliser une commande que j'utilise moins d'habitude, pour m'entraîner, d'où le if... else ^^ .

3lazer4

Messages : 1154
Date d'inscription : 26/07/2010
Age : 20
Localisation : Devant ma chaise, sur mon ordinateur (à moins que ce ne soit le contraire... ^^)

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Besoin d'aide pour un programme en console en C

Message par Contenu sponsorisé Aujourd'hui à 8:07


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum