aizekyel Noob. | Bonjour,
Je me suis lancé sur la création d'un petit jeu utilisant la console pour débuter a voler de mes propres ailes en C++ (après quelques cours très scolaires et mal expliquer en ISN).
Ainsi je suis plutôt fier de mon petit programme que j'ai réalisé en peu de temps..
Mais j'ai voulus implémenter une variable de monnaie, passant par une fonction simple.
Code :
- int sous(int dummy, int gain) {
- return dummy + gain;
- }
|
J'utilise cette fonction dans ma fonction de "combat" de mon mini jeu, j'ai pas mal brodé autour parce que je suis bloqué dessus depuis quelques heures :
Code :
- int combat(int attqJ, int pvJ, int pvmax, int attqM, int pvM, int dummy) {
- srand(time(0));
- int rep, degats_sub, degats_inf, pause, gain;
- cout<<"Vous avez "<<pvJ<<" PV !"<<endl;
- cout<<""<<endl;
- cout<<"Un monstre sauvage apparait ! Il possede " << attqM <<" d'attaque et " << pvM <<" PV !"<<endl;
- cout<<""<<endl;
- cout<<"Que voulez vous faire ? ATTAQUER [1] / FUIR [2]"<<endl;
- cin>>rep;
- if (rep == 1) {
- do {
- if (pvJ > 0) {
- system("cls" );
- degats_inf = attqJ + ( rand() %5 + 1 );
- pvM = pvM - degats_inf;
- cout<<"Vous attaquez le monstre, lui infligeant "<<degats_inf<<" de degats !"<<endl;
- cout<<"Il lui reste "<<pvM<<" PV !"<<endl;
- degats_sub = attqM + (rand() %5 + 1);
- pvJ = pvJ - degats_sub;
- cout<<"Il riposte en vous infligeant "<<degats_sub<<" de degats !"<<endl;
- cout<<"Il vous reste "<<pvJ<<" PV !"<<endl;
- cout<<""<<endl;
- if (pvM <= 0) {
- cout<<"Le monstre a ete vaincu !"<<endl;
- cout<<""<<endl;
- gain = rand() %75 + 1;
- cout<<"Felicitations ! Vous remportez "<<gain<<" pieces !"<<endl ;
- sous(dummy, gain);
- dummy = sous(dummy, gain);
- cout<<"Votre argent total est de : "<<dummy<<endl;
- cout<<""<<endl;
- if (pvJ < pvmax) {
- cout<<"Il semblerait que vous ayez subit des degats."<<endl;
- cout<<"Passez a une auberge pour vous soigner !"<<endl;
- break;
- }
- else {
- break;
- }
- return dummy;
- }
- else if (pvJ < 0) {
- cout<<"Un villageois vous a retrouver evanoui..."<<endl;
- cout<<"Il semblerait qu'il vous a deplacer dans une auberge..."<<endl;
- break;
- }
- cout<<"Appuyez sur [1] pour continuer"<<endl;
- cin>>pause;
- pause=0;
- system("cls" );
- }
- }while((pvJ > 0) && (pvM > 0));
- }
- else {
- cout<<"Vous fuyez..."<<endl;
- cout<<""<<endl;
- cout<<"Appuyez sur [1] pour continuer"<<endl;
- cin>>pause;
- pause=0;
- system("cls" );
- return 0;
- }
- return 0;
- }
|
Là mon programme m'affiche bien la valeur de la fonction "sous" (qui a un nom très original d'ailleurs, il faut le dire !).
Mais c'est dans mon main que tout cela me casse les bonbons.
Exemple d'un cas 1 pour un combat :
Code :
- [Pleins de définition de variables pas ici...]
- int coins = sous(0,0);
- [Là y'a tout mon code pour les menus etc...]
- case 1: {
- system("cls" );
- cout<<"Vous entrez dans les bois !"<<endl;
- cout<<""<<endl;
- int monster[] = {rand()%10 + 1, rand()%50 + 25};
- combat(stats[0], stats[1], stats[2], monster[0], monster[1], coins);
- cout<<"Tapez [1] pour continuer !"<<endl;
- cin>>pause;
- pause = 0;
- menu = 0;
- break;
- }
|
Et alors mon problème c'est que j'aimerais que "coins" soit à la valeur de ma fonction sous, mais j'arrive pas a récuperer une bonne valeur.
Pourtant dans la fonction combat j'ai bien dummy = 86 (par exemple) j'arrive bien a récuperer la valeur... mais alors dans le main y'a pas moyen.
Si quelqu'un pourrait m'expliquer comment faire, pas juste me donner une réponse s'il vous plaît.
Merci bien !
Cordialement,
Aizekyel.
PS : Je conçois que ça puisse paraître très simple pour certains mais je suis a mes débuts en C++. |