/*----------------------------------------------------------*/ /* */ /* AUTHOR : Eric VIOLARD */ /* E-MAIL : violard@icps.u-strasbg.fr */ /* ORGANISM : Université Louis Pasteur (Strasbourg) */ /* CREATION : 08/11/02 */ /* */ /* ---------------------------------------------------------*/ /* Programme qui met en oeuvre le jeu suivant : L'ordinateur choisit un entier au hasard, ce nombre comporte n chiffres où n est donné avant le début du jeu. Cet entier est affiché à l'écran pendant 1 seconde puis disparaît pour laisser la place à un point d'interrogation. Le joueur doit alors entrer le nombre qu'il a lu. Après avoir répéter ce processus 10 fois de suite, un score sur 10 ainsi qu'une appréciation de la performance du joueur est affichée : Nul!, Moyen, Pas mal, Bien, Très Bien, Excellent, Parfait! */ #include /* pour utiliser la fonction printf */ #include /* pour utiliser les fonctions srand et rand */ #include /* pour utiliser les fonctions time et sleep */ main() { /* déclarations */ int n; /* nombre de chiffre du nombre à se rappeler */ int nb_bonne_reponse=0; /* nombre de bonnes réponses du joueur (initialement 0) */ int nombre_choisi; /* nombre choisi au hasard (à n chiffres) */ int chiffre; /* un des chiffres du nombre choisi */ int i; /* position du chiffre dans le nombre */ int etape; /* numéro d'étape du jeu (de 1 à 10) */ int proposition; /* proposition du joueur */ /* --- affichage d'un message pour débuter le jeu --- */ printf("---------- Jeu de rapidité -----------\n\n"); /* --- lecture du nombre de chiffres --- */ printf("Entrer le nombre de chiffres à lire et mémoriser : "); scanf("%d",&n); /* --- déroulement du jeu --- */ for(etape=1;etape<=10;etape++) { /* on répète 10 fois */ /* --- tirage au sort d'un nombre à n chiffres --- */ srand(time(NULL)); /* amorçage du générateur de nombres aléatoires à l'aide de l'heure courante */ nombre_choisi=0; /* initialement le nombre ne contient aucun chiffre */ for(i=1;i<=n;i++) { chiffre = rand()%9+1; /* tirage au sort d'un chiffre entre 1 et 9 */ nombre_choisi=nombre_choisi*10+chiffre; /* ajout d'un chiffre au nombre */ } /* --- affichage du nombre pendant 1 seconde --- */ printf("%d",nombre_choisi); /* affichage du nombre */ fflush(stdout); /* pour forcer l'affichage sans retourner à la ligne */ sleep(1); /* attente 1 seconde */ printf("\r"); /* retour au début de la ligne */ for(i=1;i<=n;i++) printf("?"); /* suivi de n-1 points d'interrogation pour cacher le nombre */ printf("\n"); /* --- lecture de la proposition du joueur --- */ scanf("%d",&proposition); /* --- affichage du résultat et calcul du score --- */ if(proposition==nombre_choisi) { printf("exact !\n"); nb_bonne_reponse=nb_bonne_reponse+1; } else printf("non ! le bon nombre était %d\n",nombre_choisi); } /* on recommence 10 fois */ /* --- affichage du score final et appréciation --- */ printf("\nVotre score est de %d/10\n",nb_bonne_reponse); switch(nb_bonne_reponse) { case 0 : case 1 : printf("Nul!\n"); break; case 2 : case 3 : printf("Plutot mauvais!\n"); break; case 4 : case 5 : case 6 : printf("Moyen\n"); break; case 7 : printf("Pas mal!\n"); break; case 8 : printf("Très Bien!\n"); break; case 9 : printf("Excellent!\n"); break; case 10 : printf("Parfait!\n"); break; defaut : /* rien à faire par défaut */ } }