Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] Quelques problemes simples

    29 décembre 2005 à 11:15:16

    Bonjour , je fais un programme pour gerer une bataille entre un joueur et l'ordinateur .
    Voici quelques uns de mes problemes :
    - Comment arrondir un nombre .. Effectivement si une attaque enleve 1/2 des hp de l'adversaire et que celui ci à 3 hp , si je veux garder des nombres entiers , il faut que j'arrondisse 1,5 à 1 ou à 2 ( l'un ou lautre ca me derrange pas )
    - Comment marquer des limites .. Par exemple , si un sort régénère de 200 vie le lanceur et que celui ci a 100/200 hp , je veux qu'il ai 200/200 hp et non pas 300/200 hp Smiley bien sur on pourrait faire une grosse condition bien lourde genre si hp est au dessus de hpmax , hp devient hpmax mais si vous avez quelque chose de plus pratique ...
    - Quelque chose qui distribue directement les attaques du joueur . Je m'explique . Le joueur doit faire un choix entre 4 attaques , seulement , si je fais 200 attaques , imaginons qu'il ai 4 de ces 200 attaques à chaque debuts de combat mais pas toujours les memes , comment je peux faire pour gerer son tour seulement avec les 4 attaques qu'il a et non pas faire 200 conditions pour chaque attaques genre "si elle existe et qu'il l'a choisi , elle agit .. " 200 fois de suite

    Si vous avez des idées merci de m'aider Smiley
    • Partager sur Facebook
    • Partager sur Twitter
      29 décembre 2005 à 11:23:40

      Citation : m@theo21

      ceil


      Cette fonction renvoie le premier nombre entier après le nombre décimal qu'on lui donne.

      C'est une sorte d'arrondi. On arrondit en fait toujours au nombre entier supérieur.
      Par exemple, si on lui donne 26.512, la fonction renvoie 27.

      Cette fonction s'utilise de la même manière, et renvoie un double :

      Code : C
      double dessus = 0, nombre = 52.71;

      dessus = ceil(nombre); // dessus vaudra 53

      • Partager sur Facebook
      • Partager sur Twitter
        29 décembre 2005 à 11:27:08

        ah , merci ^^ par contre si je mets cette fonction et que le nombre est deja entier , elle fait rien j'espere ?
        • Partager sur Facebook
        • Partager sur Twitter
          29 décembre 2005 à 11:31:05

          c'est une bonne question j'ai jamais utiliser cette fonction mais bon un test en 2 seconde c'est vite fait ;)
          • Partager sur Facebook
          • Partager sur Twitter
            29 décembre 2005 à 11:31:09

            1/ Il existe round() dans math.h
            Sinon tu peux te faire toi-même ta fonction avec un peu de logique mathématique...
            2/ Euh, je ne vois pas trop ce qui serait plus simple qu'une condition... On n'a pas vraiment le choix, il faut vérifier que ça ne dépasse jamais les HP max...
            3/ J'ai pas trop compris. Une fois qu'il a choisi ses attaques et qu'elles sont stockées dans une variable, quel est l'intérêt de faire des conditions sur toutes les attaques possibles...?
            • Partager sur Facebook
            • Partager sur Twitter
              29 décembre 2005 à 15:09:41

              ah euh ok merci ^^
              sinon jai un autre petit prob
              je fais une fonction soin qui doit régénéré le lanceur
              voila le code :

              Citation : attaque soin

              void soin(long forceA )
              {
              long valeur_du_soin = forceA * 5;

              HPA = HPA + valeur_du_soin ;



              }


              forceA represente la puissance du lanceur
              HPA represente les vies du lanceur , une variable globale
              le probleme c'est que quand je teste par exemple

              Citation : utilisation de soin

              soin(9)

              (en admettant donc que la puissance du lanceur est 9) les vies du lanceur restent les memes alors qu'elles devraient augmenter de 45 ^^
              • Partager sur Facebook
              • Partager sur Twitter
                30 décembre 2005 à 5:32:01

                La reflexion a avoir quand on a un probleme du genre est de faire des printf un peu partout pour savoir si par exemple le calcul_du_soin est effectué etc.. :)
                A bon entendeur.
                • Partager sur Facebook
                • Partager sur Twitter
                  30 décembre 2005 à 12:12:10

                  Citation : Mite-Moisie

                  Citation : attaque soin

                  void soin(long forceA )
                  {
                  long valeur_du_soin = forceA * 5;

                  HPA = HPA + valeur_du_soin ;



                  }



                  La variable HPA n'est pas déclarée :-°
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [C] Quelques problemes simples

                  × 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