Le pendu (parfait pour les débutants)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 206 fois - Téléchargée 37 fois

Contenu du snippet

Je ne vous explique pas le fonctionnement du jeu du pendu....

Source / Exemple :


#include<stdio.h>
#include<conio.h>
#include<string.h>

//bien entendu, le joueur doit retenir la place de la lettre
//cette version amélioré affiche le résultat du joueur à la fin
//quelques améliorations pratiques

void main()
{
char solution[5];
char lettre[10];
int p=0;
char choix,rejouer,type;
int i,j,k,l,n,z,x;
char saisie[5];
int a;
int m[10]={1,2,3,4,5,6,7,8,9,10};

do
	{
		printf("\t\t\t\t******************");
		printf("\n\t\t\t\t**** le pendu ****\n");
		printf("\t\t\t\t******************\n");
		printf("\n\t\tver 3.0			par jujuwiwi\n\n");
		for(k=0;k<80;k++)
		printf("°");
		for(k=0;k<80;k++)
		printf("~");
		printf("vous avez le choix entre 5 mots. choisissez en un et vous pouvez commencer\na jouer\n");
		printf("vous devez trouver le mot. Pour cela vous devez entrer des caracteres, rien de\nplus simple quoi !\n");
		printf("mais attention, tu ne peux pas rentrer des phrases completes.\n");
		printf("le resultat apparait apres chaque essais et bien entendu le nbre d'essai\nest marque\n");
		printf("tu as le droit a 10 essais c'est quand meme pas mal\n");
		printf("si tu as trouve le mot complet avant les 10 essais alors tu recommence la partie");
		printf("Cette version comprend un comptage de points pour les duels entre amis\n");
		for(k=0;k<80;k++)
		printf("°");
	for(l=0;l<5;l++)
	saisie[l]='?';

	for(k=0;k<80;k++)
		printf("~");
r :	printf("\n\nmot 1,2,3,4 ou 5\n");
	printf("choisissez le mot que vous voulez trouver :");
	type=getchar();
	switch(type)
		{
			case'1':strcpy(solution,"salut");
				break;
			case'2':strcpy(solution,"batch");
				break;
			case'3':strcpy(solution,"linux");
				break;
			case'4':strcpy(solution,"micro");
				break;
			case'5':strcpy(solution,"livre");
				break;
			default:printf("\n		+-+ \ace choix n'existe pas +-+\n");
					printf("		 -+-veuillez recommencer-+-\n");
			while(getchar()!='\n');
			goto r;
		}
	
	while(getchar()!='\n');
	
	//pour rejouer 10 fois
	j=1;
	while (j<11)
		{
		//pour savoir quelle lettre a déjà été donné en ne comptabilisant pas les espaces
		z=0;
		while(z<10)
			{
		//pour afficher les essais
		n=0;
		while(n<10)
				{
			printf("\n-----%de essai-----\n",m[n]);
		n++;
r1:		printf("\nalors quel caractere ?:");
		choix=getchar();
		if (choix==10)//si on appui sur espace alors 1 message apparait et on recommence
			{
			printf("\n****\a[reflechit un peu tu vas pas perdre 1 essai, je suis sympa  rejous]****\n");
			goto r1;
			}
		x=0;
		while(x<10&&choix!=lettre[x])
			{
			x++;
			}
		//pour compter les points
			i=0;
		while(i<5&&choix!=solution[i])
			{	
			i++;
			}
			if ((choix==solution[i])&&(choix!=lettre[x]))
			{
				saisie[i]=choix;
				p+=10;
			}
			else if(choix==lettre[x]) p=p;
			else p-=5;
			
		if (choix==lettre[x])
			{
			
			printf("\n");
			for(k=0;k<69;k++)
			printf("=");
			
			printf("\n=====\alettre deja donne (%c), tant pis pour toi, tu perds 1 essai!=====\n",lettre[x]);
			for(k=0;k<69;k++)
			printf("=");
			}
			lettre[z]=choix;
			
		printf("\n\t-*- Vous avez donc pour le moment : %c %c %c %c %c -*-\n",saisie[0],saisie[1],saisie[2],saisie[3],saisie[4]);
		
		printf("\n vous avez pour le moment : %d points",p);
	z++;
	j++;
	while(getchar()!='\n');
	//pour permettre de recommnecer la partie si le mot est trouvé avant la fin des 10 essais
	if (saisie[0]==solution[0]&&saisie[1]==solution[1]&&saisie[2]==solution[2]&&saisie[3]==solution[3]&&saisie[4]==solution[4])
			goto m;
				}//fin du 1er while
			}//fin du 2ème while		
		}//fin du 3ème while
	//à la fin du jeu, le prog affiche le résultat 
m:	printf("\n\t** votre resultat est \t%c %c %c %c %c",saisie[0],saisie[1],saisie[2],saisie[3],saisie[4]);
	
	printf("\n			vous avez au total : %d points",p);
	//test de points
	if (p<0) printf("\nva te pendre");
		else if (p==0||p==5||p==10) printf("\tptit joueur va");
		else if (p==15||p==20) printf("\tbof");
		else if (p==25||p==30) printf("\tpas mal");
		else if (p==35||p==40) printf("\ttu taquine");
		else printf("\tle(la) technicien(ne)");
	if (saisie[0]==solution[0]&&saisie[1]==solution[1]&&saisie[2]==solution[2]&&saisie[3]==solution[3]&&saisie[4]==solution[4])
		{
		printf("\n\nje savais bien que la corde n'etais pas a ta taille !!!!\n\n");
		}
	else
		{
		printf("\n passe commande d'une corde !!!!\n\n");
		}
	//vider tampon du résultat
	for(l=0;l<5;l++)
	saisie[l]='?';
	for(l=0;l<5;l++)
	lettre[l]='\n';
	for(a=0;a<80;a++)
		printf("*");
	printf("\t\tvoulez-vous rejouer o ou n:");
	rejouer=getchar();
	for(a=0;a<80;a++)
		printf("*");
	printf("\n\n");
	while(getchar()!='\n');
	p=0;
	}
	while (rejouer!='n');
}

Conclusion :


bientôt plus de limite de mots

A voir également

Ajouter un commentaire Commentaires
Messages postés
2
Date d'inscription
vendredi 22 mars 2002
Statut
Membre
Dernière intervention
3 septembre 2004

Merci JuJuwiw !
Je débute en C++ ( enfin, je connais bien Php) et c'est parfait comme petit programme pour débuter.
9/10 Il manque quelques commentaire, j'ai pas tout capté....
Messages postés
138
Date d'inscription
jeudi 24 août 2000
Statut
Membre
Dernière intervention
6 avril 2002

Salut,
Pourais tu indiquer le nom de ton compilateur car si tu met jsute "Code en C" cela voudraitdire que ton code est a la norme ANSI et ce n'est pas le cas, car conio.h n'a jamais existe ds la norme ANSI

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.