1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| #include <iostream>
#include <string>
#include <fstream>
#include <ctime>
#include <vector>
#include <cstdlib>
using namespace std;
#include"jeu.h"
void regles()
{
cout<<"Un nombre compris entre 0 et 100 va etre genere aleatoirement. Vous devez le trouver."<<endl;
cout<<"Moins il vous faut d'essais pour le trouver, mieux c'est."<<endl;
cout<<"Ne vous inquietez pas, a chaque coup manque, il vous sera dit si le nombre a trouver"<<endl;
cout<<"est plus grand ou plus petit que celui que vous avez donne."<<endl;
cout<<"En mode Facile, le nombre n'est compris qu'entre 0 et 50, mais votre score ne sera pas enregistré."<<endl;
cout<<"Notez que le jeu s'arrete quand vous atteignez 127 essais, mais c'est plus qu'il n'en faut."<<endl;
}
void enregRecords(std::vector<std::string> &champions,std::vector<int> &records)
{
ifstream Records("scoresJeuDuNombre.glan");
cout<<endl<<endl;
for (int i=0;i<(int)champions.size();i++)//cette boucle enregistre au fur et a mesure les champions...
{
getline(Records,champions[i]);
}
for (int i=0; i<(int)records.size(); i++)//...et celle-ci, leurs scores respectifs, en affichant tout le bazar
{
Records>>records[i];
cout<<champions[i]<<" : "<<records[i]<<endl;
//j'aurais bien tout mis dans la meme boucle en alternant champions et records, mais ça ne marche pas et j'ignore pourquoi...
}
}
int jeu(int diff)
{
srand(time(0));
int nbEssais(1);
int nbSecret;
if (diff==1)//si on est en facile...
{
nbSecret=rand()%51;//...on fait un nombre compris entre 0 et 50. le score n'est pas enregistre en facile.
}
else
{
nbSecret=rand()%101;//entre 0 et 100 en mode normal. le jeu est en mode normal s'il n'est pas en mode facile.
}
/* la seule difference entre le mode normal et le mode facile est l'intervelle a laquelle appartient le nombre a trouver, qui est entier */
int nbDonne(110);
cout<<endl<<"Quel est le nombre ? ";
cin>>nbDonne;
while(nbDonne!=nbSecret && nbEssais<127)//ici, on compare le nombre donne par le joueur et on compte son nomre d'essais. max d'essais : 127. pourquoi ? parce que.
{
if (nbDonne<nbSecret)
{
cout<<endl<<endl<<"Plus grand. ";
}
else
{
cout<<endl<<endl<<"Plus petit. ";
}
cin>>nbDonne;
nbEssais++;
}
return nbEssais;
}
void newscore(std::vector<std::string> &champions,std::vector<int> &records,int const& score)
{
//cette fonction sert a verifier si le joueur a battu un des 5 records enregistres. si oui il sera enregistre a son tour
int nouvellePlace(6);
for(int i(0);i<5;i++){if(score<records[i]){nouvellePlace--;}}//on compte le nombre de records plus petits que le score, et en détermine la nouvelle place du joueur
if(nouvellePlace<6)
{
for(int i(nouvellePlace);i!=0;i--)
{
champions[i]=champions[i-1];
records[i]=records[i-1];
}
records[nouvellePlace-1]=score;//-1 car c'est un tableau, donc numerote de 0 a 4 et non de 1 a 5 !
}
else if (nouvellePlace>=6){cout<<"Vous n'avez battu aucun record...Desole !"<<endl;}//...tant pis !
if(nouvellePlace<6)
{
if(nouvellePlace==1){cout<<"Felicitation, vous venez de decrocher la 1re place !"<<endl;}//GG !
else{cout<<"Felicitation, vous venez de decrocher la "<<nouvellePlace<<"e place !"<<endl;}//bien aussi !
cout<<"Sous quel nom enregistrer votre score ? (pas d'espaces !) ";//et enfin on lui demande son p'tit nom !
cin>>champions[nouvellePlace-1];
}
ofstream flx_env("scoresJeuDuNombre.glan");//et on reecrit le fichier des scores avec tout ce bazar.
for(int i(0);i<(int)champions.size();i++)
{
flx_env<<champions[i]<<endl;
}
for(int i(0);i<(int)records.size();i++)
{
flx_env<<records[i]<<endl;
}
} |
Partager