Partage
  • Partager sur Facebook
  • Partager sur Twitter

La roulette Russe

Quel est le probleme dans ce code ?

Sujet résolu
    12 janvier 2006 à 21:52:41

    En fait, rien ne s'affiche... le code me parrait pourtant bon :euh:

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

    int main(int argc, char *argv[])
    {
    //on initialise les variables
     int v_aleatoire=0, choix=0, mouleu=0, n=1;
    srand((unsigned)time(NULL));

    //on définit la variable aléatoire
    v_aleatoire=rand()%6;


    //début de la boucle de survie, elle s’arrête dès que n différent de 1
    while(n==1);
    {//ouverture de l’accolade while

    //on demande 1 nombre quii définira la survie (on le demande à chaque nouvelle boucle, histoire ke le nombre soit modifié sinon, le test est jtrs le mm é la boucle en devient infinie…
    printf(" Roulette russe : choisis 1 nombre entre 1 et 6");
    scanf("%lf", choix) ;


    //on vérifie si  le choix est égal à l’aléatoire
    if(choix==v_aleatoire)
    {//ouverture de l’accolade if

    // la rep est oui, on tue le type, et on romps la condition de while : pas de ouvelle execution
    printf("t'es mort");
    n=0;

    }//fermeture de l’accolade if


    // le choix est différent de l’aléatoire
    else
    {//ouverture de l’accolade else

    //on lui di kil é mouleu, kil a survécu, et on ajoute 1 à la valeur de la moule
    printf("tu as survécu !!!!");
    mouleu++;

    }//fermeture de l’accolade else


    //koi kil arrive, on lui donne son nombre de survie
    printf("Tu as survécu %lf fois", mouleu);

    }//fermeture de l’accolade while

    system("PAUSE");       
    return 0;
    }


    *Helllllllp* :p *


    Signé : un 0
    • Partager sur Facebook
    • Partager sur Twitter
      12 janvier 2006 à 22:00:33

      On doit virer tous les commentaires, tout reindenter... pffff... chiant.
      • Partager sur Facebook
      • Partager sur Twitter
        12 janvier 2006 à 22:01:48

        Bah, j'ai bourré de commentaire pour m'y retrouver, si il y a besoin de les enlever je les enleve ;)

        Edit : Voila le code SANS commentaires

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

        int main(int argc, char *argv[])
        {

         int v_aleatoire=0, choix=0, mouleu=0, n=1;
        srand((unsigned)time(NULL));


        v_aleatoire=rand()%6;



        while(n==1);
        {

        printf(" Roulette russe : choisis 1 nombre entre 1 et 6");
        scanf("%lf", choix) ;



        if(choix==v_aleatoire)


        {
        printf("t'es mort");
        n=0;

        }



        else
        {


        printf("tu as survécu !!!!");
        mouleu++;

        }



        printf("Tu as survécu %lf fois", mouleu);

        }

        system("PAUSE");       
        return 0;
        }
        • Partager sur Facebook
        • Partager sur Twitter
          12 janvier 2006 à 22:04:40

          Nope, j'ai fait moi-même et je peux te dire que t'as pas de pot avec ton clavier >_>

          Edit: terminé. mais vraiment, c'est tellement bourré d'erreurs d'étourderie que je te recommanderais le TP de M@theo -> le plus ou moins.
          • Partager sur Facebook
          • Partager sur Twitter
            12 janvier 2006 à 22:06:58

            Citation : V1944

            Nope, j'ai fait moi-même et je peux te dire que t'as pas de pot avec ton clavier >_>



            Uh ?



            'I love to make short posts'
            • Partager sur Facebook
            • Partager sur Twitter
              12 janvier 2006 à 22:10:29

              #include <stdio.h>
              #include <stdlib.h>
              #include <time.h>
              int main(int argc, char *argv[])
              {
              //on initialise les variables
              int v_aleatoire = 0, choix = 0, mouleu = 0, n = 1;
              srand(time(NULL));

              //on définit la variable aléatoire
              v_aleatoire = rand()%6;

              //début de la boucle de survie, elle s’arrête dès que n différent de 1
              while(n == 1)
              {//ouverture de l’accolade while

              //on demande 1 nombre quii définira la survie (on le demande à chaque nouvelle boucle, histoire ke le nombre soit modifié sinon, le test est jtrs le mm é la boucle en devient infinie…
              printf(" Roulette russe : choisis 1 nombre entre 1 et 6");
              scanf("%lf", &choix) ;


              //on vérifie si  le choix est égal à l’aléatoire
              if(choix==v_aleatoire)
              {//ouverture de l’accolade if

              // la rep est oui, on tue le type, et on romps la condition de while : pas de nouvelle execution
              printf("t'es mort");
              n=0;

              }//fermeture de l’accolade if


              // le choix est différent de l’aléatoire
              else
              {//ouverture de l’accolade else

              //on lui di kil é mouleu, kil a survécu, et on ajoute 1 à la valeur de la moule
              printf("tu as survecu !!!!");
              mouleu++;

              }//fermeture de l’accolade else


              //koi kil arrive, on lui donne son nombre de survie
              printf("Tu as survécu %ld fois", mouleu);

              }//fermeture de l’accolade while

              system("PAUSE");       
              return 0;
              }


              ;) encore qqs erreurs, je viens remodifier
              • Partager sur Facebook
              • Partager sur Twitter
                12 janvier 2006 à 22:12:47

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

                int main()
                {
                int v_aleatoire=0, choix=0, mouleu=0, n=1;
                srand(time(NULL));
                v_aleatoire = (rand()%6)+1;
                while(n==1){
                            printf("Roulette russe : choisis 1 nombre entre 1 et 6 -> ");
                            scanf("%d", &choix) ;
                if(choix < 6 && choix > 1){
                if(choix==v_aleatoire){
                                       printf("tu es mort.\n");
                                       n=0;
                                       }
                else{
                     printf("tu as survecu.\n");
                     mouleu++;
                     }
                printf("tu as survecu %d fois\n en tout.", mouleu);
                }
                else{
                     printf("tu dois entrer un nombre compris entre 1 et 6.\n");
                     }
                }
                getchar();
                getchar();
                return 0;
                }
                Tu avais oublié de créer une nouvelle condition si l'utilisateur entrait un nombre > 6 ou < 1. j'ai donc rajouté cette option. Mais pas mal d'erreur comme l'oubli du '&' dans la variable du scanf() ou bien un ';' après le while()... et pour initialiser ta fonction srand() avec l'horloge, il faut include time.h ... pis d'autres trucs du même genre. Essaie le TP de M@theo, c'est pas mal pour faire ce genre de programmes ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  12 janvier 2006 à 22:21:18

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

                  int main()
                  {
                  int v_aleatoire=0, choix=0, mouleu=0, n=1;
                  srand(time(NULL));
                  while(n==1){
                  v_aleatoire = (rand()%6)+1;

                              printf("Roulette russe : choisis 1 nombre entre 1 et 6 -> ");
                              scanf("%d", &choix) ;
                  if(choix <= 6 && choix >= 1){
                  if(choix==v_aleatoire){
                                         printf("tu es mort.\n");
                                         n=0;
                                         }
                  else{
                       printf("tu as survecu.\n");
                       mouleu++;
                       }
                  printf("tu as survecu %d fois\n en tout.", mouleu);
                  }
                  else{
                       printf("tu dois entrer un nombre compris entre 1 et 6.\n");
                       }
                  }
                  getchar();
                  getchar();
                  return 0;
                  }


                  Toi aussi qq erreurs, VI944 ... faut initialiser le nombre a chaque début de boucle sinon se sera toujours le meme ... de plus , faut faire des >= /<= sinon on peut pas rentrer les valeurs 1 et :) voila le programme marche ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 janvier 2006 à 22:27:17

                    Tu veux dire initialiser v_aleatoire? Moui, en effet. je pensais plutôt, de mon côté: "au bout de quel essai vas-tu mourir? Si t'arrives à mourir au 6ème t'es un chanceux." Bref, j'étais dans le système du plus ou moins mais avec une version un peu plus morbide et avec un intervalle [1,6] ^^

                    Mais pour les opérateurs, honte sur moi >_<
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      12 janvier 2006 à 22:51:18

                      //début de la boucle de survie, elle s’arrête dès que n différent de 1
                      while(n==1);

                      C'est pas plutôt :
                      while(n!=1) ? :)
                      De plus y'a pas de ; apres un while ...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 janvier 2006 à 22:52:24

                        Shoods > 1: le code a été corrigé, merci >_> et de plus, relis ce que tu as dit.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 janvier 2006 à 23:00:31

                          Hihi, c'est sympa, tout le monde s'y met ;)
                          Merci tout le monde !! je me pencherais sur la question demain pour tout bien regarder.
                          Je suis trop dans le cirage, je vais pioncer, j'ai cours demain ;)

                          Signé : un zéro un peu moin zéro grace a vous
                          • Partager sur Facebook
                          • Partager sur Twitter
                            13 janvier 2006 à 9:00:16

                            <HS> Conseil : Commenter un code est très important. Pour toi mais aussi pour les autres. Que veut dire "commenter" ? Certainement pas décrire ce que fait une ligne !!!!! C'est tout à fait inutile, on le voit bien, il suffit de lire la ligne en question. Commenter c'est dire, pourquoi on fait telle chose.
                            Donc tous ce qui est du genre :
                            // début/fin de l'accolade du while/if
                            // Tant que la variable est différente de 1, la boucle continue
                            // "On vérifie si le choix est égal à l'aléatoire"

                            Tous ces "commentaires" n'en sont pas !!! Les enlevés, allégerais grandement ton code.
                            </HS>

                            Sinon, comme dis plus haut, relis bien les cours. Pas mal d'erreurs étaient facilement corrigeable par toi même.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              13 janvier 2006 à 17:32:31

                              C'est désespérant votre facon d'indenter...

                              Tiens giovanni, regarde comme t'aurais dû faire si t'avais voulu indenter bien :
                              #include <stdio.h>
                              #include <stdlib.h>
                              #include <time.h>

                              int
                              main()
                              {
                                      int v_aleatoire = 0, choix = 0, mouleu = 0, n = 1;

                                      srand(time(NULL));
                                      while (n == 1) {
                                              v_aleatoire = (rand() % 6) + 1;

                                              printf("Roulette russe : choisis 1 nombre entre 1 et 6 ->
                              "
                              );
                                              scanf("%d", &choix);
                                              if (choix <= 6 && choix >= 1) {
                                                      if (choix == v_aleatoire) {
                                                              printf("tu es mort.\n");
                                                              n = 0;
                                                      } else {
                                                              printf("tu as survecu.\n");
                                                              mouleu++;
                                                      }
                                                      printf("tu as survecu %d fois\n en tout.", mouleu);
                                              } else {
                                                      printf("tu dois entrer un nombre compris entre 1 et 6.\n");
                                              }
                                      }
                                      getchar();
                                      getchar();
                                      return 0;
                              }
                              avec la règle des 80 colonnes et tout...


                              [edit] Comme j'en ai trop marre, je vais vous coder un indenteur automatique, vous aurez qu'a aller sur un site web, c/c le code et ca indentera en k&r ou gnu...
                              • Partager sur Facebook
                              • Partager sur Twitter
                                13 janvier 2006 à 23:17:32

                                Salut.

                                Comme les grand esprit se rencontre ^^.
                                Moi aussi j'ai creer un prog de roulette russe suite au cours de mateo ^^.

                                Tien voici mon code si ca peu t'aider.

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

                                int main(int argc, char *argv[])
                                {
                                // Definition de variables
                                const long MIN = 1, MAX = 6;
                                long ballemystere = 0;
                                long balle = 0;
                                long balle1 = 1, balle2 = 1, balle3 = 1, balle4 = 1, balle5 = 1, balle6 = 1;
                                long kill = 0;

                                // Script de chiffre aléatoire
                                srand(time(NULL));
                                ballemystere = (rand() % (MAX - MIN + 1)) + MIN;

                                printf("BIENVENUE SUR LE JEUX : LA ROULETTE RUSSE\n\n");
                                printf("CREATE BY CrY\n\n");

                                // Au moins une execution.
                                do
                                {             
                                 printf("\n\n BALLES DISPONIBLES:\n");
                                 if (balle1 == 1) printf("- Balle 1\n");
                                 if (balle2 == 1) printf("- Balle 2\n");
                                 if (balle3 == 1) printf("- Balle 3\n");
                                 if (balle4 == 1) printf("- Balle 4\n");
                                 if (balle5 == 1) printf("- Balle 5\n");
                                 if (balle6 == 1) printf("- Balle 6\n\n");
                                 
                                 printf ("choisissez votre balle : ");
                                 scanf ("%ld",&balle);
                                 
                                    if (balle == ballemystere)// Si la balle choisie est la balle mystere
                                    {
                                     printf ("\n\nVOUS ETES MORT\n\n");
                                     kill = 1;
                                    }
                                    else // Sinon on desactive la balle choisie
                                    {
                                           switch(balle){
                                           case 0 :
                                                  printf ("\nN ESSAYE MEME PAS\n");               
                                           case 1 :
                                                balle1 = 0;
                                           break;
                                           case 2 :
                                                balle2 = 0;
                                           break;
                                           case 3 :
                                                balle3 = 0;
                                           break;
                                           case 4 :
                                                balle4 = 0;
                                           break;
                                           case 5 :
                                                balle5 = 0;
                                           break;
                                           case 6 :
                                                balle6 = 0;
                                           break;
                                           default :
                                                 printf ("\nIL NEXISTE PAS AUTANT DE BALLES\n");
                                           break;}   
                                     }     
                                }while(kill == 0);

                                system("PAUSE");       
                                return 0;
                                }
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  14 janvier 2006 à 0:09:43

                                  hmmm... un tableau aurait été plus approprié que ce traitement au cas-par-cas... imagine que tu veux refaire le même truc avec 20 balles?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    14 janvier 2006 à 0:31:22

                                    Je suis d'accord mais dans ce cas je suis obligé d'attendre le cours de mateo sur les tableaux :p
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      14 janvier 2006 à 0:39:04

                                      teu-teu-teu... et ça alors?

                                      Mais je te l'accorde, c'est pas aussi bien expliqué que chez M@theo. Cet ensemble me sert encore quand j'ai un doute sur la syntaxe à adopter our une fonction de base. Le cours de M@theo, lui, est génial pour apprendre, mais pour y revenir, il faut chercher dans la mer d'explications.
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      La roulette Russe

                                      × 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