C'est un prjet sur un jeu de role qu'on doit faire en bts 1° année
j'aimerais quelques aides dessus
comme l'affichage an dos application d'image importées
merci d'avance!!!
Source / Exemple :
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>
#define nbjoueur 3
#define nbmonstre 23
randomize();
void srand(
unsigned int seed
);
//variables***********************************************************************************************************************************************************************************
int indice,choixtyperso,maxchoix;
char typarm[5][20]={"une mithdague","un arc","une hache","un baton beni","une galaxias"};//on initialise les armes
char typequip[6][20]={"un chapopointu","un gilet de mithril","des desert boots","une robe gaia","une chevaliere","un turban"};//on initialise l'equipement dans un tableau
char type[5][20]={"le mage","le guerrier","l'elfe","le nain","l'orque"};//on initialise le tableau des types de personnages
char Tlieu[8][20]={"la clairiere","le bois","la campagne","la colline","le sous-sol","la montagne","le ciel","le passage secret"};
int tabmaximonstr[9];//pour savoir combien il y a de monstres dans chaque lieu
int max[nbjoueur];//le classement des joueurs
//structures de données***********************************************************************************************************************************************************************
struct monstr//structure d'un monstre
{
char nommonstr[20];
int nummonstre,ptvie,ptattak,ptgagn,pointinit,nbfoisrencontre;
};
monstr tabmonstres[30];
struct person//structure d'un personnage
{
int victoire,pointvie,nbmonstrtu,pontarm,pontlieu,tabnummonstretues[30],PointTotal;
char nom[20],typers[20],arme[20],equipment[20],tabmonstretues[30][20],tablieurencontre[30][20];
};
person tabjoueur[nbjoueur];//tableau des joueurs de "person" comme type
struct lieu//structure d'un lieu
{
char nomlieu[20];
int numlieu;
monstr tabmonstr[6];//tableau avec une structure de données de type monstre
};
lieu tablieu[9];//tableau de 9 lieux avec toutes les données de lieu
struct chances//structure pour donner un peu de chance au joueur
{
char nom[20];
int nb;
};
chances tabchance[9];
struct arm
{
char nom[20];
int ptplus,ptat;//chaque arme a un statut diferent
};
arm tabarm[5];//tableau des armes
struct gagn
{
int num,point;
};
gagn tabgagn[nbjoueur];
//procedures d'inialisation*******************************************************************************************************************************************************************
void ar(int j,char nom[20],int pointarm,int point)//procedure de remplissage
{
strcpy(tabarm[j].nom,nom);
tabarm[j].ptat=pointarm;
tabarm[j].ptplus=point;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void remparm()//pour initialiser les differentes armes
{
ar(0,typarm[0],20,1);
ar(1,typarm[1],18,3);
ar(2,typarm[2],25,-1);
ar(3,typarm[3],16,5);
ar(4,typarm[4],19,2);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void chan(int I,char mcan[20],int ptplus)//procedure de remplissage
{
strcpy(tabchance[I].nom,mcan);
tabchance[I].nb=ptplus;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void chanceux()//on initialise les differentes types de chance
{
chan(0,"rien",0);
chan(1,"rien",0);
chan(2,"une potion",10);
chan(3,"rien",0);
chan(4,"rien",0);
chan(5,"rien",0);
chan(6,"une super-potion",20);
chan(7,"rien",0);
chan(8,"rien",0);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void affichtitre()//pour presenter le jeu
{
cout<<"\n****************************ROLE FANTASY****************************************\n";
cout<<"**************** **Jeu de role massivement multijoueur!!************************\n";
cout<<"*************** **************BIENVENUE*****************************************\n";
cout<<"************** ***_____________________________________*** *********************\n";
cout<<"************** ***| --- ^--^ |*** *********************\n";
cout<<"************** ***| |o o| <(o)(o)> |*** *********************\n";
cout<<"************** ***| (-) ( öö ) |*** *********************\n";
cout<<"************** ***| - | | - (^^) |*** *********************\n";
cout<<"**************** *|___v_v_______________ww____________|* ***********************\n";
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void GameOver()//quand on aura perdu
{
cout<<"oooooooooooooooooooooooooooooGAME OVERoooooooooooooooooooooooooooooooooooooooooo\n";
cout<<"oooooooooooooooooooooooDommage vous avez perdu!!oooooooooooooooooooooooooooooooo\n";
cout<<"o o ô ô o o\n";
cout<<"o o ¨ o o\n";
cout<<"o o --- o o\n";
cout<<"oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo\n";
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void remplimonstr(int K,int I,int J,char mo[20],int nbV,int nbA,int nbG,int PtIni)//procédure pour remplir les données des monstres
{
strcpy(tablieu[I].tabmonstr[J].nommonstr,mo);
tablieu[I].tabmonstr[J].ptvie=nbV;
tablieu[I].tabmonstr[J].ptattak=nbA;
tablieu[I].tabmonstr[J].ptgagn=nbG;
tablieu[I].tabmonstr[J].pointinit=PtIni;
tablieu[I].tabmonstr[J].nummonstre=K;
tablieu[I].tabmonstr[J].nbfoisrencontre=0;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void rempmonstr()//remplissage des données sur les monstres
{
remplimonstr(0,0,0,"un loup",10,4,4,10);
remplimonstr(1,0,1,"un renard",9,3,3,9);
remplimonstr(2,0,2,"une fouine",5,2,2,5);
remplimonstr(3,0,3,"un blaireau",13,6,6,13);
tabmaximonstr[0]=4;//premier lieu
remplimonstr(4,1,0,"un ogre",20,6,6,20);
remplimonstr(5,1,1,"un loup-garou",18,5,5,18);
remplimonstr(6,1,2,"une chauve-souris",5,2,2,5);
remplimonstr(7,1,3,"un gobelin",6,3,3,6);
tabmaximonstr[1]=4;// deuxieme lieu
remplimonstr(8,2,0,"une grenouille",6,2,2,6);
remplimonstr(9,2,1,"une abeille",5,2,2,5);
remplimonstr(10,2,2,"un serpent",4,3,3,4);
remplimonstr(11,2,3,"une araignée",4,2,2,4);
tabmaximonstr[2]=4;//troisieme lieu
remplimonstr(12,3,0,"une succube",15,8,8,15);
remplimonstr(13,3,1,"un yeti",30,14,14,30);
remplimonstr(14,3,2,"un ours",25,10,10,25);
tabmaximonstr[3]=3;//quatrieme lieu
remplimonstr(15,4,0,"une licorne",99999,99999,0,99999);
tabmaximonstr[4]=1;//cinquieme lieu
remplimonstr(16,5,0,"une stalacite",40,20,20,40);
remplimonstr(17,5,1,"un hermite",20,30,30,20);
remplimonstr(18,5,2,"un glassos",10,8,8,10);
remplimonstr(19,5,3,"un loup des neiges",9,8,8,9);
tabmaximonstr[5]=4;//sixieme lieu
remplimonstr(20,6,0,"un phenix",99,99,50,99);
tabmaximonstr[6]=1;//septieme lieu
remplimonstr(21,7,0,"l'HYDRE",70,15,70,70);
remplimonstr(22,7,1,"un alligator",25,10,10,25);
tabmaximonstr[7]=2;//huitieme lieu
}
//********************************************************************************************************************************************************************************************
void personnage(int M)//procédure qui saisit le nom d'un personnage
{
cout<<"Entrez le nom de votre personnage"<<"\n";
cin>>tabjoueur[M].nom;//on remplie le tableau avec les noms
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
int ressai(int CHOIXT,int MAXI)//fonction qui va renvoyer le choix des qu'il sera bon
{
while((CHOIXT>MAXI)||(CHOIXT<1))
{
cout<<"\nEntrez une valeur possible!\n";
cin>>CHOIXT;
}
return(CHOIXT);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void typers_(int Q)//procedure pour choisir un type de personnage
{
cout<<"PERSONNAGE: Vous avez le choix entre (tapez le numero correspondant):\n 1)Un mage\n 2)Un guerrier\n 3)Un elfe\n 4)un nain\n 5)un orque\n ";
maxchoix=5;
cin>>choixtyperso;
choixtyperso=ressai(choixtyperso,maxchoix);//on recupere la valeu de la fonction qui verifie si la saisie est bonne
cout<<"\nVous prenez "<<type[choixtyperso-1]<<"\n\n";//car on commence a 0 en c++(idem pour les autres saisies de materiel)
strcpy(tabjoueur[Q].typers,type[choixtyperso-1]);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void typequip_(int S)//procedure pour choisir son equipement
{
int choixequip,maxi;
cout<<"EQUIPEMENT: Vous avez le choix entre (tapez le numero correspondant):\n 1)Un chapopointu\n 2)Un gilet en mithril\n 3)Des desert boots\n 4)une robe gaia\n 5)une chevalière\n 6)un turban";
maxi=6;//pour fixer la limite
cin>>choixequip;
choixequip=ressai(choixequip,maxi);//on verifie si la saisie est bonne
cout<<"\nVous prenez "<<typequip[choixequip-1]<<"\n\n";//pour eviter un selon
strcpy(tabjoueur[S].equipment,typequip[choixequip-1]);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void typarm_(int F)//procedure pour choisir son arme
{
remparm();
int choixtypersoarm,maxi;
cout<<"ARME: Vous pouvez choisir entre (tapez le numero correspondant):\n1)Une mithdague\n2)Un arc\n3)Une hache\n4)Un baton benie\n5)Une galaxias\n\n";
maxi=5;//le maximum d'equipements
cin>>choixtypersoarm;//selon le choix du personnage, on incremente la valeur
choixtypersoarm=ressai(choixtypersoarm,maxi);//on verifie si la saisie est bonne
strcpy(tabjoueur[F].arme,tabarm[choixtypersoarm-1].nom);//(-1) car l'adresse du tableau commence a zero
tabjoueur[F].pontarm=(choixtypersoarm-1);//pour savoir l'arme qu'il a choisi, on recupere l'indice
cout<<"\n Vous prenez "<<typarm[choixtypersoarm-1]<<"\n";
cout<<"Avec cette arme,vous tapez avec un maximum de "<<tabarm[choixtypersoarm-1].ptat<<"\net vous avez ";
if(tabarm[choixtypersoarm-1].ptplus>0)
cout<<tabarm[choixtypersoarm-1].ptplus<<" de bonus\n\n";
else
cout<<tabarm[choixtypersoarm-1].ptplus<<" de malus\n\n";
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void typeperso(int D)//procedure de sous-menu du choix d'un personnage
{
int j;
for(j=1;j<=3;j++)//par choix
{
switch(j)//(j) : pour qu'il choississe d'abord le 1 ds le menu, puis 2 , puis 3
{
case 1:cout<<"\n Choix de votre personnage "<<"\n";typers_(D);break;
case 2:cout<<"\n Choix de votre equipement\n";typequip_(D);break;
case 3:cout<<"\n Choix de votre arme\n\n";typarm_(D);break;
}
}
}
//menu 1:choix des personnages et de leurs caracteristiques***********************************************************************************************************************************
void choixperso()//procédure de choix d'un personnage
{
int i,k;
for (i=0;i<=(nbjoueur-1);i++)//par personnage
{
for(k=1;k<=2;k++)
{
switch(k)//pour obliger a suivre un deroulement de saisies
{
case 1:cout<<"1: CHOIX DU NOM DU PERSONNAGE\njoueur "<<(i+1)<<"\n";personnage(i);break;
case 2:cout<<"2: CHOIX DU TYPE DE PERSONNAGE\n";typeperso(i);break;//prevoir un autre menu
}
}
}
}
//menu 2:verification des personnages*********************************************************************************************************************************************************
void verifperso()//Montre le resultat de la saisie
{
int k;
char boul[1];
for(k=0;k<=(nbjoueur-1);k++)//pour chaque joueur, on fait l'application
{
cout<<"\nJoueur "<<(k+1)<<" vous vous appelez "<<tabjoueur[k].nom;
cout<<"\nVous etes "<<tabjoueur[k].typers;
cout<<"\nVous avez pris "<<tabjoueur[k].arme;
cout<<"\nEt vous portez "<<tabjoueur[k].equipment<<"\n";
}
cout<<"\nVoulez-vous garder cette configuration?(o/n) ";
cin>>boul;
if(strcmp(boul,"o")==0)
cout<<"Fin de verification\n\n";//s'il n'y a plus de joueur alors on arrete la verification
else
{
cout<<"Retour au choix du personnage\n";//l'inconvenient est que le choix se fera encore pour les 2 personnages
choixperso();//on rappelle la procedure de choix des personnages
}
cout<<"\n\n";
}
//menu 3:les regles***************************************************************************************************************************************************************************
void regles()//ce sont les regles du jeu
{
int touche;
cout<<"\nREGLES DU JEU\n";
cout<<"Votre quotas de points de vie s'initialise au debut d'une partie a 50 points\n";
cout<<"Tant que vous n'etes pas mort vous pouvez continuer :o)!\nSi vous etes mort vos points de combats s'enregistrent\n";
cout<<"Vos points de combats gagnes changent selon le monstre rencontre\n";
cout<<"Essayer de decouvrir le passage secret qui mene au boss final!!\n";
cout<<"\nAppuyez sur un chiffre pour continuer\n";
cin>>touche;
cout<<"Vous devez tuez tous les monstres\nOu vous avez la possibilite de vous arreter a tout moment\nUn boss peut survenir a tout moment, meme avant la fin du jeu!!!\n..Mefiez-vous!!\n";
cout<<"Par combat, vous avez 60 secondes\nEt par joueur vous avez 20 minutes\n";
cout<<"2 monstres speciaux peuvent apparaitre devant vous :\n l'un vous portera chance, l'autre....\n\n";
cout<<"Le gagnant est celui qui a le plus de points\n";
cout<<"Un bonus sera donné pour celui qui tuera un maximum de monstres\n\n";
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void endroit()//procedure d'enregistrement des lieux
{
int i;
for(i=0;i<=8;i++)
{
strcpy(tablieu[i].nomlieu,Tlieu[i]);//pour initialiser les noms des lieux
tablieu[i].numlieu=i;
}
}
//****************************************les 3 procedures suivantes sont celles du jeu*******************************************************************************************************
void jeuinterne(int J,int HASARDL,int HASARDM)//procedure de jeu interne(le corps du jeu)
{
chanceux();
remparm();
int coup,tapej,tapem,pas,chA,aa;
cout<<"\nA vous de jouer!!! "<<tabjoueur[J].nom;
cout<<"\nAppuyez sur un chiffre pour tapez ";
cin>>coup;
aa=tabjoueur[J].pontarm;//pour eviter d'ecrire toute cette variable , on la place dans une autre, c'est plus court
tapej=(rand()%tabarm[aa].ptat)+1;//le nombre de points que le joueur puet enlever au monstre
cout<<"\nVous lui enlevez "<<tapej<<" points de vie";
tablieu[HASARDL].tabmonstr[HASARDM].ptvie=tablieu[HASARDL].tabmonstr[HASARDM].ptvie-tapej;//on enleve un nombre egal au nbre de coup
cout<<"\nLe monstre vous attaque!!";
pas=tablieu[HASARDL].tabmonstr[HASARDM].ptattak;//le maximum que le monstre peut taper
tapem=(rand()%pas)+1;
cout<<"\nIl vous enleve "<<tapem<<" points de vie";
tabjoueur[J].pointvie=tabjoueur[J].pointvie-tapem;
cout<<"\nVos points de vie sont de "<<tabjoueur[J].pointvie<<"\nCeux du monstre sont de "<<tablieu[HASARDL].tabmonstr[HASARDM].ptvie;//on réaffiche les 2 valeurs
chA=(rand()%7)+1;//on recupere une valeur pour la chance
cout<<"\nVous trouvez "<<tabchance[chA].nom;//on indique s'il a trouvé une potion
if((chA==2)||(chA==6))
{
cout<<"\nVous recuperez "<<tabchance[chA].nb<<"\n";//le joueur augmente un peu sa vie
tabjoueur[J].pointvie=tabjoueur[J].pointvie+tabchance[chA].nb;
cout<<"\nVos points de vie passent a "<<tabjoueur[J].pointvie<<"\n";
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void pointgagn(int K,int Hl,int Hm,int montreseconde)//pour afficher les points du joueur et faire jouer le joueur
{
while((tablieu[Hl].tabmonstr[Hm].ptvie>0)&&(montreseconde>0)&&(tabjoueur[K].pointvie>0))
jeuinterne(K,Hl,Hm);// on appelle la procédure du jeu interne
if(tablieu[Hl].tabmonstr[Hm].ptvie<=0)
{
cout<<"\nVous l'avez tuez!!Bravo!!";
tabjoueur[K].nbmonstrtu++;//on incremente le nombre de monstres tués
cout<<"\nVous gagnez "<<tablieu[Hl].tabmonstr[Hm].ptgagn<<" points!!";
tabjoueur[K].victoire=tablieu[Hl].tabmonstr[Hm].ptgagn+tabjoueur[K].victoire;//on incremente le nombre de points
cout<<"\nVous rejouez!!\n";
}
else
{
if(montreseconde==0)//si pendant un combat il ne lui reste plus de temps
cout<<"\nIl ne vous reste plus de temps!!\n";
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void jeu()//procédure de jeu
{
int j,hasmonstr,haslieu,un,montremin,montresec,l,m;
endroit();
rempmonstr();
for(j=0;j<=(nbjoueur-1);j++)//même jeu pour tous les joueurs
{
l=0;
m=0;
tabjoueur[j].nbmonstrtu=0;//on part de 0 pour les monstres qui ont été tués
tabjoueur[j].victoire=0;//on initialise les points de jeu du joueur
tabjoueur[j].pointvie=50;//le nombre de points du joueur
haslieu =1;//on part dans le campagne
montremin=20;//temps pour chaque joueur
cout<<"\nVous vous debutez dans "<<tablieu[haslieu].nomlieu;//on indique quel lieu
cout<<"\nappuyez sur un chiffre";
cin>>un;//pour faire une pause et pouvoir lire toute la suite
while(tabjoueur[j].pointvie>0 && montremin >0)//pour un joueur
{
montresec=60;//si le joueur ne tue pas le monstre rapidement, il a un chrono qui joue contre lui
hasmonstr=(rand()%tabmaximonstr[haslieu]);//on recupere un monstre au hasard pour un lieu
if(tabmaximonstr[haslieu]==1)
hasmonstr=0;//il y a certains lieux qui n'ont qu'une valeur
cout<<"\nVous rencontrez "<<tablieu[haslieu].tabmonstr[hasmonstr].nommonstr;//le nom du monstre
montresec--;//on incremente montresec
if(montresec<=10)//pour stresser le joueur
cout<<"\nIl ne vous reste plus que "<<montresec<<" secondes\n";
switch(haslieu)//selon le lieu : il y en a certains qui ont des propriétés differentes
{
case 4:cout<<"\nVous etes mort!! Dommage...\n\n";tabjoueur[j].pointvie=0;break;//c'est la fin pour ce joueur-ci
case 7:cout<<"\nVoici le boss!! Preparez-vous....et bonne chance!\n";
pointgagn(j,haslieu,hasmonstr,montresec);break;
default :pointgagn(j,haslieu,hasmonstr,montresec);break;//pour un combat contre un monstre dans un lieu
}
strcpy(tabjoueur[j].tabmonstretues[l],tablieu[haslieu].tabmonstr[hasmonstr].nommonstr);//on incremente le nom du monstre tué
tabjoueur[j].tabnummonstretues[l]=tablieu[haslieu].tabmonstr[hasmonstr].nummonstre;
tabmonstres[tablieu[haslieu].tabmonstr[hasmonstr].nummonstre].nbfoisrencontre++;//on incremente son numéro
strcpy(tabmonstres[tablieu[haslieu].tabmonstr[hasmonstr].nummonstre].nommonstr,tablieu[haslieu].tabmonstr[hasmonstr].nommonstr);//on incrémente le nom du monstre(indepandemment du lieu)
l++;//pour avancer dans le tableau des monstres tués par le joueur
tablieu[haslieu].tabmonstr[hasmonstr].ptvie=tablieu[haslieu].tabmonstr[hasmonstr].pointinit;//on reinitialise les points de vie du monstre si au prochain tour on retombe dessus
if(tabjoueur[j].pointvie>0)
{
strcpy(tabjoueur[j].tablieurencontre[m],tablieu[haslieu].nomlieu);
tabjoueur[j].pontlieu++;//pour compter le nom de lieux rencontrés
haslieu =(rand()%7)+1;//pour le prochain tour de jeu
cout<<"\nVous partez vers "<<tablieu[haslieu].nomlieu;//on indique quel lieu
cout<<"\nappuyez sur un chiffre";
cin>>un;//pour que le jeu soit un peu plus interactif
cout<<"\nIl vous reste "<<montremin<<" minutes\n";
montremin--;
m++;
}
}
montresec=60;//on reinitialise la montre
if ((tabjoueur[j].pointvie<=0)||(montremin==0))
{
GameOver(); //on appelle la procedure qui lui montre qu'il a perdu
cout<<"\nVous avez obtenu "<<tabjoueur[j].victoire<<" points\n\n";
cout<<"\nVous avez pris "<<tabarm[tabjoueur[j].pontarm].nom<<"\n";
cout<<"Ce qui vous fait au final "<<(tabarm[tabjoueur[j].pontarm].ptplus+tabjoueur[j].victoire)<<" points\n";
tabjoueur[j].victoire=tabjoueur[j].victoire+tabarm[tabjoueur[j].pontarm].ptplus;
if(j<(nbjoueur-1))
cout<<"Joueur s'appelant "<<tabjoueur[j+1].nom<<" a vous de jouer!!\n\n";
}
}
}
//********************************************************************************************************************************************************************************************
void Nbmonstretu()//pour indique combien de monstres ont ete tues
{
int b,h;
for(b=0;b<=(nbjoueur-1);b++)
{
cout<<"\nJoueur "<<(b+1)<<" vous avez tue "<<tabjoueur[b].nbmonstrtu<<" monstres\n";
for(h=0;h<=(tabjoueur[b].nbmonstrtu-1);h++)//on indique le nom de tous les monstres qu'il a tué
cout<<"\nVous avez tue "<<tabjoueur[b].tabmonstretues[h]<<"\n";
cout<<"\n";
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void Nbpointpers()//pour indiquer combien de points chaque joueur a gagne
{
int i;
for(i=0;i<=(nbjoueur-1);i++)
cout<<"\nJoueur sus-nomme "<<tabjoueur[i].nom<<" vous avez obtenu "<<tabjoueur[i].victoire<<" points au combat\n";
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void lieurencontre()//on affiche tous les lieux par personne
{
int i,m;
for(i=0;i<=(nbjoueur-1);i++)
{
cout<<"\nJoueur "<<i+1;
for(m=0;m<=(tabjoueur[i].pontlieu-1);m++)
cout<<" vous etes alles dans "<<tabjoueur[i].tablieurencontre[m]<<"\n";
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
int le_gagnant(int I,int maxi)//fonction qui renvoie le resultat du meilleur joueur
{
int j;
tabgagn[I].point=0;
for(j=0;j<=(nbjoueur-1);j++)
{
if((tabjoueur[j].victoire>tabgagn[I].point)&&(tabjoueur[j].victoire<maxi))//si le nombre de point est supérieur a l'ancien et inferieur au maximum(le meilleur)
{ //pour faire le classement
tabgagn[I].point=tabjoueur[j].victoire;
tabgagn[I].num=j;
}
}
return(tabgagn[I].num);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void PersonnageQuiALePlusDeVictoire()//procedure pour classer les personnes
{
int i,max=1000;
char tabvainc[3][20]={"premier","deuxieme","troisieme"};
for(i=0;i<=(nbjoueur-1);i++)//pour les trois premiers joueurs
{
cout<<"\nle "<<tabvainc[i]<<" joueur est "<<tabjoueur[le_gagnant(i,max)].nom<<" avec "<<tabjoueur[le_gagnant(i,max)].victoire<<" points\n";
max=tabgagn[i].point;
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void monstretutu()// on affiche pour chaque monstre le nombre de fois qu'il a été rencontré
{
int k;
cout<<"\n";
for(k=0;k<=(nbmonstre-1);k++)//on regarde tous les monstres
{
if(tabmonstres[k].nbfoisrencontre>0)//s'il a été rencontré
cout<<"Le monstre s'appelant "<<tabmonstres[k].nommonstr<<"\na ete rencontre "<<tabmonstres[k].nbfoisrencontre<<" fois\n";
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void classfinal()
{
int i,max=tabjoueur[0].PointTotal;
char tabvainc[3][20]={"premier","deuxieme","troisieme"};
for(i=0;i<=(nbjoueur-1);i++)
tabjoueur[i].PointTotal=tabjoueur[i].nbmonstrtu+tabjoueur[i].victoire;
for(i=0;i<=(nbjoueur-1);i++)//pour les trois premiers joueurs
{
cout<<"\nLe "<<tabvainc[i]<<" joueur est "<<tabjoueur[le_gagnant(i,max)].nom<<" avec "<<tabjoueur[le_gagnant(i,max)].victoire<<" points\n";
max=tabgagn[i].point;
}
}
//menu 5:statistiques*************************************************************************************************************************************************************************
void statmenu(int STA)
{
switch(STA)
{
case 1:Nbmonstretu();break;
case 2:Nbpointpers();break;
case 3:lieurencontre();break;
case 4:PersonnageQuiALePlusDeVictoire();break;
case 5:classfinal();break;
case 6:monstretutu();break;
case 0:cout<<"\nretour au MENU\n\n";break;
default:cout<<"\nEntrez une valeur possible, SVP!\n";
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void stat()//menu des statistiques
{
int choixstat;
do
{
cout<<"\n1:Nombre de monstres tues par personne\n";
cout<<"2:Nombre de points pour chaque personnage\n";
cout<<"3:Combien de lieux ont ete rencontres pour chaque personnage\n";
cout<<"4:Classement provisoire\n";
cout<<"5:Classement final\n";
cout<<"6:Monstres les plus rencontres\n";
cout<<"0:quitter\n";
cin>>choixstat;
statmenu(choixstat);
}while(choixstat!=0);
}
//********************************************************************************************************************************************************************************************
void choixmenu_(int CHOIXMEN)//procédure de choix de menu
{
switch(CHOIXMEN)
{
case 1:choixperso();indice=1;break;//indice=1 pour prouver qu'on a deja saisi les valeurs, pour le 2°choix du menu
case 2:if(indice==1)
verifperso();
else
cout<<"\nVeuillez choisir votre personnage, SVP\n\n";break;//si l'indice est different de 1 alors on retourne dans le menu
case 3:regles();break;//peut etre appeler a n'importe quel moment
case 4:if(indice==1)
{
jeu();
indice=5;//indicateur pour les statistiques
}
else
cout<<"\nVous pourrez jouez quand vous aurez choisi vos perso!\n\n";break;
case 5:if(indice==5)
stat();
else
cout<<"\nJouez d'abord!!\n\n";break;
case 0:cout<<"Merci d'avoir jouer a ce jeu!\n";break;
default:cout<<"\nErreur de saisie!!\n\n";
}
}
//procedure principale************************************************************************************************************************************************************************
void main(void)//menu principal
{
int choixmenu;
indice=0;//preuve qu'on a ou non agit sur une procedure
affichtitre();"\n";
do
{
cout<<"MENU\n";
cout<<"1: Choix de votre personnage\n";//prevoir un sous-menu
cout<<"2: Verification des personnages\n";//deroulement du tableau
cout<<"3: Afficher les regles du jeu\n";//possibilités d'appel à n'importe quel moment
cout<<"4: A vous de jouer!!\n";//lancement de la procedure jeu
cout<<"5: Statistiques du jeu\n";//prevoir un sous-menu
cout<<"0: Quitter le jeu\n";
cin>>choixmenu;
choixmenu_(choixmenu);//procedure de choix pour le menu
}while(choixmenu!=0);
}
Conclusion :
POur amélioration....
il est exécuté sous dos(interpréteur de commande)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.