Le jeu du pendu avec mots stockes dans un fichier texte

Soyez le premier à donner votre avis sur cette source.

Vue 7 351 fois - Téléchargée 476 fois

Description

Voici un jeu du pendu qui choisit un mot au hasard parmi ceux qui sont dans le fichier pendu.txt qui doit etre dans le meme repertoire que l'executable. Si vous faites juste un copier coller et que vous ne telecharger pas le zip vous n'aurez pas le fichier pendu.txt, mais rien ne vous empeche de creer le votre avec 10 mots dedans

Source / Exemple :


#include <stdio.h>
#include <conio.c>
#include <fcntl.h>

#define MAX_MOTS 10

int main()
{
  int   increment=0;
  int   increment2=0;
  int   sortie=1;
  int   fichier;
  int   caralu;
  int   ligne=1;
  int   hasard=0;
  int   vies=5;
  char  cara[100];
  char  mot[15]="\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
  char  essai[15]="\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
  char  touche;

  /*GENERE UN NUMERO DE LIGNE AU HASARD*/
  while (hasard==0)
  {
    srand((unsigned)time(NULL));
    hasard=rand() % MAX_MOTS;
  }

  /*OUVRE PENDU.TXT, O_RDWR VEUT DIRE QU'ON
  OUVRE LE FICHIER POUR LIRE ET/OU ECRIRE DEDANS*/
  fichier=open("pendu.txt",O_RDWR);

  /*SI N'ARRIVE PAS A OUVRIR LE FICHIER*/
  if (fichier==-1)
  {
    printf("Impossible d'ouvrir le fichier pendu.txt\n");
    printf("V\x82rifiez qu'il est bien dans le m\x88me\n");
    printf("r\x82pertoire que l'executable.");
    getch();
    return 1;
  }

  caralu=read(fichier,cara,100); //LIT LE CONTENU DU FICHIER

  //TANT QU'ON N'EST PAS AU NUMERO DE LIGNE
  //EGAL A HASARD COMPTE LE NOMBRE DE LIGNE
  while (hasard!=ligne)
  {
    if (cara[increment]=='\n') ligne++;
    increment++;
  }

  /*TANT QUE LA LIGNE N'EST PAS TERMINEE*/
  while (cara[increment]!='\n')
  {
    mot[increment2]=cara[increment];
    essai[increment2]='?';
    increment2++;
    increment++;
  }
  close(fichier); //REFERME LE FICHIER
  while (sortie==1)
  {
    gotoxy(1,1);
    printf("%s\n\n",essai);
    gotoxy(1,4);
    printf("Il reste %d vies",vies);
    gotoxy(1,5);
    printf("Appuyez sur une lettre ");
    touche=getch();
    if (touche==27) sortie=0; //SI ESCAPE QUITTE
    /*SI C'EST UNE MAJUSCULE TRANSFORME EN MINUSCULE*/
    if ((touche<=90)&&(touche>=65)) touche=touche+32;
    /*SI UNE LETTRE A ETE PRESSEE*/
    if ((touche<=122)&&(touche>=97))
    {
      increment2=0;
      for (increment=0 ; increment<=14 ; increment++)
      {
        if (mot[increment]==touche)
        {
          if (essai[increment]==touche)
          {
            gotoxy(1,6);
            printf("Vous avez deja trouve cette lettre !      ");
            vies--;
          }
          else
          {
            gotoxy(1,6);
            printf("Bravo ! Vous avez trouve la lettre %c !        ",touche);
            essai[increment]=touche;
          }
        }
        else increment2++;
      }
      if (increment2==increment)
      {
        gotoxy(1,6);
        printf("Rate ! Cette lettre n'est pas dans le mot !    ");
        vies--;
      }
    }
    if (vies<0)
    {
      gotoxy(1,8);
      printf("PERDU ! Vous n'avez pas trouve le mot !");
      sortie=0;
      getch();
    }
    increment2=0;
    for (increment=0 ; increment<=14 ; increment++)
    {
      if (mot[increment]==essai[increment]) increment2++;
    }
    if (increment2==15)
    {
      gotoxy(1,8);
      printf("BRAVO ! Vous avez trouve le mot ! vous avez gagne !");
      gotoxy(1,1);
      printf("%s",essai);
      sortie=0;
      getch();
    }
  }
}

Conclusion :


attention si vous faites votre propre fichier pendu.txt, il devra avoir le meme nombre de mots que le nombre defini par MAX_MOTS, et surtout chaque mot devra etre ecris sur une ligne, et des que le mot est fini vous allez tout de suite a la ligne. Si vous mettez un espace le programme fera comme si c'etait une lettre et comme on ne peut appuyer que sur les lettres il sera impossible de gagner.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

azimz
Messages postés
3
Date d'inscription
lundi 2 mai 2005
Statut
Membre
Dernière intervention
6 mai 2005
-
j'ai le message d'erreur sous dev c++ : [Linker error] undefined reference to 'gotoxy' et qd je met #include <conio.h> j'ai conio.c : No such file or directory
cs_Floryane
Messages postés
1
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
6 janvier 2006
-
j'aimerai pouvoir mettre ce jeu sur irc est ce possible et si ui quel commande rajouter(nul en programtion)
merci

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.