Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP "plus ou moins"

    10 juillet 2006 à 16:06:35


    bonjour, merci pour votre intéressance.

    J'ai programmé le TP proposé de M@téo (dans le tutoriel C/C++). J'ai réaliser ce qui est dit et presque tous les autres suppléments mais je bloque pour faire un mode deux joueurs.
    Déjà Comment dois-je faire pour effacer l'écran ?(j'en ai besoin pour que le deuxième joueur ne puisse pas tricher et voir ce que le joueur 1 a mis


    voici le code source que j'ai essayer:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    //les prototypes des fonctions
    long aleatoire(long MAX, long MIN);
    long choisirMode();

    int main(int aregc, char *argv[])
    {
        //Déclaration des variables.
        long nombreChoisi = 0, nombreSecret = 0, nombreCoups = 0, mode = 0;
        long MAX = 100, MIN = 1;
        int gagne = 0,  jouer = 1, ok = 0;

        printf("Bienvenue dans le PLus ou Moins!\n\n");

        do{
            mode = choisirMode();//Aucun problème pour cette fonction

            if (mode == 1)
                MAX = 100;
            else
            {
                if (mode == 2)
                    MAX = 1000;
                else
                    MAX = 10000;
            }

            nombreSecret = aleatoire(MAX, MIN);//Mais dès que je met ce code... ça plante :colere2:
            nombreCoups = 0;

            printf("\n\n");

            //Boucle principale du jeu.
            do{
                printf("Quel est le nombre ? ");
                scanf("%ld", &nombreChoisi);

                //On vérifie que le nombre choisi et bon
                if (nombreChoisi == nombreSecret)
                {
                    printf("Gagne!!! Vous avez trouver le nombre en %ld coups", nombreCoups);
                    gagne = 1;
                }else//Sinon on dit si le nombre Secret est plus ou moins par rapport au nombre choisi.
                {
                    if(nombreChoisi > nombreSecret)
                        printf("C'est moins.");
                    else
                        printf("C'est plus.");

                    nombreCoups++;
                }
                printf("\n\n");
            }while(!gagne);

            //La partie a été gagné on demande si le joueur veux faire une autre partie.
            do{
                printf("Voulez vous encore jouer (1: oui, 0: non)? ");
                scanf("%ld", &jouer);

                //On oblige le joueur a entrer le nombre 0 ou 1.
                switch(jouer)
                {
                    case 1:
                        ok = 1;
                        break;
                    case 0:
                        ok = 1;
                        break;
                    default:
                        ok = 0;
                        break;
                }
            }while(!ok);

        }while(jouer);

        return 0;// J'ai essayer de mettre "return EXIT_SUCCESS;" mais ça ne voulais pas ???
    }

    long aleatoire(long MAX, long MIN)
    {
        long nombreSecret = 0;

        srand(time(NULL));
        nombreSecret = (rand() % (MAX - MIN + 1)) + MIN;

        return nombreSecret;
    }

    long choisirMode()
    {
        int ok = 0;
        long mode = 0;

        do{
            printf("\n\nChoisissez un mode de difficulte:\n1: 1 -> 100\n2: 1 -> 1000\n3: 1 -> 10000\nQuel mode ?");
            scanf("%ld", &mode);

            switch(mode)
            {
                case 1:
                ok = 1;
                    break;
                case 2:
                    ok = 1;
                    break;
                case 3:
                    ok = 1;
                    break;
                default:
                    ok = 0;
                    break;
            }
        }while(!ok);

        return mode;
    }
    • Partager sur Facebook
    • Partager sur Twitter
      10 juillet 2006 à 16:24:11

      Je suis de très bon humeur cet après midi :
      #include <stdio.h>
      #include <stdlib.h>
      #include <time.h>

      //les prototypes des fonctions
      long aleatoire(long MAX, long MIN);
      long choisirMode();

      int main(int aregc, char *argv[])
      {
          //Déclaration des variables.
          long nombreChoisi = 0, nombreSecret = 0, nombreCoups = 0, mode = 0;
          long MAX = 100, MIN = 1;
          int gagne = 0,  jouer = 1, ok = 0, joueurs = 0;// booléens joueurs : 0 -> 1 j ; 1 -> 2 j

          printf("Bienvenue dans le Plus ou Moins!\n\n");
          printf("Voulez-vous jouer en mode 1 ou 2 joueurs \n1. 2 joueurs\n0. 1 joueur\n");
          scanf("%ld",&joueurs);
         
          do{
              mode = choisirMode();//Aucun problème pour cette fonction

              if (mode == 1)
                  MAX = 100;
              else
              {
                  if (mode == 2)
                      MAX = 1000;
                  else
                      MAX = 10000;
              }
              if(joueurs == 0)
                         nombreSecret = aleatoire(MAX, MIN);//Mais dès que je met ce code... ça plante :colere2:
              else{
                         printf("Joueur 1 : Entrez le nombre Secret");
                         scanf("%ld",&nombreSecret);}
              nombreCoups = 0;

              printf("\n\n");

              //Boucle principale du jeu.
              do{
                  printf("Joueur 2 : Quel est le nombre ? ");
                  scanf("%ld", &nombreChoisi);

                  //On vérifie que le nombre choisi et bon
                  if (nombreChoisi == nombreSecret)
                  {
                      printf("Gagne!!! Vous avez trouver le nombre en %ld coups", nombreCoups);
                      gagne = 1;
                  }else//Sinon on dit si le nombre Secret est plus ou moins par rapport au nombre choisi.
                  {
                      if(nombreChoisi > nombreSecret)
                          printf("C'est moins.");
                      else
                          printf("C'est plus.");

                      nombreCoups++;
                  }
                  printf("\n\n");
              }while(!gagne);

              //La partie a été gagné on demande si le joueur veux faire une autre partie.
              do{
                  printf("Voulez vous encore jouer (1: oui, 0: non)? ");
                  scanf("%ld", &jouer);

                  //On oblige le joueur a entrer le nombre 0 ou 1.
                  switch(jouer)
                  {
                      case 1:
                          ok = 1;
                          break;
                      case 0:
                          ok = 1;
                          break;
                      default:
                          ok = 0;
                          break;
                  }
              }while(!ok);

          }while(jouer);

          return 0;// J'ai essayer de mettre "return EXIT_SUCCESS;" mais ça ne voulais pas ???
      }

      long aleatoire(long MAX, long MIN)
      {
          long nombreSecret = 0;

          srand(time(NULL));
          nombreSecret = (rand() % (MAX - MIN + 1)) + MIN;

          return nombreSecret;
      }

      long choisirMode()
      {
          int ok = 0;
          long mode = 0;

          do{
              printf("\n\nChoisissez un mode de difficulte:\n1: 1 -> 100\n2: 1 -> 1000\n3: 1 -> 10000\nQuel mode ?");
              scanf("%ld", &mode);

              switch(mode)
              {
                  case 1:
                  ok = 1;
                      break;
                  case 2:
                      ok = 1;
                      break;
                  case 3:
                      ok = 1;
                      break;
                  default:
                      ok = 0;
                      break;
              }
          }while(!ok);

          return mode;
      }

      Un amélioré
      #include <stdio.h>
      #include <stdlib.h>
      #include <time.h>

      //les prototypes des fonctions
      long aleatoire(long MAX, long MIN);
      long choisirMode();

      int main(int aregc, char *argv[])
      {
          //Déclaration des variables.
          long nombreChoisi = 0, nombreSecret = 0, nombreCoups = 0, mode = 0;
          long MAX = 100, MIN = 1;
          int gagne = 0,  jouer = 1, ok = 0, joueurs = 0;// booléens joueurs : 0 -> 1 j ; 1 -> 2 j

          printf("Bienvenue dans le Plus ou Moins!\n\n");
          printf("Voulez-vous jouer en mode 1 ou 2 joueurs \n1. 2 joueurs\n0. 1 joueur\n");
          scanf("%ld",&joueurs);

          do{
              mode = choisirMode();//Aucun problème pour cette fonction
              switch(mode)
              {
                  case 1:
                  MAX = 100;
                  break;
                  case 2:
                  MAX = 1000;
                  break;
                  case 3:
                  MAX = 10000;
                  break;
              }
              switch(joueurs)
              {
                  case 0:
                  nombreSecret = aleatoire(MAX, MIN);//Mais dès que je met ce code... ça plante :colere2:
                  break;
                  case 1 :
                  printf("Joueur 1 : Entrez le nombre Secret");
                  scanf("%ld",&nombreSecret);
                  if(nombreSecret > MAX)
                  {
                      printf("\nVous avez tape un mauvais nombre");
                      exit(0);
                  }
                  system("cls");
                  break;
              }
              nombreCoups = 0;


              //Boucle principale du jeu.
              do{
                  if(joueurs)
                      printf("Joueur 2 : ");
                  printf("Quel est le nombre ? ");
                  scanf("%ld", &nombreChoisi);

                  //On vérifie que le nombre choisi et bon
                  if (nombreChoisi == nombreSecret)
                  {
                      printf("Gagne!!! Vous avez trouver le nombre en %ld coups\n", nombreCoups);
                      gagne = 1;
                  }else//Sinon on dit si le nombre Secret est plus ou moins par rapport au nombre choisi.
                  {
                      if(nombreChoisi > nombreSecret)
                          printf("C'est moins.\n");
                      else
                          printf("C'est plus.\n");

                      nombreCoups++;
                  }
              }while(!gagne);

              //La partie a été gagné on demande si le joueur veux faire une autre partie.
              do{
                  printf("Voulez vous encore jouer (1: oui, 0: non)? ");
                  scanf("%ld", &jouer);

                  //On oblige le joueur a entrer le nombre 0 ou 1.
                  switch(jouer)
                  {
                      case 1:
                          ok = 1;
                          break;
                      case 0:
                          ok = 1;
                          break;
                      default:
                          ok = 0;
                          break;
                  }
              }while(!ok);

          }while(jouer);

          return 0;// J'ai essayer de mettre "return EXIT_SUCCESS;" mais ça ne voulais pas ???
      }

      long aleatoire(long MAX, long MIN)
      {
          long nombreSecret = 0;

          srand(time(NULL));
          nombreSecret = (rand() % (MAX - MIN + 1)) + MIN;

          return nombreSecret;
      }

      long choisirMode()
      {
          int ok = 0;
          long mode = 0;

          do{
              printf("\n\nChoisissez un mode de difficulte:\n1: 1 -> 100\n2: 1 -> 1000\n3: 1 -> 10000\nQuel mode ?");
              scanf("%ld", &mode);

              switch(mode)
              {
                  case 1:
                  ok = 1;
                      break;
                  case 2:
                      ok = 1;
                      break;
                  case 3:
                      ok = 1;
                      break;
                  default:
                      ok = 0;
                      break;
              }
          }while(!ok);

          return mode;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        10 juillet 2006 à 16:42:46

        je l'ai essayer mais ça marche pas quand tu feras une autre partie
        En plus pour le joueur 1 il faut qu'il choisi le nombre secretement, par contre avec ton code le nombre secret de joueur 1 apparait à la console .
        • Partager sur Facebook
        • Partager sur Twitter
          16 juillet 2006 à 21:24:09

          Un system("cls") devrait effacer l'ecran, mais c'est pas portable :p
          • Partager sur Facebook
          • Partager sur Twitter

          TP "plus ou moins"

          × 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