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 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
| #include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main(int argc, char *argv[])
{
/*-TC- Déclaration des variables */
long nombreMystere = 0, nombreEntre = 0, joueur1_ou_2 = 0, nombredujeu = 0;
long joueur_1 = 1, joueur_2 = 2, nombrechoisis = 0 ;
const long MAX = 100, MIN = 1;
long nombredecoups = 0;
/*-TC- Initialisation du générateur de nombres pseudo-aléatoires */
srand(time(NULL));
/*-TC- On choisit au hazard un nombre mystère entre 1 et 100 */
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
/*-TC- On demande à l'utilisateur de choisir le nombre de joueurs */
printf("Veuillez tapez 1 ou 2 selon votre nombre de joueur\n\n");
printf("Partie a 1 joueur, Taper 1\n\n");
printf("Partie a 2 joueur, Taper 2\n\n");
scanf("%ld", &joueur1_ou_2);
/*-TC- Selon la réponse de l'utilisateur, on choisit entre un partie à 2
utilisateurs ou à 1 */
switch (joueur1_ou_2)
{
default:
printf("Vous deviez tapez sur 1 ou 2 selon votre mode de joueur ( 1 ou 2 joueur )\n\n\n");
break;
/* Etrange utilisation de switch/case! Ce if n'est jamais exécuté
if (joueur1_ou_2 == 1) */
case 1:
printf("Partie a 1 joueur.\n");
/*-TC- Tant que l'utilisateur n'a pas trouvé le nombre mystère, on lui
demande de proposer un nombre, on compare ce nombre au nombre mystère
et on indique à l'utilisateur si sa proposition est trop haute ou
trop basse */
while (nombreEntre != nombreMystere)
{
/*-TC- Attention! L'affichage n'est pas garanti ici, du fait de
l'utilisation par printf() d'un tampon pour optimiser l'écriture
sur le flux de sortie standard*/
printf("Quel est le nombre?");
/*-TC- ajouter fflush(stdout); */
scanf("%ld", &nombreEntre);
nombredecoups++;
if (nombreEntre < nombreMystere)
/* si le numero de sa reponse est trop bas */
printf("Non, le nombre mystere est superieur!\n");
if (nombreEntre > nombreMystere)
/* si le numero de sa reponse est trop eleve */
printf("Non, le nombre mystere est inferieur!\n");
if (nombreEntre == nombreMystere)
/* si le joueur a trouve le numero mystere */
printf("Bravo vous avez trouve le bon nombre en %ld coup!\n", nombredecoups);
}
break;
/*-TC- Ne sert à rien: if (joueur1_ou_2 == 2) */
/*-TC- Sur la base de ce qui précède, je te laisse commenter par toi-même
la suite */
case 2:
printf("Partie a 2 joueur.\n");
printf("Le joueur 1 choisi un nombre que le joueur 2 ne doit pas connaitre!\n");
while (nombredujeu == nombrechoisis)
{
printf("Nombre choisis: ");
scanf("%ld", &nombrechoisis);
}
while (nombredujeu != nombrechoisis)
{
printf("Quel est le nombre?");
scanf("%ld", &nombredujeu);
nombredecoups++;
{
if (nombredujeu < nombrechoisis)
printf("Non, le nombre mystere est superieur!\n");//si le numero de sa reponse est trop bas
if (nombredujeu > nombrechoisis)
printf("Non, le nombre mystere est inferieur!\n");//si le numero de sa reponse est trop eleve
if (nombredujeu == nombrechoisis)
printf("Bravo vous avez trouve le bon nombre en %ld coup!\n", nombredecoups);//si le joueur a trouve le numero mystere
}
}
break;
}
int recommencer = 0;
printf("Pour recommencer Taper 1 sinon Taper 0 : \n\n");
scanf("%ld", &recommencer);
/*-TC- Pourquoi tout recopier ici, plutôt que de faire des fonctions??? */
while (recommencer == 1)
{
printf("1. Partie a 1 joueur.\n");
printf("2. Partie a 2 joueur.\n");
scanf("%ld", &joueur1_ou_2);
nombredecoups=0;
switch (joueur1_ou_2)
{
default:
printf("Vous deviez tapez sur 1 ou 2 selon votre mode de joueur ( 1 ou 2 joueur )\n\n\n");
break;
case 1:
printf("Partie a 1 joueur.\n");
while (nombreEntre != nombreMystere)
{
printf("Quel est le nombre?");
scanf("%ld", &nombreEntre);
nombredecoups++;
{
if (nombreEntre < nombreMystere)
printf("Non, le nombre mystere est superieur!\n");//si le numero de sa reponse est trop bas
if (nombreEntre > nombreMystere)
printf("Non, le nombre mystere est inferieur!\n");//si le numero de sa reponse est trop eleve
if (nombreEntre == nombreMystere)
printf("Bravo vous avez trouve le bon nombre en %ld coup!\n", nombredecoups);//si le joueur a trouve le numero mystere
}
}
break;
case 2:
printf("Partie a 2 joueur.\n");
printf("Le joueur 1 choisi un nombre que le joueur 2 ne doit pas connaitre!\n");
while (nombredujeu == nombrechoisis)
{
printf("Nombre choisis: ");
scanf("%ld", &nombrechoisis);
}
while (nombredujeu != nombrechoisis)
{
printf("Quel est le nombre?");
scanf("%ld", &nombredujeu);
nombredecoups++;
{
if (nombredujeu < nombrechoisis)
printf("Non, le nombre mystere est superieur!\n");//si le numero de sa reponse est trop bas
if (nombredujeu > nombrechoisis)
printf("Non, le nombre mystere est inferieur!\n");//si le numero de sa reponse est trop eleve
if (nombredujeu == nombrechoisis)
printf("Bravo vous avez trouve le bon nombre en %ld coup!\n", nombredecoups);//si le joueur a trouve le numero mystere
}
}
break;
}
}
/*-TC- Instruction inutile!!! */
system ("PAUSE");
return 0;
} |
Partager