Bonjours,
cette source pour le pendu me parait plus simple que celle du TP dans la partie II.
/*
Le pendu :
Jeu ou il faut trouver un mot secret en moins d'un certain nombres de
coups definit selon la difficulté.
*/ #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <time.h>
int main(int argc‚ char *argv[]) { //declarations char c‚ cMaLettre‚ sMotSecret[NOMBRE_MAX_MOT][TAILLE_MAX_MOT]‚ sMonMot[TAILLE_MAX_MOT] = {'\0'}‚ sAncienMot[TAILLE_MAX_MOT]; int nChoix = 0‚ nChance = 0‚ i = 0‚ nNombre2Mot = 0‚ nNombreMotChoisie = 0‚ nLongueurMot = 0; FILE* fDico = NULL; //creation de la liste de mots
fDico = fopen("Dico.txt"‚ "r"); if(fDico == NULL) { printf("Probleme avec le dictionnaire de mots\n"); system("PAUSE"); exit(1); }
i = 0; while(!feof(fDico)) { fscanf(fDico‚ " %s "‚ sMotSecret[i]);
i++; }
nNombre2Mot = i; fclose(fDico); do { //presentation du programme printf("=== Le Pendu ===\n\n"); //choix de difficultée printf("Choisissez votre niveau de jeu :\n"); printf("1.Facil\n"); printf("2.Moyenne\n"); printf("3.Difficil\n"); printf("Veuillez entrer le nombre qui correspond a votre choix : "); scanf("%Ld"‚ &nChoix); printf("\n"); // variation du nombre de chance avec la difficulte switch(nChoix) { case1 :
nChance = 10; printf("Vous avez %ld chances\n"‚ nChance); break; case2 :
nChance = 7; printf("Vous avez %ld chances\n"‚ nChance); break; case3 :
nChance = 5; printf("Vous avez %ld chances\n"‚ nChance); break; default : printf("%Ld est une donnee incorrecte‚ fin d'execution du programme\n"); system("PAUSE"); exit(0); break; } //choix du mot secret srand(time(NULL));
nNombreMotChoisie = (rand() % (nNombre2Mot));
i = 0; while(sMotSecret[nNombreMotChoisie][i] != '\0') {
i++; }
nLongueurMot = i; printf("Le mot est en %Ld lettres\n"‚ nLongueurMot); for( i = 0; i < nLongueurMot; i++) {
sMonMot[i] = '*'; } do { //affichage cache du mot printf("Quel est le mot secret ? %s\n"‚ sMonMot); //recuperer et traiter la lettre propopsée printf("Proposez une lettre : "); //vider le flux while(getchar() != '\n') ;
cMaLettre = getchar();
cMaLettre = toupper(cMaLettre); //compare avec les lettres du mot secret for(i = 0; i < nLongueurMot; i++) {
sAncienMot[i] = sMonMot[i]; }
nChoix = 0; for(i = 0; i < nLongueurMot; i++) { if(sMotSecret[nNombreMotChoisie][i] == cMaLettre) {
sMonMot[i] = cMaLettre;
nChoix = 1; } } if(!nChoix) {
nChance––; } //si le mot a était trouvé
nChoix = 0; for( i = 0; i < nLongueurMot; i++) { if(sMotSecret[nNombreMotChoisie][i] != sMonMot[i]) {
nChoix = 1; } } if(!nChoix) { printf("Vous avez gagne !!!\n"); printf("Le mot etait bien %s.\n"‚ sMotSecret[nNombreMotChoisie]); break; } printf("\n\n"); // si 'il reste plus qu'une chance if(nChance == 1) { printf("Vous n'avez plus le droit a l'erreur\n"); } //si plus de chance quite la boucle elseif(nChance == 0) { printf("Vous avez perdu\n"); printf("Le mot etait %s.\n"‚ sMotSecret[nNombreMotChoisie]); break; } //sinon ca affiche le nombre de chance else { printf("Il vous reste %Ld chances\n"‚ nChance); } } while(1); printf("\n"); printf("Vouler vous rejouer ?\n"); printf("1.Oui\n"); printf("2.Non ( Quitter )\n"); printf("Veuillez entrer le nombre qui correspond a votre choix : ");
nChoix = 0; scanf("%Ld"‚ &nChoix); printf("\n"); if(nChoix == 2) { break; }
cMaLettre = 0; for( i = 0; i < nLongueurMot; i++) {
sMonMot[i] = '\0';
sAncienMot[i] = '\0'; }
nChoix = 0;
nChance = 0;
i = 0; } while(1); return0; }
/* Programme réalisé par Nounours */
sinon, je pense que en exercice suplementaire ca pourrait etre simpat de faire ensorte de creer une fonction meilleur score qui afficherais les meilleurs scores en question de temps ( ca permetterait de revenir un peu plus sur les fichiers et en plus on pourrais y ajuoter quelsque notion de temps geré avec le C.) Voila c'était une petite idées.
Si, a vos yeux vous avez une source qui vous parait encore plus simple que celle du site ou le mien postez la. Où si vous ne comprenez pas la mienne !!!
Source pendu plus simple a mon gout
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.