L'expérience accumulée dans les autres cours m'ayant appris qu'il fallait toujours (et M@teo nous encourage d'ailleurs à le faire) bidouiller un bout de code différent des exemples du cours, j'ai décidé dès le début de créer un mini-jeu de combat.
Bon, pour l'instant les interactions sont très, très limitées (pas le niveau, que voulez-vous ). Je viens de finir la partie I.
Voilà mon code, pourriez-vous me donner des idées de comment l'améliorer/comment avoir un code plus "propre" ? Et si possible, des idées réalisables à mon petit niveau
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int choixMonstre = 0;
int niveauDuJoueur = 1;
int valeurDeCombatDuJoueur = 5;
int valeurDeCombatCastor = 10;
int valeurDeCombatSerpent = 15;
int valeurDeCombatLoup = 20;
int valeurDeCombatOurs = 30;
int valeurDeCombatDragon = 75;
int finiLeJeu = 0;
while (niveauDuJoueur < 10)
{
printf("Bonjour aventurier, tu es actuellement niveau %d. Ta valeur de combat est donc de %d.\nTu gagneras 5 points dans cette valeur a "
"chaque niveau gagne.\n\n\n"
"Quel monstre veux-tu combattre ? Entre le numero correspondant.\n"
"1. Lapin\n"
"2. Castor\n"
"3. Serpent\n"
"4. Loup\n"
"5. Ours\n"
"6. Quitter le jeu\n"
"\n Votre choix ? ", niveauDuJoueur, valeurDeCombatDuJoueur);
scanf("%d", &choixMonstre);
switch (choixMonstre)
{
case 1:
printf("\n\n\nTu affrontes un Lapin ... Et tu le bats !\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, valeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
break;
case 2:
if (valeurDeCombatDuJoueur < valeurDeCombatCastor)
{
printf("\n\n\nTu affrontes un Castor ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Castor ... Et tu le bats !\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, valeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
}
break;
case 3:
if (valeurDeCombatDuJoueur < valeurDeCombatSerpent)
{
printf("\n\n\nTu affrontes un Serpent ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Serpent ... Et tu le bats !\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, valeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
}
break;
case 4:
if (valeurDeCombatDuJoueur < valeurDeCombatLoup)
{
printf("\n\n\nTu affrontes un Loup ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Loup ... Et tu le bats !\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, valeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
}
break;
case 5:
if (valeurDeCombatDuJoueur < valeurDeCombatOurs)
{
printf("\n\n\nTu affrontes un Ours ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Ours ... Et tu le bats !\nBravo, tu as presque fini le jeu, continue un peu jusqu'au "
"niveau 10 !\n\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
system("PAUSE");
system("CLS");
}
break;
case 6:
return 0;
break;
default:
printf("Il y a eu un probleme. Retour au menu.\n\n");
system("PAUSE");
system("CLS");
break;
}
}
while (niveauDuJoueur >= 10 && finiLeJeu == 0)
{
printf("Tu as debloque un monstre bonus, le terrible Dragon !\nSache cependant, aventurier, que tu n'as toujours pas le "
"niveau de l'affronter. Entraine-toi sur ces Ogres en attendant. Tu pourras defier le Dragon quand tu te sentiras pret.\n\n"
"1. S'entrainer contre un Ogre\n"
"2. Affronter le Dragon\n"
"3. Quitter le jeu\n"
"\nQuel est ton choix ? ");
scanf("%d", &choixMonstre);
switch (choixMonstre)
{
case 1:
printf("\n\n\nTu affrontes un Ogre ... Et tu le bats !\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, valeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
break;
case 2:
if (valeurDeCombatDuJoueur < valeurDeCombatDragon)
{
printf("\n\n\nTu te diriges vers la caverne ou se tapie le Dragon ... Ca y est, tu sens que l'air se rechauffe ... "
"Tu cours vers lui en hurlant, ton epee dans les mains ... Et tu te fais massacrer, d'un revers de la patte !\n"
"Retourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu te diriges vers la caverne ou se tapie le Dragon ... Ca y est, tu sens que l'air se rechauffe ... "
"Tu cours vers lui en hurlant, ton epee dans les mains ... Le combat est rude, tu ne vois plus rien, mais tu sens "
"son souffle chaud, alors tu continues a frapper ... Et tu lui perces le coeur !\nBravo, tu as vaincu le terrible "
"Dragon, tu as sauve le monde !\n\n");
finiLeJeu = 1;
system("PAUSE");
system("CLS");
}
break;
default:
printf("Il y a eu un probleme. Retour au menu.\n\n");
system("PAUSE");
system("CLS");
break;
}
}
printf("Petit aventurier est devenu Legende ... Bravo a toi !\n\n");
return 0;
}
PS1 : J'ai remis des guillemets à chaque passage à la ligne pour faire plaisir à Code::Blocks
PS2 : Il manque cruellement d'un facteur aléatoire, j'ai fais des recherches à ce sujet, mais je laisse tomber pour le moment (toujours une histoire de niveau ).
Je trouve que tu as une bonne idée, il faut de l'imagination pour ça... !
Avant d'améliorer peut-être le code, regarde si tu as d'autres idées, puis ensuite améliorer le tout ? Histoire d'avoir une vue d'ensemble... Enfin, c'est ce que je ferais..
Deux ou trois petites idées d'amélioration pour te faire travailler un peu !
- Demande le pseudo du joueur et donne le lorsqu'il a battu le finalboss.
- Fait peut-être un choix d'arme, et tu peux faire que de temps à autres elle monte elle aussi, de sorte que tu puisses battre le dragon.
- Le combat contre le dragon, donne le choix a des attaques, contre-attaque, de fait que si il crache du feu, tu puisse te cacher où l'attaquer, avec des conséquences.
Pour faire un jeu comme ça tu as sûrement du avoir de l'imagination, alors tu en trouveras sûrement d'autres !
Bonne aventure !
EDIT : Attention, quand tu as l'option de taper le dragon ou les ogres, tu ne peux pas quitter le jeu, je viens de remarquer !
- Demande le pseudo du joueur et donne le lorsqu'il a battu le finalboss.
chaine de caractere dans la parite 2
Citation : krakmor
- Fait peut-être un choix d'arme, et tu peux faire que de temps à autres elle monte elle aussi, de sorte que tu puisses battre le dragon.
- Le combat contre le dragon, donne le choix a des attaques, contre-attaque, de fait que si il crache du feu, tu puisse te cacher où l'attaquer, avec des conséquences.
je n'ai rien a rajouter mais il faudra mettre des ficchier source (attaque du dragon, attaque du soldat...)
Tu pourrais rajouter des fonctions, car 170 cases pour un main c'est moyen(enfin je trouve), fait les personnages vraiment combattre, (si tu veux vraiment bien le faire) att un peu tout de même pour les structures^^
http://cpp-rendering.io : Vous trouverez tout ce dont vous avez besoin sur Vulkan / OpenGL et le rendu 3D !
Pour les monstres j'ai mis ce qui m'est venu à l'esprit, j'ai pas trop cherché à approfondir ... tout comme la narration, c'est un peu gnan-gnan, mais bon ...
EDIT : J'ai en fait utilisé des fonctions, une pour chacun des deux menus et une troisième pour le combat - je me suis rendu compte que je galérais un peu sur ce point, fallait que je pratique
J'ai aussi réglé le problème qui empêchait de quitter sur le second menu.
#include <stdio.h>
#include <stdlib.h>
int menu_depart()
{
int choix = 0;
while (choix < 1 || choix > 6)
{
printf("Bonjour aventurier.\n\n\n"
"Quel monstre veux-tu combattre ? Entre le numero correspondant.\n"
"1. Lapin\n"
"2. Castor\n"
"3. Serpent\n"
"4. Loup\n"
"5. Ours\n"
"6. Quitter le jeu\n"
"\n Votre choix ? ");
scanf("%d", &choix);
system("CLS");
}
return choix;
}
int menu_fin()
{
int choix = 0;
while (choix < 1 || choix > 3)
{
printf("Tu as debloque un monstre bonus, le terrible Dragon !\nMais es-tu suffisamment puissant pour le vaincre ? "
"Entraine-toi sur ces Ogres en attendant. Tu pourras defier le Dragon quand tu te sentiras pret.\n\n"
"1. S'entrainer contre un Ogre\n"
"2. Affronter le Dragon\n"
"3. Quitter le jeu\n"
"\nQuel est ton choix ? ");
scanf("%d", &choix);
system("CLS");
}
return choix;
}
int combat(int combatPersonnage, int combatAdversaire)
{
return combatPersonnage - combatAdversaire;
}
int main(int argc, char *argv[])
{
int niveauDuJoueur = 1;
int valeurDeCombatDuJoueur = 5;
int valeurDeCombatCastor = 10;
int valeurDeCombatSerpent = 15;
int valeurDeCombatLoup = 20;
int valeurDeCombatOurs = 30;
int valeurDeCombatDragon = 75;
int finiLeJeu = 0;
int resultatCombat = 0;
while (niveauDuJoueur < 10)
{
switch (menu_depart())
{
case 1:
printf("\n\n\nTu affrontes un Lapin ... Et tu le bats !\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, valeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
break;
case 2:
resultatCombat = combat(valeurDeCombatDuJoueur, valeurDeCombatCastor);
if (resultatCombat < 0)
{
printf("\n\n\nTu affrontes un Castor ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Castor ... Et tu le bats !\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, valeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
}
break;
case 3:
resultatCombat = combat(valeurDeCombatDuJoueur, valeurDeCombatSerpent);
if (resultatCombat < 0)
{
printf("\n\n\nTu affrontes un Serpent ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Serpent ... Et tu le bats !\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, valeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
}
break;
case 4:
resultatCombat = combat(valeurDeCombatDuJoueur, valeurDeCombatLoup);
if (resultatCombat < 0)
{
printf("\n\n\nTu affrontes un Loup ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Loup ... Et tu le bats !\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, valeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
}
break;
case 5:
resultatCombat = combat(valeurDeCombatDuJoueur, valeurDeCombatOurs);
if (resultatCombat < 0)
{
printf("\n\n\nTu affrontes un Ours ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Ours ... Et tu le bats !\nBravo, tu as presque fini le jeu, continue un peu jusqu'au "
"niveau 10 !\n\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
system("PAUSE");
system("CLS");
}
break;
case 6:
return 0;
break;
default:
printf("Il y a eu un probleme. Retour au menu.\n\n");
system("PAUSE");
system("CLS");
break;
}
}
while (niveauDuJoueur >= 10 && finiLeJeu == 0)
{
switch (menu_fin())
{
case 1:
printf("\n\n\nTu affrontes un Ogre ... Et tu le bats !\n");
niveauDuJoueur ++;
valeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, valeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
break;
case 2:
resultatCombat = combat(valeurDeCombatDuJoueur, valeurDeCombatDragon);
if (resultatCombat < 0)
{
printf("\n\n\nTu te diriges vers la caverne ou se tapie le Dragon ... Ca y est, tu sens que l'air se rechauffe ... "
"Tu cours vers lui en hurlant, ton epee dans les mains ... Et tu te fais massacrer, d'un revers de la patte !\n"
"Retourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu te diriges vers la caverne ou se tapie le Dragon ... Ca y est, tu sens que l'air se rechauffe ... "
"Tu cours vers lui en hurlant, ton epee dans les mains ... Le combat est rude, tu ne vois plus rien, mais tu sens "
"son souffle chaud, alors tu continues a frapper ... Et tu lui perces le coeur !\nBravo, tu as vaincu le terrible "
"Dragon, tu as sauve le monde !\n\n");
finiLeJeu = 1;
system("PAUSE");
system("CLS");
}
break;
case 3:
return 0;
break;
default:
printf("Il y a eu un probleme. Retour au menu.\n\n");
system("PAUSE");
system("CLS");
break;
}
}
printf("Petit aventurier est devenu Legende ... Bravo a toi !\n\n");
return 0;
}
Hm oui Kahite désolé, en fait le TP je l'avais survolé, étant donné que ce codage est déjà mon fil rouge :-*
Mais apparemment on y apprend des trucs donc je les fait désormais.
Très bonne idée C159, j'arrive aux pointeurs, là où j'ai bloqué les deux dernières fois que j'ai essayé d'apprendre, donc je pense que je vais faire une 'tite pause pour améliorer le système.
Je pense rajouter au moins attaque et défense plutôt que "valeur de combat", si j'y arrive je ferai que le joueur décide d'où il met ses points de caractéristique, et j'vais faire un système de combat plus évolué.
Ce que tu pourrais faire aussi, c'est essayer de rendre le système de combat plus stratégique et de mettre de l'expérience en plus des niveaux, et comme dans la plupart des RPG donner un niveau au joueur dès qu'il a atteint tant d'expérience, pour faire ça c'est pas très dur, tu peux le faire en une seule fonction que tu appelles à la fin de chaque combat.
Salut, pas besoin d'être désolé.
T'as de bonnes idées, sinon au lieu d'une seule variable valeur de combat, tu peut mettre plusieurs choses (Exemple : point de vie, mana, attaque, defense ...).
Ensuite tu peut ajouter différents type de personnages à choisir (Exemple : Magicien (plus de mana), Guerrier (plus de PV))
Ou encore différents type d'armes et d'armures (exemple: pas d'armure, armure lourde, bouclier, épée, arbalète, hache, ...)
J'm'embale peut-être un peu .
Regarde le chapitre sur les structures, ca permettra de faire les améliorations que je t'ai dis plus simplement.
@Ojii : Oui, c'est prévu avec les caractéristiques (pour gagner des points à dépenser il faut gagner des niveaux), et chaque monstre (oui, le lapin et le castor sont des monstres) donnera un certain nombre d'expérience.
@Kahite : non, tu ne t'emballes pas, c'est prévu à long terme =p Ainsi qu'une boutique pour acheter les armes, une autre pour les armures ... Mais ça se fera bien plus tard, juste avant d'entamer la création de la fenêtre je pense. Pour le moment, bonne nouvelle, je comprend mieux les pointeurs qu'avant x) (d'ailleurs le chapitre a été refait non ?). Ah oui, j'oubliais : ton lien dans ta signature, Ça coule de Source, vraiment top.
J'ai un peu l'impréssion que ton code se répète au niveau des combats.
Je m'explique : A mon avis, on peu réduire un peu le code en faisant une fonction combat, qui prendrais en paramètre par exemple un pointeur vers les caractéristiques de ton personnage (pointeur pour pouvoir les modifiers), et aussi les caractéristiques(+nom de l'ennemi, éventuellement un message spécial si ton personnage gagne ou perd, qui peut éventuellement renvoyer un int pour signaler le résultat du combat.
Enfin ce n'est qu'une ébauche (tu peux amélioré/modifier la fonction que je te propose) et tu peux faire d'autres choses après (comme créer une fonction qui permet au joueur de choisir arme/attaque, ou autre chose au début du combat, ou qui lui permet de réaliser des attaques spéciales ect...).
De toutes façon, à mon avis, les idées te viendront au fur et à mesure que tu apprendras de nouvelles notions en C (éventuellement C++ après, surtout que les exemples donnés par M@téo se rapprochent de ton petit exercice).
J'pense que ça peut être assez formateur d'améliorer au fur et à mesure ton programme à la fin de chaque nouveau chapitre.
C'est exactement ce que je pensais faire, là j'ai créé deux nouveaux fichiers, un "menu.c" et un "combat.c" et les headers qui vont avec, suite au chapitre sur le sujet.
A chaque avancée "conséquente" (je pense par exemple après le chapitre des pointeurs), je mettrai le nouveau code je pense, si ça vous dérange pas
Minimas, si c'est un projet, je suis d'accord pour t'aider a coder(etant donner que je me "debrouille en pointeur et en tableau et que toi tu les commences^^".
Cordialement Qnope
http://cpp-rendering.io : Vous trouverez tout ce dont vous avez besoin sur Vulkan / OpenGL et le rendu 3D !
Hm je sais pas trop encore si c'est un projet, ça pourrai le devenir, mais pour l'instant c'est un fil rouge pour l'apprentissage des cours.
Donc je vais finir les cours comme ça, et puis si je décide d'aller plus loin je te recontacte
@qnope : Merci de ce conseil, je le mettrai en place à la prochaine "grosse" modif.
Installation des pointeurs, ouais ils changent rien, mais ça entraîne
main.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int niveauDuJoueur = 1;
int valeurDeCombatDuJoueur = 5;
int *pointeurValeurDeCombatDuJoueur = &valeurDeCombatDuJoueur;
int valeurDeCombatCastor = 10;
int *pointeurValeurDeCombatCastor = &valeurDeCombatCastor;
int valeurDeCombatSerpent = 15;
int *pointeurValeurDeCombatSerpent = &valeurDeCombatSerpent;
int valeurDeCombatLoup = 20;
int *pointeurValeurDeCombatLoup = &valeurDeCombatLoup;
int valeurDeCombatOurs = 30;
int *pointeurValeurDeCombatOurs = &valeurDeCombatOurs;
int valeurDeCombatDragon = 75;
int *pointeurValeurDeCombatDragon = &valeurDeCombatDragon;
int finiLeJeu = 0;
int resultatCombat = 0;
while (niveauDuJoueur < 10)
{
switch (menu_depart())
{
case 1:
printf("\n\n\nTu affrontes un Lapin ... Et tu le bats !\n");
niveauDuJoueur ++;
*pointeurValeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, *pointeurValeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
break;
case 2:
resultatCombat = combat(pointeurValeurDeCombatDuJoueur, pointeurValeurDeCombatCastor);
if (resultatCombat < 0)
{
printf("\n\n\nTu affrontes un Castor ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Castor ... Et tu le bats !\n");
niveauDuJoueur ++;
*pointeurValeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, *pointeurValeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
}
break;
case 3:
resultatCombat = combat(pointeurValeurDeCombatDuJoueur, pointeurValeurDeCombatSerpent);
if (resultatCombat < 0)
{
printf("\n\n\nTu affrontes un Serpent ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Serpent ... Et tu le bats !\n");
niveauDuJoueur ++;
*pointeurValeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, *pointeurValeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
}
break;
case 4:
resultatCombat = combat(pointeurValeurDeCombatDuJoueur, pointeurValeurDeCombatLoup);
if (resultatCombat < 0)
{
printf("\n\n\nTu affrontes un Loup ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Loup ... Et tu le bats !\n");
niveauDuJoueur ++;
*pointeurValeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, *pointeurValeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
}
break;
case 5:
resultatCombat = combat(pointeurValeurDeCombatDuJoueur, pointeurValeurDeCombatOurs);
if (resultatCombat < 0)
{
printf("\n\n\nTu affrontes un Ours ... Et tu perds !\nRetourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu affrontes un Ours ... Et tu le bats !\nBravo, tu as presque fini le jeu, continue un peu jusqu'au "
"niveau 10 !\n\n");
niveauDuJoueur ++;
*pointeurValeurDeCombatDuJoueur += 5;
system("PAUSE");
system("CLS");
}
break;
case 6:
return 0;
break;
default:
printf("Il y a eu un probleme. Retour au menu.\n\n");
system("PAUSE");
system("CLS");
break;
}
}
while (niveauDuJoueur >= 10 && finiLeJeu == 0)
{
switch (menu_fin())
{
case 1:
printf("\n\n\nTu affrontes un Ogre ... Et tu le bats !\n");
niveauDuJoueur ++;
*pointeurValeurDeCombatDuJoueur += 5;
printf("Tu es desormais niveau %d, et as donc %d de valeur de combat.\n\n", niveauDuJoueur, *pointeurValeurDeCombatDuJoueur);
system("PAUSE");
system("CLS");
break;
case 2:
resultatCombat = combat(pointeurValeurDeCombatDuJoueur, pointeurValeurDeCombatDragon);
if (resultatCombat < 0)
{
printf("\n\n\nTu te diriges vers la caverne ou se tapie le Dragon ... Ca y est, tu sens que l'air se rechauffe ... "
"Tu cours vers lui en hurlant, ton epee dans les mains ... Et tu te fais massacrer, d'un revers de la patte !\n"
"Retourne t'entrainer un peu, tu n'as pas le niveau !\n\n");
system("PAUSE");
system("CLS");
}
else
{
printf("\n\n\nTu te diriges vers la caverne ou se tapie le Dragon ... Ca y est, tu sens que l'air se rechauffe ... "
"Tu cours vers lui en hurlant, ton epee dans les mains ... Le combat est rude, tu ne vois plus rien, mais tu sens "
"son souffle chaud, alors tu continues a frapper ... Et tu lui perces le coeur !\nBravo, tu as vaincu le terrible "
"Dragon, tu as sauve le monde !\n\n");
finiLeJeu = 1;
system("PAUSE");
system("CLS");
}
break;
case 3:
return 0;
break;
default:
printf("Il y a eu un probleme. Retour au menu.\n\n");
system("PAUSE");
system("CLS");
break;
}
}
printf("Petit aventurier est devenu Legende ... Bravo a toi !\n\n");
return 0;
}
menu.c
#include <stdio.h>
#include <stdlib.h>
#include "menu.h"
int menu_depart()
{
int choix = 0;
while (choix < 1 || choix > 6)
{
printf("Bonjour aventurier.\n\n\n"
"Quel monstre veux-tu combattre ? Entre le numero correspondant.\n"
"1. Lapin\n"
"2. Castor\n"
"3. Serpent\n"
"4. Loup\n"
"5. Ours\n"
"6. Quitter le jeu\n"
"\n Votre choix ? ");
scanf("%d", &choix);
system("CLS");
}
return choix;
}
int menu_fin()
{
int choix = 0;
while (choix < 1 || choix > 3)
{
printf("Tu as debloque un monstre bonus, le terrible Dragon !\nMais es-tu suffisamment puissant pour le vaincre ? "
"Entraine-toi sur ces Ogres en attendant. Tu pourras defier le Dragon quand tu te sentiras pret.\n\n"
"1. S'entrainer contre un Ogre\n"
"2. Affronter le Dragon\n"
"3. Quitter le jeu\n"
"\nQuel est ton choix ? ");
scanf("%d", &choix);
system("CLS");
}
return choix;
}
combat.c
#include <stdio.h>
#include <stdlib.h>
#include "combat.h"
int combat(int *pointeurCombatPersonnage, int *pointeurCombatAdversaire)
{
return *pointeurCombatPersonnage - *pointeurCombatAdversaire;
}
× 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.
(si c'est possible, en fonction de t capacité)