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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
| #include <stdio.h>
#include <stdlib.h>
#include <time.h>
//déclaration des fonctions secondaires
void CopFichier(FILE *fileBuffer);
int DispTitle(void);
int YourNumb(const int MIN, const int MAX);
int TestNumb(int myNumb, const int nbrMystere);
void ScoreTab(const int nbrMystere, int compteur);
void GameMstBx(const int MIN, const int MAX);
void PauseApp(void);
// ==================== FONCTION MAIN ====================
int main() {
int status = 0;
//declaration des constantes
const int MIN = 0, MAX = 100;
//initialisation du générateur de nombre aléatoire
srand(time(NULL));
// affichage du titre du jeux
status = DispTitle();
if (status == 1) return 1;
//début de la partie
GameMstBx(MIN, MAX);
// Pause avant la fin du programme
PauseApp();
//fin du programme
return 0;
}
// ==================== FONCTION SECOND ====================
// imprime écran le contenu du buffer
void CopFichier(FILE *fileBuffer) {
// déclaration des variable
char copyStr[257 + 1];
//impression du contenu du document
while (fgets(copyStr, sizeof(copyStr), fileBuffer) != NULL)
printf("%s", copyStr);
}
// fonction affichant le titre:
int DispTitle(void) {
// déclaration des pointeurs
char *filename = "./title.txt";
FILE *fileBuffer;
// ouverture vérification du flux
if ((fileBuffer = fopen(filename, "r")) == NULL) {
fprintf(stderr, "Erreur - Echec de l'ouverture du fichier %s en mode lecture!", filename);
// retour valeur sentinelle - une erreur s'est produite
return 1;
}
//Impression écran du message
fputs("Bienvenu dans \n",stdout);
CopFichier(fileBuffer);
// fermeture du flux
fclosed(fileBuffer);
// retour valeur sentinelle - tout c'est bien passé
return 0;
}
// fonction demandant la réponse
int YourNumb(const int MIN, const int MAX) {
char retourCl[10 + 1];
int myNumb, status;
while (1)
{
fputs("Entrez un nombre entre 0 et 100 : ", stdout);
fgets(retourCl, 10 + 1, stdin);
status = sscanf(retourCl, "%d", &myNumb);
// "if" casse la boucle, si ses conditions sont remplies
if (status == 1 && myNumb >= MIN && myNumb <= MAX) break;
fputs("Entree incorrect - Entrez un nombre compris entre 0 et 100!\n", stdout);
}
return myNumb;
}
//fonction donnant un indice
int TestNumb(int myNumb, const int nbrMystere) {
if (myNumb < nbrMystere)
{
fputs("C'est plus!\n", stdout);
return 0;
}
else if (myNumb > nbrMystere)
{
fputs("C'est moins!\n", stdout);
return 0;
}
else
{
fputs("Bravo! vous avez trouvez le nombre mystère\n", stdout);
return 1;
}
}
//fonction affichant le résultat du joueur
void ScoreTab(const int nbrMystere, int compteur) {
fputs("===== RESULTAT DE PARTIE =====\n", stdout);
printf("Le nombre mystere etait : %d \n", nbrMystere);
printf("Nombre de tour: %d \n", compteur);
}
//fonction commençant la partie
void GameMstBx(const int MIN,const int MAX) {
// playerAnswer - variable stockant la réponse du joueur
// nbrMystere - variable stockant le nombre généré aléatoirement
int playerAnswer, nbrMystere;
// gameWin - variable définissant la condition du jeux (1 = gagné)
// compteur - variable comptant le nombre de tour
int gameWin = 0, compteur = 0;
//attribution d'un nombre généré aléatoirement
nbrMystere = (rand() % (MAX - MIN + 1)) + MIN;
//boucle de partie
do
{
//compte le nombre de tour
compteur++;
//fonction récupérant la réponse du joueur
playerAnswer = YourNumb(MIN, MAX);
//fonction testant la réponse du joueur
gameWin = TestNumb(playerAnswer, nbrMystere);
} while (gameWin == 0);
// fonction affichant les résultats de partie
ScoreTab(nbrMystere, compteur);
}
// fonction de sortie
void PauseApp(void) {
do {
fputs("Appuyez sur 'Entree' pour terminer le programme. \n", stdout);
} while (getchar() != '\n');
} |
Partager