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
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
Pendu
J'ai enlever les noms propres dans cette version téléchargeable ici
Pendu
Nouvelle versinon, ecran moin chargé et une surprise ...
téléchargeable ici
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.
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
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
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
Tu nous fait une version
Tu nous fait une version linux améliorée ? :d