Pendu

Petit jeu écrit pas moi en c.
Ce n'est qu'une version Alpha, pour la prochaine version je compte ajouter plus de niveaux et un dictionnnaire de mot plus rempli.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>


int TakeLetter()
{
	int c;
	c=getch();
	putchar(c);
	if(c >= 61 && c <= 122) /* si le nombre est minuscule */
		c+='A'-'a'; /* le mettre en majuscule */
	return c;
}

void WorldCompteCAractereParCAractere(int c,int *NbWorld){

	enum position { dehors = 0, dedans};
	static enum position etat;

	if(c == '\n')
		etat=dehors;
	else if (etat == dehors){
		etat = dedans;
		++(*NbWorld);
	}
}

int nombreAleatoire(int Max,int Min)
{
	srand(time(NULL));
	return (rand() % ( Max - Min + 1 )) + Min;      
}

int PiocherMot(char *motPiocher,int nivo)
{
	int c, *pNbWorld = NULL,NbWorld=0,MotParcouruParLeCurseur=1,numWorldChosen;
	FILE *Dico = NULL;

	pNbWorld = &NbWorld;
	switch(nivo){
	case 1:
		Dico = fopen("dico1.txt","r");
		break;
	case 2:
		Dico = fopen("dico2.txt","r");
		break;
	default :
		return 0;
		break;
	}
	if (Dico == NULL){
		return 0;
		/*traitement de l'erreur au cas ou le fichier dictionnaire n'est pas ouvert*/
	}
	while ((c=getc(Dico))!=EOF)
		WorldCompteCAractereParCAractere(c,pNbWorld);
	numWorldChosen = nombreAleatoire(NbWorld, 1);
	rewind(Dico);
	while(MotParcouruParLeCurseur < numWorldChosen){
		c=getc(Dico);
		if (c=='\n')
			++MotParcouruParLeCurseur;
	}
	fgets(motPiocher,100,Dico);
	motPiocher[(strlen(motPiocher))-1] ='\0'; 
	fclose(Dico);

	return 1;
}

int main(int argc, char* argv[])
{
	int nombreDeCoups = 10,ResultPiocherMot,lettreChoisie=0,CoupReussite=0,nombreDEtoile=0,Game=1,i=0,nivo;
	char Mot[500],lettreTrouves[100],Rep[81];

	printf("\tBienvenue dans le pendu\n");
	while (Game==1){
		printf("Choisissez un niveau entre 1 et 2 (1 = facile , 2 = difficile )");
		gets(Rep);
		nivo = atoi(Rep);
		ResultPiocherMot = PiocherMot(Mot,nivo);
		if (!ResultPiocherMot){
			printf("\terreur Avec le fichier source \n");
			getch();
			exit(0);
		}
		while(Mot[i]!='\0')
			lettreTrouves[i++]='*';
		lettreTrouves[i]='\0';
		while (nombreDeCoups != 0){
			printf("\n\nIl vous reste %d coups \x85 jouer\nQuel est le mot secret ?",nombreDeCoups);
		   
		    printf(" %s\n",lettreTrouves);
		    printf("Proposez une lettre : ");
		    lettreChoisie = TakeLetter();
			CoupReussite=0;
			for (i=0; lettreTrouves[i]!='\0'; i++){			
				if (Mot[i] == lettreChoisie){
					lettreTrouves[i]=lettreChoisie;
					CoupReussite=1;
				}
			}
		    if(!CoupReussite)
				--nombreDeCoups;
		    for(i=0,nombreDEtoile=0; lettreTrouves[i]!='\0'; ++i){
				if (lettreTrouves[i] == '*')
					++nombreDEtoile;
			}
			if (nombreDEtoile == 0)
				break;
		}
		if(!nombreDEtoile)
		printf("\n\nGagn\x82, %s \x82tait le mot \x85 trouver !\n",Mot);
		else printf("\n\nPerdu ,le mot que tu devais trouver \x82tait %s\n",Mot);
		printf("Voulez vous rejouer? (oui ou non)");
		gets(Rep);
		switch(Rep[0]){
		case 'O':
		case 'o':
			Game=1;
			nombreDeCoups = 10; /*Renitialisation des variables pour recommencer le jeux */
			lettreChoisie=0;
			CoupReussite=0;
			nombreDEtoile=0;
			Game=1;
			i=0;
			break;
		case 'N':
		case 'n':
			Game=0;
			break;
		default :
			printf("R\x82ponse non comprise, le jeu s'arr\x88te");
			Game=0;
			break;
		}
	
	}
	return 0;
}

Programme téléchargeable ici

Pendu

vraiment super ton pendu !!! :D

BMW M3 = Vitesse extreme
_______________________

Pilote un Mirage 2000, et Fonce !!! [img]http//www.yelims

Pendu

le ptit défaut que je peux constater, c'est la présentation moyenne

BMW M3 = Vitesse extreme
_______________________

Pilote un Mirage 2000, et Fonce !!! [img]http//www.yelims

Pendu

moi j'aime bien, par contre vivement quand yaura plus de mots avec ta nouvelle version :wink:

Pendu

je signale une erreur au mot : idéologiquement du niveau 2, un caractère bizarre remplace le "é"

Pendu

Ce bug est du au fait que le console windows a quelque différent avec les caractères comme les accent donc pour affcher é. Donc en faite les mots du pendu n'aurons pas d'accent c'est juste un oubli de les supprimer

The Ubuntu Counter Project - user number # 15151

Pendu

Voici la nouvelle version du pendu. la Alpha2 0.20.
J'ai ajouté un enorme dictionnaire que j'ai trouvé sur le net de exaxtement 23 067 mots (j'ai compté!avec un prog) ,je l'ai découpé en 2 niveau selon la taille des mots et transformé toutes les les lettres en majuscule grâce à un petit programme écrit pour l'occasion. D'après se que j'ai vu du dico, il y aura des noms propres et des noms de villes

téléchargeable ici

The Ubuntu Counter Project - user number # 15151

Pendu

J'ai enlever les noms propres dans cette version téléchargeable ici

The Ubuntu Counter Project - user number # 15151

Pendu

Nouvelle versinon, ecran moin chargé et une surprise ...
téléchargeable ici

The Ubuntu Counter Project - user number # 15151

Pendu

ouaw !! vraiment pas mal avec le pendu et les lettre déjà joué affiché, chapeau il est en progrès ton jeu !!! :wink:

BMW M3 = Vitesse extreme
_______________________

Pilote un Mirage 2000, et Fonce !!! [img]http//www.yelims

Pendu

ah j'avoue il progresse beaucoup est celui la est tres bien!Bien joué :wink:

Pendu

Nouvelle version téléchargeable ici
Version windows. J'aimerai bien déveloper une version linux mais pour cela il me faut impérativement installer glib (je crois) il faut que je trouve comment on fait et que je m'occupe de la portabilité du code source donc sa mettra un peu de temps (à pars si j'y arrive pas).

Nouvelle version du pendu avec des surprises.

The Ubuntu Counter Project - user number # 15151

Portrait de GenesiS

Pendu

Si t'y arrive pas ça mettra un temps infini :D

Bon à quand une version graphique ?

Pendu

graphiquement le jeu a quand mem pas mal amelioré

BMW M3 = Vitesse extreme
_______________________

Pilote un Mirage 2000, et Fonce !!! [img]http//www.yelims

Portrait de GenesiS

Pendu

Ah !!!
Ca surprend à la fin !

Pendu

ouai c'est sur !!!

BMW M3 = Vitesse extreme
_______________________

Pilote un Mirage 2000, et Fonce !!! [img]http//www.yelims

Pendu

Voici un menu de jeu que j'ai créer
il devrai ressembler a celui de la version graphique du pgcd calculator

The Ubuntu Counter Project - user number # 15151

Pendu

j'm pas trop les couleur :?

BMW M3 = Vitesse extreme
_______________________

Pilote un Mirage 2000, et Fonce !!! [img]http//www.yelims

Pendu

ouai je trouve moyen les couleurs mais sinon c bien

Pendu

Je suis pas spécialiste dans le graphisme donc je demanderai surement l'aide d'un graphiste pour mon pendu

The Ubuntu Counter Project - user number # 15151

Portrait de GenesiS

Tu nous fait une version

Tu nous fait une version linux améliorée ? :d

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.