Partage
  • Partager sur Facebook
  • Partager sur Twitter

Demande votre avis

    24 décembre 2005 à 18:40:36

    Voila je vien de creer mon petit "pierre feuille ciseau" et j'aurait aimer avoir votre avis ^^
    Donc voici le code :

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    int main(int argc, char *argv[])
    {
      printf("************************************\n"
      "*  pierre feuille papier ciseau    *\n"
      "*    v1.0                by caxd   *\n"
      "************************************\n\n");


      long max =3,min=1,choix_du_pc,choix_du_joueur,rejouer=1;
      long partie_win_pc=0,partie_win_joueur=0;
      //derniere mise a jour le 24/12/2005
      //tirage de la valeur aléatoire du joueur pc
      //début du bouclage pour les parties
     
     do
      {
      srand(time(NULL));
      choix_du_pc = (rand() % (max - min + 1)) + min;
      printf("faite votre choix :\n '1' pierre\n '2' papier\n '3' ciseau\nvotre choix : ");

      scanf("%ld",&choix_du_joueur);

      /* 1 : pierre   2: papier   3: ciseau */

      printf("un deux trois   ");
      sleep(200);
      printf("gigoumi.. ");
      sleep(200);
      printf("gigouma !!!\n\n\n");
      sleep(150);
    /* sa c'etait juste pour le delire ^^*/

      if (choix_du_pc == choix_du_joueur)
         {
         printf("egalite, il n'y a pas de gagnant dans cette partie !\n");
         }

      else if ( choix_du_joueur==1 && choix_du_pc ==2)
         {
         printf("le papier l'emporte sur la pierre, vous perdez cette manche\n");
         partie_win_pc++;
         }

      else if ( choix_du_joueur==1 && choix_du_pc ==3)
         {
          printf("la pierre l'emporte sur la paire de ciseau vous avez marque un point\n");
         partie_win_joueur++;
         }

      else if ( choix_du_joueur==2 && choix_du_pc ==3)
         { 
          printf("le papier perd contre la perd de ciseau, vous perdez cette     manche\n");
         partie_win_pc++;
         }

      else if ( choix_du_joueur==2 && choix_du_pc ==1)
         {
          printf("le papier l'emporte sur le caillou  vous marque un point \n");
         partie_win_joueur++;
         }

      else if ( choix_du_joueur==3 && choix_du_pc ==1)
         {
          printf("les ciseau perdent contre la pierre, vous perdez cette manche\n");
          partie_win_pc++;
          }

      else if ( choix_du_joueur==3 && choix_du_pc ==2)
         {
          printf("la paire de ciseau  l'emporte sur la feuille vous avez marque un point \n");
         partie_win_joueur++;
         }

      printf("\n\nPour le moment vous avez gagne %ld partie et le pc"
       " en a gagne %ld.\n\nsouhaitez vous rejouez < 1 oui / 0 non >",partie_win_joueur,partie_win_pc);
       
    scanf("%ld",&rejouer);
    printf("\n\n\n");
    system("cls");

    }
    while(rejouer ==1);
           
    printf("merci d'avoir jouer :)\n\n");
    system("pause");
      return 0;
    }


    Je ne pence pas que le code soit parfait mais il ne bug pas... en tout cas pas chez moi :p

    Donc j'aurait aimer avoir votre avis ! Au fait on peut pas faire mieux que la suite de else if je pencer a un switch mais bon ...

    Ah bah oui pour le test faudrai peut être le lien :
    • Partager sur Facebook
    • Partager sur Twitter
      24 décembre 2005 à 18:43:57

      A 1ère vu il est un peu illisible et ne donne pas envis d'être lu fait comme ça les if :
      if
      {
      Indentation
      }
      ...

      ;)

      Edit : Il veut pas indenter mon code :s
      • Partager sur Facebook
      • Partager sur Twitter
        24 décembre 2005 à 18:45:47

        Et outre l'indentation, il faut aérer un peu, un gros bloc de texte, c'est dissuasif...
        • Partager sur Facebook
        • Partager sur Twitter
          24 décembre 2005 à 18:47:27

          Citation : Chahine

          Et outre l'indentation, il faut aérer un peu, un gros bloc de texte, c'est dissuasif...



          De plus ça serait mieux si tu mettrais une bonne ponctuation telle que des majuscule en début de phrase ...
          Et j'aime bien "fait votre choix" ^^
          • Partager sur Facebook
          • Partager sur Twitter
            24 décembre 2005 à 18:53:24

            j'avoue bcp de faute dans si peu de code...
            là, sa va mieux où pas et pour les majuscules dans le code je sait pas trop si je vais le faire lol

            Mais dans tous sa je sait pas ce qui pourrait remplacer cette belle suite de else if un switch ?
            • Partager sur Facebook
            • Partager sur Twitter
              24 décembre 2005 à 18:54:50

              ^^ Bon on va arrêter d'enchaîner les critiques, même si c'est ce que l'auteur nous demande...

              Je me lance dans la lecture du code ! :pirate:

              EDIT >> pourquoi parler de papier et non de feuille dans le jeu ?
              Sinon laisse tes if ... else if, ils sont très bien comme ça ! (en PHP, cette structure est plus rapide que le switch, est-ce aussi vrai en C ?)
              • Partager sur Facebook
              • Partager sur Twitter
                24 décembre 2005 à 19:04:22

                /* 1 : pierre   2: papier   3: ciseau */


                Tu as utilisé des constantes dont la valeur a une signification particulière, tu t'en es apercu, tu as donc ajouté en commentaire ces significations.

                C'est tres tres bien, pour une personne qui débute.

                Quelle technique expliquée dans la premiere partie du cours de M@teo aurait pu te permettre de faire autrement ? (indice : tu as déja utilisé cette technique, pas forcement comme il faudrait, dans ton programme)
                • Partager sur Facebook
                • Partager sur Twitter
                  24 décembre 2005 à 19:04:57

                  j'avez envie de varier lol :D ,et oui pour le php je sait que c'est plus rapide mais aprés pour le C...

                  euh pour la question aprés faudrai que j'y réflechisse, au début je voulait faire par une rêgle de calcul mais j'ai eu la fleme d'en chercher une lol ^^


                  Eh sinon dans cette partie je n'ai pas trouve de grande differences entre le php et le C en tout cas dans le principe de programation les nouvelles choses diferentes du php arriveront elle par la suite ...

                  si j'avai su mettre des chaine de caractere dans une variable ( chose qu'il faut que je regarde sur d'autre tuto ^^), j'aurai remplacer les 1 2 3 par leur vrai nom ce qui apres dans le texte aurait simplifier un peu par rajout des noms des variable et pas en les retapant ^^

                  Sur ceux la je doit allez aider a faire des ptit four donc je pencerai a la suite demain ^^
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 décembre 2005 à 19:18:29

                    Réponse selon moi : les énumérations, mais M@téo n'en a pas parlé dans le cours me semble-t-il...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 décembre 2005 à 19:39:14

                      Je suis pas sur que else if soit plus rapide que switch ou l'inverse en C, en effet le compilateur optimisera de toute facon, et il est très probable qu'il n'y ai aucune différence à l'execution.
                      Pour l'association nombre <->chaine de caractère (enfin c'est pas deschaines de caractères) tu peux aussi passer par des defines :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 décembre 2005 à 2:09:13

                        oki des defines...ecnore faudrai t'il que je sache c'est quoi lol ^^
                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 décembre 2005 à 10:59:01

                          bon je sais pas si j'ai le droit... :euh: mais moi aussi j'aimerais votre avis :D
                          #include <stdio.h>
                          #include <stdlib.h>
                          #include <time.h>
                          int main(int argc, char *argv[])
                          {
                            //déclaration des variables
                            long choix = 0 , rec = 1, nbpc, nbpoints = 0,initi;
                            //fin de déclaration des variables

                            while (rec == 1)
                            {
                                  system("CLS");
                            printf("bienvenue sur mon pierre feuille ciseaux!!!");
                            printf("\n\n\n\nchoississez : \n[1]pour pierre \n[2]pour feuille\n[3]pour ciseaux\n\n\n ou sinon : \n\n[4]pour reinitialiser les points\n[5]pour voir vos points actuel\n[6] pour quitter\n\n\n votre choix : ");
                           
                             srand(time(NULL));
                            nbpc = (rand() % (3 - 1 + 1))+1;
                           
                          scanf("%d",&choix);


                          if ( choix == 6)
                          {
                               return 0;
                               }//fin if
                               
                               else if (choix == 5)
                               {
                                    printf("vous avez actuellement %d points\n\n",nbpoints);
                                    }//fin de else if
                             
                               else if (choix == 4)
                               {
                                    nbpoints = 0;
                                    printf("maintenant vos point sont a : %d ",nbpoints);
                                    }//fin de else if
                                   

                          else if (choix == nbpc)
                          {
                                    printf("egalite!!!\nvous avez %d points \n",nbpoints);
                                    } //fin else if
                                   
                                    else if (choix == 1 && nbpc == 2)
                                    {
                                         printf("\n\n\n\n choix de l'ordi : %d \n\n",nbpc);
                                         printf("la feuille recouvre la pierrre ...vous avez perdu!!!\nvous avez %d points \n",nbpoints);
                                         }//fin else if
                               
                                else if ( choix == 1 && nbpc == 3)
                                {
                                     nbpoints++;
                                     printf("\n\n\n\n choix de l'ordi : %d \n\n",nbpc);
                                     printf("la pierre casse les ciseaux vous avez gagner!!!\nvos avez %d points\n",nbpoints);
                                     }//fin de else if
                                     
                                     else if(choix == 2 && nbpc == 3)
                                     {
                                          printf("\n\n\n\n choix de l'ordi : %d \n\n",nbpc);
                                          printf("les ciseaux coupe la feuille vous perdez\nvous avez %d points \n",nbpoints);
                               
                                          }//fin de else if
                           
                              else if (choix == 2 && nbpc== 1)
                            {
                                   nbpoints++;
                                 printf("\n\n\n\n choix de l'ordi : %d \n\n",nbpc);
                                 printf("la feuille recouvre la pierre vous gagner!!!\nvous avez %d points\n",nbpoints);
                                 
                                 }//fin de else if
                                 
                                 else if (choix == 3 && nbpc == 1)
                                 {
                                     
                                      printf("\n\n\n\n choix de l'ordi : %d \n\n",nbpc);
                                      printf("la pierre casse les ciseaux vous perdez !\nvous avez %d points",nbpoints);
                           
                                     
                                  }//fin de else if
                                 
                                  else if (choix == 3 && nbpc == 2)
                                  {
                                       nbpoints++;
                                      printf("\n\n\n\n choix de l'ordi : %d \n\n",nbpc);
                                       printf("les ciseaux coupe la feuille vous gagner!\nvous avez %d points",nbpoints);
                                       
                                       }//fin de else if
                                       
                                       else
                                       {
                                            printf("erreur de saisie");
                                            }//fin de else
                                       
                            printf("\n\nretour ?\n1 pour oui \t \t 0 pour non \n");
                            scanf("%d",&rec);
                            }//fin de boucles while
                            return 0;
                          }
                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 décembre 2005 à 11:01:15

                            C'est bien les gens, Mackila pose une question dans le but de faire progresser un membre, et vous vous y répondez à sa place, bravo !

                            Tu peux continuer à chercher si tu le souhaites, ils n'ont pas dit ce que Mackila attendait.


                            Sinon, moi je pense que faire une règle de calcul est en effet la bonne idée.

                            Une méthode simple


                            Quoi que l'utilisateur dise, il a une chance sur trois de gagner, une chance sur trois de perde, et une chance sur trois d'etre à égalité.

                            Tu peux donc faire seulement trois test, par exemple "si choix_du_pc vaut 1 il a gagné, s'il vaut 2 tu as gagné, sinon égalité".
                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 décembre 2005 à 11:33:31

                              Ah oui je voie comment j epourrai faire et sa simplifirai enormement le code je vais y retourner ^^
                              (quand j'aurait un petit peu de temps ^^)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                25 décembre 2005 à 12:02:16

                                caxd, je pense que tu devré rajouter un menu pour choisir le nombre de jouer et si il veu jouer avec le pc ou un humain et il y a un pb, quand tu mes un autre chivre que 1, 2 ou 3 tu drevré métre un pouin pour l'ordi et dire que c'est pas un bon choua enfin tu fait un truc dans le jore
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  25 décembre 2005 à 14:17:44

                                  Attention, tu n'écris pas très bien.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    25 décembre 2005 à 16:34:36

                                    Pas mal Caxd ton pierre papier ciseau caillou,
                                    mais j'ai remarquer qu'apres plusieurs partie c'est pas du hasard , l'ordibateur prend le premier : pierre ,au tour suivant il prend le deuxieme : papier jecrois , et il fini par ciseaux : le dernier.
                                    En faite il prend les choix de haut en bas donc c'est trop facile , c'est pas du hasard ,sinon bien le code :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      25 décembre 2005 à 22:53:48

                                      Hum bizarre pourtant j'ai utulisé la technique qu'a donnée m@theo pour les numéro au hasard^^

                                      Apres pour plus de hasar je pourrai prendre un numero au hasard que je multiplie par un deuxieme numero au hasard le tout que je divise par la somme des deux numero au hasard dont je soustrait la moitiée du quotien de la racine du carrer inversee de la somme des deux aléatoire est la peut etre qu'on aurai un numéro un peu plus hasardeux ..

                                      La porte bon oki je sort .... ^^
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        26 décembre 2005 à 1:11:17

                                        par asard il fodrait pas le #include <math.h>
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          26 décembre 2005 à 19:19:26

                                          hum sa pourrait regler le pb si je supprimer l'initialisation de la fonction rand a chaque boucle peut etre ^^
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            26 décembre 2005 à 23:02:10

                                            escusez moi je ne sait pas si la réponse a Mackila a été donné donc jéssaye une ébauche de réponse
                                            il aurait pu mettre des booléens qui vaudrai 0 et qui passerait a 1 quand on a choisi la pierre par exemple
                                            bien sur c'est plus compliqué donc ce n'est surement pas sa mais c'est une idée... ^^
                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Demande votre avis

                                            × 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