Forum Clubic

Jeu pendu en 'C' demande d aide

Bonjour, voila j’aimerai demander un coup de main pour corriger certaine faute si cela serait possible dans mon code, je ne comprend pas pourquoi certaine erreur persiste, 2probleme majeur : la potence du pendu ne change pas, et apres avoir entree une lettre, des symbole bizare appairaisse deriere, je suis debutant en C je précise.
merci beaucoup d’avance pour l aide apporter

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

int Menu ();
int Regles ();
int Jeu();
char Affichage_Mot_Deviner(char Mot_Chercher[20], int longueur);
char Demander_Lettre(char lettre);
int Verifier_Lettre(char Lettre, char Lettre_Proposee[50], int place);
char Affichage_Pendu_Dessin(int nbre_erreur);

int main()
{
printf(" --------------------------------------\n Programme realise par Prevost Laurine\n Section : 1IRT Groupe : 3\n Annee academique : 2009-2010\n Nom de l’enseignant : Mr. Tricarico\n Projet : Jeu du Pendu\n --------------------------------------\n\n");
Menu (); //appel la fonction Menu

}

int Menu () //fonction Menu
{
int choix;
printf(" =================================== MENU ===================================\n\n");
printf("\t(1) : Jouer\n \t(2) : Regles du jeu\n \t(3) : Quitter\n\n");
printf(" ============================================================================\n\n");
do
{
printf("\tQue voulez-vous faire ? “);
scanf(”%d",&choix);
if ((choix>0)&&(choix<4))
{

        switch(choix)
        {
            case 1: Jeu(); // appel la fonction Jeu
                    Menu(); // appel la fonction Menu
                    break;
            case 2: Regles(); // appel la fonction Regles
                    Menu(); // appel la fonction Menu
                    break;
            case 3: printf("\tMerci d'avoir jouer avec nous ...\n");
                    break;
        }
    }
else
    {
        printf("\tChoix incorrecte !\n");
    }
}
while ((choix<1 || choix>3));

}

int Regles () // fonction Regles
{
printf("\n\n================================ Regles du jeu ================================\n\n");
printf(“Le pendu est un jeu consistant a trouver un mot en devinant quelles sont les\nlettres qui le composent. Le jeu se joue traditionnellement a deux, avec un\ncrayon et une feuille.\n\nDans ce cas-ci, l’un des joueurs est l’ordinateur. Celui-ci choisit donc un\nmot au hasard qui doit etre devine par l’utilisateur en un minimum d’essais.\nCe dernier propose des lettres de l’alphabet. Si la lettre figure dans le mot\na trouver, elle s’affiche. Si elle n’y figure pas, le nombre de mauvaises\nreponses augmente de 1 et la silhouette du personnage Le Pendu evolue.\n\nAu bout de six mauvaises reponses, la partie est perdue.\n\n”);
printf("===============================================================================\n\n");
}

int Jeu() // fonction Jeu
{
int longueur, i, nbre_essai, rep_erreur=0, rep_correcte=0, place=0, choixaleatoire, verification;
char Dico_Hasard[20], Lettre, Lettre_Proposee[50];
char Tab_Mot_Dico[13][10]={“clavier”,“souris”,“disque”,“unite”,“memoire”,“maison”,“cahier”,“fonction”,“chaine”,“variable”,“logique”,“programme”,“pointeur”};

srand(time(NULL)); // permet de choisir aléatoirement un mot
choixaleatoire=rand()%10;

strcpy(Dico_Hasard,Tab_Mot_Dico[choixaleatoire]);

longueur=strlen(Dico_Hasard);

char Mot_Devinette[longueur];

for (i=0;i<longueur;i++)
{
Mot_Devinette[i]=’*’;
}

printf("\n\n%s\n\n", Mot_Devinette);

do
{
nbre_essai=longueur;

Affichage_Pendu_Dessin(rep_erreur);

Lettre=Demander_Lettre(Lettre);

verification=Verifier_Lettre(Lettre, Lettre_Proposee, place);

if (verification==0)
{
    place++;

    for(i=0;i<longueur;i++)
    {
        if (Dico_Hasard[i]==Lettre)
        {
            Mot_Devinette[i]=Lettre;
            nbre_essai=nbre_essai-1;
            rep_correcte++;
        }
    }

    if (nbre_essai==longueur)
   {
        rep_erreur++;
   }
 }

printf("\n\n%s\n\n", Mot_Devinette);
}

while(rep_erreur!=7 && longueur!=rep_correcte);

if (rep_erreur==7)
{
Affichage_Pendu_Dessin(rep_erreur);
printf(“Vous avez 7 erreurs … Vous avez donc perdu …\n”);
printf(“Le mot a trouve etait %s\n\n”, Dico_Hasard);
}

else
{
printf(“Felicitations !! Vous avez gagne …\n”);
printf(“Le mot a trouve etait %s\n\n”, Dico_Hasard);
}

return 0;
}

char Demander_Lettre(char lettre) // fonction demander une lettre
{
char Lettre;

do
{
printf(“Choisissez une lettre : “, Lettre);
scanf(”%s”, &Lettre);
}

while (Lettre<97 && Lettre>122);

return Lettre;
}

int Verifier_Lettre(char Lettre, char Lettre_Proposee[50], int place) // fonction Vérifier la lettre
{
int i,j, lettre_deja_proposee;
lettre_deja_proposee=0;

if (place==0)
{
    Lettre_Proposee[0]=Lettre;
}

else
{
    for (i=0; i<place;i++)
    {
        if (Lettre_Proposee[i]==Lettre)
        {
            printf ("\a") ;
            lettre_deja_proposee=1;
            printf ("\nVous avez deja propose cette lettre.\n");
        }

        else if (lettre_deja_proposee==0)
        {
            Lettre_Proposee[place]=Lettre;
        }
    }
}

printf ("\nLes lettres deja proposees sont: ");
printf ("%s", Lettre_Proposee);

return Lettre_Proposee[50];

}

char Affichage_Pendu_Dessin(int rep_erreur) // fonction Afficher le Pendu
{
char tete;
tete = 1;

if (rep_erreur==0)
{
    printf("   _____________\n");
    printf("    |\n");
    printf("    |\n");
    printf("    |\n");
    printf("    |\n");
    printf("    |\n");
    printf("   _|___________\n\n");
}

if(rep_erreur==1)
{
    printf("   ___________\n");
    printf("    |\t|\n");
    printf("    |\n");
    printf("    |\n");
    printf("    |\n");
    printf("    |\n");
    printf("   _|_________\n\n");
}

if(rep_erreur==2)
{
    printf("   ___________\n");
    printf("    |\t|\n");
    printf("    |\t");
    printf("%c",tete);
    printf("\n    |\n");
    printf("    |\n");
    printf("    |\n");
    printf("   _|_________\n\n");
}

if(rep_erreur==3)
{
    printf("   ___________\n");
    printf("    |\t|\n");
    printf("    |\t");
    printf("%c",tete);
    printf("\n    |\t|\n");
    printf("    |\n");
    printf("    |\n");
    printf("   _|_________\n\n");
}

if(rep_erreur==4)
{
    printf("   ___________\n");
    printf("    |\t|\n");
    printf("    |\t");
    printf("%c",tete);
    printf("\n    |  -|\n");
    printf("    |\n");
    printf("    |\n");
    printf("   _|_________\n\n");
}

if(rep_erreur==5)
{
    printf("   ___________\n");
    printf("    |\t|\n");
    printf("    |\t");
    printf("%c",tete);
    printf("\n    |  -|-\n");
    printf("    |\n");
    printf("    |\n");
    printf("   _|_________\n\n");
}

if(rep_erreur==6)
{
    printf("   ___________\n");
    printf("    |\t|\n");
    printf("    |\t");
    printf("%c",tete);
    printf("\n    |  -|-\n");
    printf("    |  /\n");
    printf("    |\n");
    printf("   _|_________\n\n");
}

if(rep_erreur==7)
{
    printf("   ___________\n");
    printf("    |\t|\n");
    printf("    |\t");
    printf("%c",tete);
    printf("\n    |  -|-\n");
    printf("    |  / \\\n");
    printf("    |\n");
    printf("   _|_________\n\n");
}

}

Bonjour. J’ai essayé ton code et le compilateur de mon IDE (Code::Blocks):pt1cable: m’affiche une erreur.
Vérifie ton appel à la fonction.:confused:

PS: Demande peut-être à quelqu’un d’autre car moi je m’y connais surtout en C++ et pas trop en C:D

personnelement mon code se lance , mais quand on joue au jeux, il ne detecte pas si on fait une erreur ou une bonne reponse, merci quand meme d avoir essayé yanis

Salut

j’ai jeté un oeil à ton code, tu as essayer de le débugger pour voir si il fait bien ce que tu veux ?

Quel IDE utilises tu ?