Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jeux Plus/moins (Tuto Langage C)

Sujet résolu
    23 juin 2017 à 15:32:22

    Bonjour tous le monde je suis arrivé a la fin dut premier chapitre en langage C qui concerne .. (les variables, calculs de base, les conditions, les boucles et les fonctions.. )

      je suis donc entrain de finir le jeux Plus / Moins  que je pense avoir  fini le .exe se lance et tous marche enfin presque ^^ ... il persiste un problème ..

      Quand je rentre dans joueur 1 je choisie le niveau ... et la Dos Beug . Il ne veut pas changer ma valeur MAX pour les différents niveau .

      j'ai essayé beaucoup beaucoup de choses différentes mais rien y fait .. MERCI POUR CES TUTOS GÉNIAUX ET MERCI D'AVANCE A VOUS .

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    const int MIN = 1;
    
    int MAX = 0;
    
    int nombreMystere = 0;
    int devine = 0;
    int nombreDeCoup = 0;
    int restart = 0;
    int nombreDeJoueur = 0;
    int choixNiveau = 0;
    
    
    void NIVEAU (void);/*    Appelle de      */
    void MENU (void);  /*  Mes Fonctions     */
    
    
    
    int main(int argv, char *argc[])
    {
    
        do //Recommencer la partie.
        {
        MENU();
        scanf("%d", &nombreDeJoueur);
    
        if (nombreDeJoueur == 1)
        {
    
        NIVEAU();
        scanf("%d", choixNiveau);
    
        switch(choixNiveau)
        {
            case 1 : {MAX = 100; nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;}
            break;
            case 2 : {MAX = 200; nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;}
            break;
            case 3 : {MAX = 500; nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;}
            break;
            case 4 : {MAX = 1000; nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;}
            break;
            default : printf("\nIl faut choisir un nombre entre 1 et 4 !!\n ");
            break;
        }//Fin de swith
            system("cls");
        //srand(time(NULL));
        //nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
    
        }//Fin de If (nombreDeJoueur == 1)
    
        else if(nombreDeJoueur == 2)
        {
        printf("\n\tJoueur 1 : Quelle nombre mystere voulez-vous ?\n\n");
        scanf("%d", &nombreMystere);
        system("cls");
        }
    
    
        do //Reposer la question.
        {
         printf("\n\nQuelle est le nombre ? : \n");
         scanf("%d", &devine);
         nombreDeCoup++;
    
    
        if(nombreMystere > devine)
    
            printf("C'est plus !!\n");
    
        else if(nombreMystere < devine)
    
            printf("C'est moins !!\n");
    
        else
            {
            printf("\n------------------------------------------------------\n");
            printf("Bravo tu as trouve le nombre mystere %d !! en %d coups\n", nombreMystere, nombreDeCoup);
            printf("------------------------------------------------------\n");
            printf("\n\nVoulez-vous continuer la partie ?\n");
            printf("1. --> oui\n");
            printf("2. --> non\n");
            scanf("%d", &restart);
            system("cls");
            }
    
        }//Fin de reposer la question
        while (nombreMystere != devine);
    
        }//Fin de recommencer la parie
        while(restart == 1);
    
        printf("\n-------> Au revoir ... ^^\n");
        return 0;
    }
    
    void MENU (void)
    {
    
        printf("\n-------------------------------------\n");
        printf("\t JEUX : PLUS / MOINS\n");
        printf("-------------------------------------\n\n");
    
        printf("1. --> 1 JOUEUR\n");
        printf("2. --> 2 JOUEURS\n\n");
    }
    
    void NIVEAU (void)
    {
        printf("\n-------------------------------------\n");
        printf("\t\t NIVEAU\n");
        printf("-------------------------------------\n");
    
        printf("\n1. --> NIVEAU 1 : un chiffre entre 1 et 100\n");
        printf("2. --> NIVEAU 2 : un chiffre entre 1 et 300\n");
        printf("3. --> NIVEAU 3 : un chiffre entre 1 et 500\n");
        printf("4. --> NIVEAU 4 : un chiffre entre 1 et 1000\n\n");
    }
    
    



    • Partager sur Facebook
    • Partager sur Twitter
      23 juin 2017 à 16:10:53

      Hello, le problème exprimé se situe ici →

      scanf("%d", choixNiveau);

      Tu ne passes pas l'adresse de choixNiveau.

      Je me permets de citer quelques 'défauts' rapidement →

      • Ne déclare pas de variable globale lorsque ce n'est pas justifiable.
      • Tu décomposes ton fichier en plusieurs fonctions telles que NIVEAU(), MENU(), pourquoi ne pas continuer dans cette lancée ?
      int
      selection_niveau(...);
      
      void
      jeu(...);
      • L'appel système system() est à éviter pour l'une de ces deux principales raisons →             

      × La commande qui y est inscrite, 'cls' ici, n'est en général pas portable.

      × Elle induit une vulnérabilité exploitable. ( Je ne détaille pas. Internet le fait très bien pour moi ;) )

      • Tu n'utilises pas les paramètres du main(), alors mais à la place →
      int
      main(void)

       Je m'arrête là ^^

      -
      Edité par ASW_ 23 juin 2017 à 16:16:33

      • Partager sur Facebook
      • Partager sur Twitter
        26 juin 2017 à 16:06:47

        Bloqué en haut, je débloque.
        • Partager sur Facebook
        • Partager sur Twitter

        Jeux Plus/moins (Tuto Langage C)

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown