begin process at 2010 02 10 14:09:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

pendu en c


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pendu en c

samedi 24 juin 2006 à 16:23:29 | pendu en c

scons

bon jour,
voila j'ai un probleme avec un programme en C
il s'agit du jeu du pendu.
tout me semble pourtant corect mais je pense que je dois a voir un probleme au niveau du choix et de l'ouverture de fichier texte ou sont stocker les mots a touver.
je poste ici la source de mon fichier en esperant que quelqu'un pourra me donner un coup de main.

#include <stdio.h>
#include <econio.h>
#include <fcntl.h>
#define MAX_MOTS 15

int main()
{
   int   increment=0;
   int   increment2=0;
   int   sortie=1;
   int   fichier;
   int   caralu;
   int   ligne=1;
   int   hasard=0;
   int   vies=5;
   int   choix;
   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;

 gotoxy(1,1);
 printf("bienvenue dans le jeu du pendu\n");
 gotoxy(1,2);
 printf("jouer avec\n");
 gotoxy(1,3);
 printf("s:le sport\n");
 gotoxy(1,4);
 printf("n:la nature\n");
 gotoxy(1,5);
 scanf("%d",&choix);
 printf("\n");
 printf("\n");

 switch(choix)
 {
 case 's': fichier=open("sport.txt",O_RDWR);
  break;
 case 'n': fichier=open("nature.txt",O_RDWR);
  break;
 };

 while (hasard==0)
   {
     srand((unsigned)time(NULL));
     hasard=rand() % MAX_MOTS;
   }

    // SI N'ARRIVE PAS A OUVRIR LE FICHIER
   if (fichier==-1)
   {
     printf("Impossible d'ouvrir le fichier pendu.txt\n");
     printf("verifiez qu'il est bien dans le meme\n");
     printf("repertoire 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,6);
     printf("%s\n\n",essai);
     gotoxy(1,7);
     printf("Il reste %d vies",vies);
     gotoxy(1,8);
     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,10);
             printf("Vous avez deja trouve cette lettre !      ");
             vies--;
           }
           else
           {
             gotoxy(1,10);
             printf("Bravo ! Vous avez trouve la lettre %c !        ",touche);
             essai[increment]=touche;
           }
         }
         else increment2++;
       }
       if (increment2==increment)
       {
         gotoxy(1,10);
         printf("Rate ! Cette lettre n'est pas dans le mot !    ");
         vies--;
       }
     }
     if (vies<0)
     {
       gotoxy(1,10);
       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,10);
       printf("BRAVO ! Vous avez trouve le mot ! vous avez gagne !");
       gotoxy(1,6);
       printf("%s",essai);
       sortie=0;
       getch();
     }
   }
 }
merci de votre attention.

samedi 24 juin 2006 à 18:01:52 | Re : pendu en c

eRoZion

Membre Club
Salut,

j'ai pas le temps de regarder, je le ferai surement cette nuit si tu n'as pas trouvé mais à mon avis le problème vient du fait que tu compile en console 32 bits et que du coup il faudrait que tu redefinisse le repertoire de travail qui par defaut n'est pas celui de l'executable.

Essaie de placer les fichier sport.txt, nature.txt etc dans C:\sport.txt etc et remplace
case 's': fichier=open("sport.txt",O_RDWR);
par
case 's': fichier=open("c:\\sport.txt",O_RDWR);
etc

Si ca marche c'est ça sinon je regarderai plus tard comme je te l'ai dis plus haut.


eRoZion
samedi 24 juin 2006 à 19:59:12 | Re : pendu en c

ben92600

pour moi il y a pas mal de chose qui pourais provoquer des erreur - non verification de fin de chaine - posibilite de tomber 2 fois d'affiller sur le mm mot (time(0)) mieux (time(0)*getpid) -les goto j'aime pas c'est barbar mais bon sa depend des gents -et tu peu aussi fait plusieur fonction sa aide a mieux savoir ou sa marche pas - tu fait aussi un read de 100 mais qui te dit que ton fichier fera pas 500 fois plus mais deja coupe test fonction sa sera un debut pour voir plus clair dans ton code tu sera ce qui foire et ce qui marche
samedi 24 juin 2006 à 20:14:01 | Re : pendu en c

scons

merci pour vos reponse ca fait plaisir de voir des gens qui essaie de m'aider et je vous en suis tres reconnaissant.
erozion j'ai essayer comme tu me las dit de changer les fichier txt de repertoire mais ca ne change rien dans l'exectuion du programme.
le probleme doit donc bien s'effectuer au niveau du choix du fichier et de sa lecture.
je vais essyer de trouver le probleme mais si vous y arriver avant moi merci de m'en faire part.

 merci a tous et bonne soirée.

ps:
 ben92600 j'ai pas encore eu le temps de tout essayer , mais je m'y mettrais demain, en tout cas merci d'avoir repondu.
samedi 24 juin 2006 à 20:51:46 | Re : pendu en c

ben92600

je vais voir si je retrouve celui que javais fait
dimanche 25 juin 2006 à 14:17:38 | Re : pendu en c

scons

bonjour,
merci pour vos reponses mais j'ai fini par resoudre mon probleme.
en fait il s'agissait d'une mauvaise definition de la variable "choix" qui provoquait une erreur lors de l'ouverture des fichiers.
donc voila desormais tout fonctionne.
merci a tous
dimanche 25 juin 2006 à 14:24:19 | Re : pendu en c

scons

juste une petit question

comment fais ton pour deplacer le message "press any key to continue" quand on decide de quitter l'application?


Cette discussion est classée dans : fichier, printf, touche, increment, gotoxy


Répondre à ce message

Sujets en rapport avec ce message

probleme avec la modification de fichier texte [ par marabou ] voila g un pb car g doi fer une gestion de bibliotheque et dc g arrive a entré ds livre a regarder ms stock ms g aimerai modifier le fichier texte cad Sauvegarde de fichier géométrique simple dans un fichier sous xp. [ par DeathRavage ] Bonjour à tous j'ai pour projet de développer un programme permetant le dessin de formes géométriques simples et leur sauvegarde dans un fichier.j'ai Enregistrer en HEXA un texte avec gcc !! [ par UncleShu ] /* * Ce programme affiche le fichier en HEXADECIMAL et se copie lui-même avec * une autre exetenstion (.txt). Moi je voudrais qui affiche le fichier * ecriture dans un fichier [ par cacoucatatonique ] bonjours,je me suis mis au laanguage C parcequ'a l'ecole j'ai un cours dessus, et je butte sur une erreur inconue.En faite mon probleme vien du fait q Creation et lecture d'un fichier typé en C [ par Razily ] Bonjour , voilà j'ai un projet de Mastermind à rendre bientôt et je coince sur une partie du code notamment sur l'enregistrement ! l'idée c'est que le Menu en C [ par acidjackproject ] Bonjour, j'aimerai faire un menu en C, dans lequel je peux voyager avec les flèches haut et bas. J'ai bien trouvé quelque chose a faire mais avec un d pb pour écrire dans un fichier [ par mailliam ] Bonjour tout l'monde..Moi je débute, j'ai un projet assez simple, qui me semblait en tout k jusqu'a maintnt..je veux faire un programme qui change l'i problème codes ASCI [ par master210687 ] Bonjour,j'ai un petit soucis : je souhaite effectuer une "instruction" particulière en fonction de la touche pressée au clavier.J'ai donc créé ceci :. Langage C : Puissance 4 [ par breakeur59150 ] Bonjour à tous,j'ai une ou deux question à vous poser, je suis en train de faire le jeu puissance 4 en langage c sous borland C, C'est un projet que l aide [ par achrafgassolina ] salut tout le monde la j ai une érreure et je c pas comment la resoudre dans la ligne 296:36 dans la condition if et aprés je veux faire la saisie des


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 12,293 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales