Soyez le premier à donner votre avis sur cette source.
Snippet vu 23 014 fois - Téléchargée 22 fois
#include <stdlib.h> #include <string.h> #include <stdio.h> #include <conio.h> #include <time.h> // Declaration des procedures du bonhomme pendu et fonction Random void pendu1() ; void pendu6() ; void pendu5() ; void pendu4() ; void pendu3() ; void pendu2() ; int nbAleatoire (int min, int max) ; int main() { char liste[][30]={"abolir","ablution","bachot","balise","cabine","camphre","debit","decorum","echoir","egouts","famine","fantoche","gazeux","granite","hiatus","hideux","ignoble","iguane","rejouir","jongler","kaolin","kiosque","lezard","linotype","malice","mastiquer","nymphe","nickel","orage","optique","oraison","parution","pendu","quartz","quater","rayon","rapide","scenario","scolaire","tacher","terminus","univers","urbanisme","vestibule","violent","wagon","water-polo","xelophone","yard","yen","zenith","zephyr"} ; char mask[][30]= {"ab____","a______n","b__h__","b__i__","c_b___","___ph__","d____","d_____m","_c___r","_go___","f_i__","f____c__","g____x","g___i__","h_a___","h____x","i_____e","ig____","__j___r","j__g___","k___i_","k_____e","l____d","l____y__","m__i__","m____q___","n___h_","n__k__","o__g_","_p__q__","o_a____","p______n","p___u","q_a___","q____r","r_y__","r_p___","_c__a___","s___a___","t__h__","t_r_____","u__v___","_rb______","v__t_____","v__l__","w____","_a___-p___","x_____o__","_ar_","___","z__i__","z___y_"} ; char c,nom[20] ; int i,cpt,mot,essai,cpt1 ; srand(time(NULL)) ; mot=nbAleatoire(0,51) ; printf("Donnez votre nom tout d'abord\n") ; gets(nom) ; system("CLS") ; c=strlen(liste[mot]) ; //Calcul du nombre de lettres cachées dans le mot for(i=0,cpt=1;mask[mot][i]!='\0' ; i++){ if(mask[mot][i]=='_'){ cpt++ ; } } //Debut du jeu printf("\t\tBIENVENUE << %s >> dans le jeu le PENDU !!\n\tVous avez droit a 6 erreurs pour trouver le mot cach\x82 \n\t\t\tBONNE CHANCE...\n\n",nom); puts(mask[mot]) ; essai=0 ; do{ if(cpt>0 && essai<=5){ printf("Donnez une lettre\t ") ; c=getch() ; printf("%c\n",c) ; // cpt1 : Variable a partir de laquelle on pourra savoir si la lettre est valide ( si cpt est decrementé ou pas ) cpt1=cpt ; for(i=0;liste[mot][i]!='\0';i++){ if(liste[mot][i]==c && mask[mot][i]=='_'){ mask[mot][i]=c ; cpt-- ; } } // Si la variable cpt à varier alors : selon le nombre d'essais restant if(cpt1==cpt && essai!=6){ essai=essai+1 ; printf("\n\nAttention : La lettre \"%c\" n'existe pas parmi les lettres cach\x82s\nIl vous reste %d erreurs : Profitez en bien ...\n\n",c,6-essai) ; switch (essai){ case 1 : pendu1() ; break ; case 2 : pendu2() ; break ; case 3 : pendu3() ; break ; case 4 : pendu4() ; break ; case 5 : pendu5() ; break ; case 6 : pendu6() ; break ; default : ; } } puts(mask[mot]) ; } }while(cpt>1 && essai<=5) ; // Si le mot est trouvé if (cpt && essai<=5){ printf("\n\nBravo !!! Maintenant vous meritez votre vie %s !!! Fantastique...\nLe mot \x82tait bien \"%s\"",nom,liste[mot]) ; } // Sinon else if(cpt=0 || essai>=6){ printf("\nD\x82sol\x82 %s ... Faites vos dernieres prieres... Vous serez pendu hahahahaha!!!",nom) ; } getch() ; return 0 ; } int nbAleatoire (int min, int max){ int nbAl ; nbAl=rand()%(max + 1) + min ; return nbAl ; } void pendu6(){ printf(" _\n") ; printf("|_|\n") ; printf("_|_\n") ; printf(" |\n") ; printf("/ \\\n") ; } void pendu5(){ printf(" _\n") ; printf("|_|\n") ; printf("_|_\n") ; printf(" |\n") ; printf("/ \n") ; } void pendu4(){ printf(" _\n") ; printf("|_|\n") ; printf("_|_\n") ; printf(" |\n\n") ; } void pendu2(){ printf(" _\n") ; printf("|_|\n") ; printf(" |\n\n") ; } void pendu3() { printf(" _\n") ; printf("|_|\n") ; printf(" |\n |\n\n") ; } void pendu1(){ printf(" _\n") ; printf("|_|\n\n") ; }
9 nov. 2013 à 17:45
8 mai 2010 à 21:33
pourquoi avez vous utilisé ça:
ligne 24
system("CLS") ;
a t'il une utilité particulière?
30 mars 2010 à 12:32
note = 3.5 / 2 * 4 + 8 - ( - 4 + 4 ) - 7 - 1;
22 mars 2010 à 12:31
Pour moi le jeu n'est pas souple du tout...
Néanmoins, l'interaction est sympathique et le dessin du pendu marrant.
Une petite erreur technique au passage :
int nbAleatoire (int min, int max){
return min + rand()%(max - min + 1);
}
Bon courage pour la suite :)
PS : un petit effort sur l'indentation, peut-être ?
21 mars 2010 à 17:39
Désolé mais je ne trouve pas que cette manière de coder un pendu sois simple ! De plus de multiple amélioration peuvent être effectuées, (par exemple : nous donner le mot a trouver si on ne le trouve pas)...
Voici un code source beaucoup plus simple avec un meilleur résultat : http://www.siteduzero.com/tutoriel-3-14071-tp-realisation-d-un-pendu.html
Points Positifs :
Malgré tout ce que je viens de dire ton pendu marche ce qui est le principale ;)
On peu noter un effort de scénario, on a pas l'impression de jouer avec une vulgaire machine.
Conclusion :
Je te mets donc une note de 9/20 (je sais que je ne peut mettre que 4/10 ou 5/10 je vais donc indiquer 5/10 pour t'encourager)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.