begin process at 2012 05 28 18:25:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

DEV-CPP, RPG, combat, while ne lis pas l'intérieur de la boucle....


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

DEV-CPP, RPG, combat, while ne lis pas l'intérieur de la boucle....

mardi 14 juin 2005 à 02:10:55 | DEV-CPP, RPG, combat, while ne lis pas l'intérieur de la boucle....

Heakons

Bon et bien je suis entrain de faire un petit programme RPG, sous DOS avec Dev-CPP, et lorsque le héros arrive au combat sa produit le résultat suivant:
////////////////résultat///////////////////////////
Garde : Je vais t'eclater la face
--------End------------------------

Mon code:
////////////////Mon Code//////////////////////

//Les includes de librairies:
#include <iostream>
using namespace std; //Cet instruction permet d'éviter d'écrire std:: devant cout, cin, endl...;
//Déclaration des constantes:
enum village { Hi=1, Bifuu, Mizo, Chi, Yuki,/*village secret*/ Oto=101};
//Déclaration des variables:
bool myturn=1; //Quand c'est a vous de jouer ou pas
char name[28]; //Le nom du joueur;
char origine; //Le village d'origine du joueur;
int life, lifemax, XP, lvl; //Les variables se rapportant au héros
int moveEnnemy; //Les variables qui se rapporte au monstre
int idcombat; //Pour les combats
//Prototype de fonction:
int mainmenu(); //Le menu principale;
int option(); //Le menu option qui est info pour le moement;
int origineM(); //Le prototype pour le choix du village;
int nameM(); //La fonction pour le nom;
int intro(); //Le commencement du jeux;
int combatD(); //Le prototype de fonction pour les combat défini
//Première fonction (main);
int main()
{
mainmenu(); //Apelle le menu principale;
cout << "\n\t\t***Fin!***\n"; // La Fin...;
char response;
cin >> response;
return 0;
}

// Les musiks

int mainmenu()
{
    cout << "Bienvenu dans:\n";
    cout << "\t\t\tQuest of Element\n";
    cout << "que desirez-vous?\n";
    cout << "1- Jouez\n";
    cout << "2- Info\n";
    int response;
    cin >> response;
    if (response==1)
    {
    origineM();
    }
    if (response==2)
    {
    option();
    }
    return 0;
    }

    int option()
    {
    cout << "\nMenu Info\n";
    cout << "Bientot un menu info\n";
    system ("PAUSE\n\n");
    return 0;
    }

int origineM()
{
    cout << "\nSur notre ile, 5 villages domnine, lequel vous represente...\n";
    cout << "De quel clan et village venez vous?\n";
    cout << "1- Hi\t (Feu)\n";
    cout << "2- Bifuu (Vent)\n";
    cout << "3- Mizo\t (Terre)\n";
    cout << "4- Chi\t (Eau)\n";
    cout << "5- Yuki\t (Neige)\n";
    int choix;
    cin >> choix;
    switch(choix)
    {
     case 1:
     {
          cout << "Vous êtes originaire du village Hi\n\n";
          origine=Hi;
          nameM();
          break;
          }
     case 2:
     {
          cout << "Vous êtes originaire du village Bifuu\n\n";
          origine=Bifuu;
          nameM();
          break;
     }
     case 3:
     {
          cout << "Vous êtes originaire du village Mizo\n\n";
          origine=Mizo;
          nameM();
          break;
     }
     case 4:
     {
          cout << "Vous êtes originaire du village Chi\n\n";
          origine=Chi;
          nameM();
          break;
     }
     case 5:
     {
          cout << "Vous êtes originaire du village Yuki\n\n";
          origine=Yuki;
          nameM();
          break;
     }
     case 101:
     {
          cout << "Vous êtes un ninja secret du village d'Oto\n\n";
          origine=Oto;
          nameM();
          break;
     }
     default:
     {
             origineM();
             break;
     }
    }
    life=100;
    lifemax=100;
    return 0;
}

int nameM()
{
    cout << "\nQuel est votre nom?\n";
    cin >> name;
    cout << "\nDonc votre nom est " << name << ", si je ne m'abuse?\n";
    cout << "1- oui\n";
    cout << "2- non\n";
    int choixN;
    cin >> choixN;
    if (choixN==1)
    {
    intro();
    }
    if (choixN==2)
    {
    nameM();
    }
    return 0;
    }
    int intro()
    {
    cout << "\nLe 19eme Sousui du village Chuuoubu vous a lancer un message\n";
    cout << "d'a l'aide, a vous et tous les plus jeune enfants, peu importe\n";
    cout << "leur village, ils ont tous été appellez pour aidez l'ile\n";
    cout << "d'un danger grossisant que les anciens n'ont pas su regler.\n";
    cout << "Depuis la dernière guerre le nombre de soldat a chute et la releve\n";
    cout << "s'etablie difficilement. Vous avez donc ete choisi pour nourir\n";
    cout << "les rangs et allez les creatures de l'enfer qui ne cesse\n";
    cout << "d'essayer d'envahir l'ile! ...Bonne chance!\n";
    cout << "**Vous etes a Chuuoubu**\n\n";
    cout << "Sousui : Bienvnue cher combattant, mais avant que vous soyez juger\n";
    cout << "\tcomme l'un des n'autres, je voudrais vous faire passez\n";
    cout << "\tun petit test... si vous n'y voyez pas d'objection.\n";
    cout << name << " : Sa me fera plaisir de realiser vos demande!\n";
    cout << "Sousui : Je veux juste testez tes capacités, tu devras combattre un\n";
    cout << "\tdes membres de ma garde personnelle, n'oubli pas de ne pas le tuer...\n";
    cout << name << " : Parfait!\n";
    idcombat=1;
    combatD();      
    return 0;
}

int combatD()
{
    int HPennemy;
  
    if (idcombat==1)
    {
       HPennemy=250;
       cout << "\n\nGarde : Je vais t'eclater la face\n";
       while (1)
       {
         if (life>lifemax) life=lifemax;
         if (HPennemy<=75)
        {
            cout << "Garde : Je n'en peux plus... tu m'a vaincu\n";
            cout << "**Vous gagnez 35 point d'expérience**\n";
            XP=XP+35;
            break;
        }
         if (life<=0) return 0;
         if (myturn==true)
        {
            cout << "Que va faire " << name << "?\n";
            cout << name << " : " << life << " life | " << lvl << " Level | " << XP << " Exp\n";
            cout << "1- Attaquer";
            cout << "2- Objet";
            cout << "3- Fuir";
            short int moveBattle;
            cin >> moveBattle;
         if (moveBattle==1)
        {
            cout << name << " Frappe de plein fouet...\n";
            HPennemy=HPennemy - 47;
            myturn=false;
        }
         if (moveBattle==2)
        {
        }
         if (moveBattle==3)
        {
            cout << "Tu ne peux pas fuir lors de ton Initiation!\n";
        }
         if (myturn==false)
        {
            moveEnnemy=rand()%3;
            if (moveEnnemy==1)
             {
            int puissanceCoup=rand()%12;
               cout << "L'ennemy vous frappe de : " << puissanceCoup << "...\n";
               life=life - puissanceCoup;
            myturn=true;
             }
            if (moveEnnemy==2)
             {
               int puissanceCoup=rand()%12;
               cout << "L'ennemy vous frappe de : " << puissanceCoup << "...\n";
               life=life - puissanceCoup;
               myturn=true;
             }
            if (moveEnnemy==3)
             {
               int guerison=rand()%30;
               cout << "L'ennemy se regénere de " << guerison << " point de vie.\n";
               myturn=true;
             }
        }
        }
        }
    }
    return 0;
}

Je sais pas si quelqu'un peux m'aidé, mais sa serais gentil de votre pars.
Merci d'avance!
(:-- Heakons --:)


mardi 14 juin 2005 à 02:12:26 | Re : DEV-CPP, RPG, combat, while ne lis pas l'intérieur de la boucle....

Heakons

Et aussi, si quelqu'un sait comment appellez un fichier extern, sa serais vraimment sympa de m'expliquer le comment!!!
mardi 14 juin 2005 à 08:40:58 | Re : DEV-CPP, RPG, combat, while ne lis pas l'intérieur de la boucle....

darfeuille

Je ne vois pas directement ou est le probleme, mais quelques conseils qui t'aideront a le trouver :
1/ fait tres attention a tes variables. C'est très dangereux de les déclarer ainsi, en dehors de tout. Tu devrais plutôt faire un objet pour ton héros, ou onjet pour chaque ennemi etc......
     Ou alors au moins, n'en déclare qu'un minimum en dehors,
2/ tes variables (oui, toujours, le probleme vient de la je pense) sont initialisées un peu nimporte ou et de façon anarchique.

  Je te conseille de faire ceci, au debut de ta fonction combat :

int combatD()
{
    short int moveBattle;  // faut le déclare ici, pas dans une boucle
    int HPennemy = 250;    // initialiser toutes les variables ici
    myturn = 1;
    lifemax = 100;
    life = 100;

    ....
.....


}
Dans le cas ou tu ne veux pas les initialiser ici, passe les en paramètre ou via un objet (c'est le mieux que tu puisse faire, je te le conseille).
Essaye ca, a mon avis ca marchera :)
Tiens nous au courant,
Darfeuille
       






mardi 14 juin 2005 à 13:05:49 | Re : DEV-CPP, RPG, combat, while ne lis pas l'intérieur de la boucle....

Heakons

Merci, je vais tester cela aujourd'hui, et se soir je t'en donnerais des nouvelle, merci, mec!


Cette discussion est classée dans : int, cout, life, origine, namem


Répondre à ce message

Sujets en rapport avec ce message

Pas compris les arguments [ par Bog ] Bonjour.Voila à chaque fois que je me lance dans un projet de programmation C++, je suis tjrs bloqué par certaines choses, surtout les arguments, et c Pas compris les arguments [ par Bog ] Bonjour.Voila à chaque fois que je me lance dans un projet de programmation C++, je suis tjrs bloqué par certaines choses, surtout les arguments, et c implicit declaration of function `int getchar(...)' [ par cognac ] À chaque fois que j'utilise getch(); j'obtien le message suivant:getch();Voici mon programme (en fait mon exercice):#include //bibliotheque d'entree Dans le genre prenant........ [ par Xs ] oui !c 'est trés chiant !j'explique mon pb : j'ai un code source, fais par moi-meme, et dedans, je veux que l'on saisisse des renseignement comme le l Reference pour arguments de fonction! [ par CoxJoe ] Hello,Voila mon code qui est tres simple :# include # include using namespace std;// fonction pour entrer des lettresvoid getchar(char& name[]){ cout une fiche de renseignement [ par cabarrus ] je cherche à faire un programme qui demande des renseignements pour pouvoir ensuite les affiché comme une fiche d'identité!!!voici monprogramme mais m simplifier une fraction ( débutant ) !!! [ par myogtha ] #include int main (){int denominateur,mulfac1,mulfac2,facmul1,facmul2,facmulfinal;int a,b,c,d;coutcin>>a;coutcin>&gt tableau de structures type pointeur [ par chocho ] Merci d'avoir répondu à ma demande d'aide.Voici la source sur laquelle je coince:#include#include#define maxlist 10int indicecourant;struct abonne Pobleme de debutant bas niveau [ par zzzzzz ] #include ?iostream.h? /* pour cout cin */int a;int factorielle(int n) { if(n==0) { return 1; } else { return n*factorielle(n-1); }}void main() Les nombres aléatoires en C++ (Visual C++ 6.0) [ par Yabo ] Tout d'abord voilà le code :CODE #include #include #include #include using namespace std;void animstartscreen() { int n


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,293 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales