Partage
  • Partager sur Facebook
  • Partager sur Twitter

Insérer If.. else dans jeu?

    8 janvier 2006 à 0:03:21

    Bonjour à tou(te)s et tout d'abord, bravo pour votremerveilleux site :p !

    Ce la fait à peu près trois semaine que j'apprends le language C, vous me direz " Trois semaines ??? T'es un boulet!!!"

    Je vous réponderez:" Non, je veux être sûr d'aoir tout compris."

    Je suis donc aller jusqu'au premier TP, créer ce fameux jeux de chiffre, et ma question est la suivante:

    Admettons qu'un utilisateur bête rentre du texte au lieu d'un chiffre, est-il possible d'afficher un message du type "Mettez un chiffre et pas une lettre !" sans utilisé
    case 1
    case 2
    etc... ?

    Excusez moi si je m'exprime pas clairement et si vous ne comprenez pas, questionnez moi, j'essairer d'eclaircir tout ca :)

    Merci à vous :D;)
    • Partager sur Facebook
    • Partager sur Twitter
      8 janvier 2006 à 0:11:26

      Pour l'instant il n'y a pas moyen de faire ca, il faut attendre la suite du cours qui en parlera.
      • Partager sur Facebook
      • Partager sur Twitter
        8 janvier 2006 à 0:38:47

        une question similaire avait déja été posée ici
        • Partager sur Facebook
        • Partager sur Twitter
          8 janvier 2006 à 12:12:21

          tu peux faire
          if (var != 0 && var != 1 && var !=.......)
          tu fais ca jusqua 9 et si il entre autre chose qu'un chiffre tu peux mettre un messgae d'erreur

          ps : si tu fais ca il aura le meme resultat si il rentre un nombre
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            8 janvier 2006 à 12:56:28

            Citation : ThE.13eSt

            tu peux faire
            if (var != 0 && var != 1 && var !=.......)
            tu fais ca jusqua 9 et si il entre autre chose qu'un chiffre tu peux mettre un messgae d'erreur

            ps : si tu fais ca il aura le meme resultat si il rentre un nombre


            Sa ne amrcheras pas, si apr exmeple il entre le caractère 09h, il sera comprit comme un chifre ^^[Bon c'est vrai que se caractère ne figure pas sur le clavier, mais on peut imaginer un copier coller]
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              8 janvier 2006 à 13:31:08

              Citation : JC_Master

              Citation : ThE.13eSt

              tu peux faire
              if (var != 0 && var != 1 && var !=.......)
              tu fais ca jusqua 9 et si il entre autre chose qu'un chiffre tu peux mettre un messgae d'erreur

              ps : si tu fais ca il aura le meme resultat si il rentre un nombre


              Sa ne amrcheras pas, si apr exmeple il entre le caractère 09h, il sera comprit comme un chifre ^^[Bon c'est vrai que se caractère ne figure pas sur le clavier, mais on peut imaginer un copier coller]


              Non on peut pas les copier-coller en console ça écrit ^V(je sens qu'on va encore me dire que c'est constructif mais bon...)
              • Partager sur Facebook
              • Partager sur Twitter
                8 janvier 2006 à 14:44:04

                Désolé, mais si on peut copier/coller en console...
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  8 janvier 2006 à 14:47:15

                  Citation : Ze moi

                  (je sens qu'on va encore me dire que c'est constructif mais bon...)

                  C'est pas très constructif, surtout qu'on peut copier/coller en console en faisant des clics droits > coller :-° (non pas la peine de répondre "oups" ce ne serait qu'un post inutile de plus, tais toi plutôt).

                  Si le programme demande un int, il suffit de faire la vérification du résultat. Par exemple tu initialises ta variable à 0 au début, si après que l'utilisateur entre un nombre le int est toujours à 0 tu boucles pour redemander.

                  JC_Master > si on demandait un char ton caractère bizarre serait bien compris comme un nombre, cependant en tappant le chiffre '1' il indiquerait que ce n'est pas un chiffre car la valeur de 1 n'est pas 1 (hé oui :p enfin ça dépend de l'encodage, mais dans l'ascii en tout cas c'est pas 1). Cependant comme lr prog demande un int ou long, seul un chiffre ou un nombre sera lu par scanf, si c'est un caractère il ne le lira pas et ne changera donc pas la valeu du int de départ, que l'on pourra donc tester pour voir si le nombre a été lu, d'ailleurs il me semble que scanf retourne le nombre de variables lues, donc si c'est 1 c'est bon sinon il faut reboucler.

                  Et puis, pourquoi faire 10 fois des != alors qu'on peut utiliser les < >.

                  edit : a bah non grillé en plus... vas faire ton copier/coller comme je l'ai dit et tais toi.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    8 janvier 2006 à 14:47:22

                    Citation : bluestorm

                    Désolé, mais si on peut copier/coller en console...


                    Désolé pour cette question idiote, mais... comment? quand je fait Ctrl+V ça me met ^V
                    Edit: Oups désolé j'ai trouvé... faux faire clic droit "coller"
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      9 janvier 2006 à 16:01:20

                      Désoler, j'avais aps pensser au 1 != '1' ^^
                      Ma mémoire a des ratées...(Faut que je pensse a la reprog... quesque je raconte moi?)

                      Mais bon, il existe un très joli entête que j'adore, qui s'apelle iostream, et qui règle se problème ^^ [Mais bon, c'est plus du c apprès ^^)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 janvier 2006 à 16:43:21

                        En C, je crois qu' il existe une en-tête permettant de tester le type d' un char (Par exemple si c' est un blanc, une lettre, un chiffre
                        • Partager sur Facebook
                        • Partager sur Twitter
                          9 janvier 2006 à 18:18:51

                          Oui, cet en-tête s'appelle ctype et teste le type d'un caractère converti en unsigned char et stocké dans un int.

                          edit: ctype.h bien sûr :)
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            9 janvier 2006 à 19:33:15

                            Oui, mais si tu capte 35 avec un char* ? ^^
                            • Partager sur Facebook
                            • Partager sur Twitter
                              9 janvier 2006 à 20:48:05

                              Moi, je fait un truc semblable en python.
                              Je commence par faire taper un chiffre en variable texte.
                              Ensuite, je vérifie chaque caratère un à un pour m'assurer que c'est toujours un chiffre.
                              Si c'est bien un chiffre, je transforme le style de variable pour pouvoir faire des calculs.


                              a,b,g=raw_input('ecrit ton nombre'),0,1
                              while b<len(a):
                                  if a[b] in['0','1','2','3','4','5','6','7','8','9']:
                                      b+=1
                                  else:
                                      g=0
                                      b=len(a)
                                      print "J'ai dit un chiffre!!"
                              if g:
                                  a=int(a)
                                  print "bravo! tu a ecrit un chiffre.\nen plus",a,"+ 1 =",a+1,


                              heu... voilà... une chance qu'on compte pas en sexagésimal

                              (J'ai vraiment un doute sur l'utilité de ce post...)
                              Edit: j'ai compressé le code en moins de ligne juste pour le fun :-°
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                12 janvier 2006 à 20:55:16

                                Citation

                                while b<len(a):


                                A éviter, a chaque boucle, tu fait apelle a la fonction len, alors qu'un :
                                int sizea = len(a)
                                while b < sizea
                                T'économise quelques tours ^^
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  12 janvier 2006 à 23:45:37

                                  Citation : bluestorm

                                  Hum. Sous linux/unix ?


                                  Encore une façon de conquérir le monde vers Linux bluestorm ? :p
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Insérer If.. else dans jeu?

                                  × 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