Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mini ystème de combat en C

Anonyme
    30 décembre 2005 à 13:33:06

    Salut, je viens pas souvent poster sur les forums mais je les lis régulièrement...

    Je n'ai aps trouvé de solution a mon problème donc j'espère que quelqu'un pourra m'aider...


    #include <cstdlib>
    #include <iostream>
    #include "jet.h"

    int main(int argc, char **argv[])
    {
       
        while(choixLevel < 1 || choixLevel > 1)
    {
    printf("Choisissez un niveau de combat\n\n");
      printf("\t 1. Facile\n");
      scanf("%ld", &choixLevel);
    }

    switch (choixLevel)
          {
              case 1:
              printf("\n Vous rencontrez un gobelin.");
              MAXdefense = 7;
              MINdefense = 1;
              pvtotal = 20;
              break;             
    }
       
        while(choixAttaque< 1 || choixAttaque > 1)
    {
    printf("\n\nChoisissez une attaque\n\n");
      printf(" 1. Attaque\n");
      scanf("%ld", &choixAttaque);
    }
       
       
        switch (choixAttaque)
             {
    case 1:

                MAXattaque = 24;
                MINattaque = 4;
                MAXdegat = 20;
                MINdegat = 15;
       
        srand(time(NULL));
        jetAttaque = (rand() % (MAXattaque - MINattaque + 1)) + MINattaque;
           
        jetDefense = (rand() % (MAXdefense - MINdefense + 1)) + MINdefense;   

    printf ("\n\n Votre jet d'attaque est de %d \n\n", jetAttaque);
    printf ("Son jet de defense est %d \n\n", jetDefense);


    if (jetAttaque>jetDefense)
    {

          jetDegat = (rand() % (MAXdegat - MINdegat + 1)) + MINdegat;   
          printf("\n\nVous lui infligez %ld points de degats \n\n", &jetDegat);
    }




    break;
    }


       
        system("PAUSE");
        return EXIT_SUCCESS;
    }



    Le jet de dégats bug...
    Les fonctions sont dans:
            long choixAttaque = 0;
           
            long attaque;

            long jetDegat = 0;
            long jetDefense = 0;
            long jetAttaque = 0;
            long choixLevel;
           
            long MAXdefense = 0;
            long MINdefense = 0;
            long MAXattaque = 0;
            long MINattaque = 0;
            long MAXdegat = 0;
            long MINdegat = 0;
           
            long pvtotal = 1;
            long pvrestant = 0;
           
            long resultat = 0;




    • Partager sur Facebook
    • Partager sur Twitter
      30 décembre 2005 à 13:38:15

      printf("\n\nVous lui infligez %ld points de degats \n\n", &jetDegat);

      là déjà t'as un "&" en trop non ?
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        30 décembre 2005 à 13:41:21

        oui C'était bien sa, vraiment tout bête, je vais pouvoir continuer avec un système de PVs etc...
        • Partager sur Facebook
        • Partager sur Twitter
          30 décembre 2005 à 14:06:15

          Tiens salut Dornito, pas mal ton jeu !
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            30 décembre 2005 à 14:17:21

            je voudrais savoir ou placer ma fonction while pour répéter ma boucle de combat tant que le gobelin n'est pas mort...

                switch (choixAttaque)
                     {
            case 1:

                        MAXattaque = 24;
                        MINattaque = 4;
                        MAXdegat = 30;
                        MINdegat = 10;
               
                srand(time(NULL));
                jetAttaque = (rand() % (MAXattaque - MINattaque + 1)) + MINattaque;
                   
                jetDefense = (rand() % (MAXdefense - MINdefense + 1)) + MINdefense;   

            printf ("\n\n Votre jet d'attaque est de %d \n\n", jetAttaque);
            printf ("Son jet de defense est %d \n\n", jetDefense);


            if (jetAttaque>jetDefense)
            {

                  jetDegat = (rand() % (MAXdegat - MINdegat + 1)) + MINdegat;   
                  printf("\n\nVous lui infligez %ld points de degats \n\n", jetDegat);
            }

            break;
            }

            if (jetDegat>=pvtotal)
            {
                                 printf("\nLe gobelin est mort\n\n");
            }
            else if (jetDegat<pvtotal)
            {
            pvrestant = pvtotal - jetDegat ;

            printf("\n\n Il reste %ld points de vies au gobelin \n\n", pvrestant);


            }
             
            • Partager sur Facebook
            • Partager sur Twitter
              30 décembre 2005 à 14:22:29

              ben si tu veux pouvoir choisir ton attaque à chaque tour c'est pas compliqué...
              Tu prend le tout ^^

              while(pvrestant>0)
              {
              //ton switch
              //tes if
              //ton printf("vie restante&quot;);
              }


              et là ben tu tourne jusqu'à plus de vie normalement...
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                30 décembre 2005 à 14:26:25

                ça n'as pas l'air de fonctionner ...

                Peut être serait t'il plus simple que je fasse du tour a tour
                uen fois moi, une fois le gobelin...

                • Partager sur Facebook
                • Partager sur Twitter
                  30 décembre 2005 à 14:34:16

                  ouai pas bete...
                  Sinon pour revenir sur ta boucle :
                  ici :
                  if (jetDegat>=pvtotal)
                  {
                  printf("\nLe gobelin est mort\n\n");
                  }


                  Tu peux rajouter un booleen qui prend la valeur 1 :
                  if (jetDegat>=pvtotal)
                  {
                  printf("\nLe gobelin est mort\n\n");
                  mechant_is_dead=1;
                  }

                  en ayant pris soin de le déclarer avant le loop :
                  int mechant_is_dead=0;

                  et apres ben tu fais le while(mechant_is_dead=0){}

                  Moi je dis çà mais je suis un mega zéro de base... :p
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    30 décembre 2005 à 15:00:59

                    Je test quelques petits trucs, et je reiens après pour poster mes idées d'amélio etc...
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      30 décembre 2005 à 16:07:24

                      Tu devrais rajouter des default dans tes switch, si on tape 2... ça plante
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        30 décembre 2005 à 16:30:08

                        Ok, je fait une sorte de version test ou je ne cherche pas a faire planter le programme pour toruver les erreurs...

                        Mais par la suite il ne faut pas que j'oublie...

                        Je suis en train de recoder pour que sa soit plus clair...

                        Si quelqu'un a des idées pour developper le système , faut pas hésiter a dire et pour ce qui voudrait faire un truc similaire au mien postez ici ou l'on fait un post commun pour mettre els idées ensemble et ainsi obtenir un meilleur résultat...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          30 décembre 2005 à 18:05:39

                          essaye de rajouter le paramètre d'agilité qui fait entamer le combat par tel ou tel joueur et aussi les coups critiques (quand une attaque est proche du MAXattaque et que la defense est proche du MINdefense, ca fait un coup critique qui arrache un oeil ou enleve un bras (:p))

                          a++
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            30 décembre 2005 à 18:16:08

                            Je pensait faire un système de D6 D3 pour les dégats attaque defense

                            Et établir des critiques par la suite mais je veux dabord faire un système simple qui fonctionne pour ensuite l'amliorer...
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Mini ystème de combat en C

                            × 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