Problème pour un pendu

Signaler
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
Bonjour tout le monde, je suis débutant et je tente de faire un pendu. Mais voilà, y a plin d'erreur que je ne comprend pas. Donc si qqu pouvais m'aidé ca serai trop sympa.

Voila le code :

#include <dos.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int i,longueurMot,longueurMot1,longueurAlphabet,cmp,jeu=1;
char *mot, *mot1, lettre[2];
char alphabet[27] = "abcdefghijklmnopqrstuvwxyz";

int Affichage();
int VerifAlphabet();

int main()
{
mot = "voiture";
longueurMot = strlen(mot);
mot1 = "voiture";
longueurMot1 = strlen(mot1);
_setcursortype(1);
longueurAlphabet = strlen(alphabet);
while(jeu==1)
{
Affichage();
VerifAlphabet();
}
gotoxy(1, 8);
printf("Fin du jeu");
getch();
return 0;
}

int VerifAlphabet()
{
for(i=0;i<=longueurAlphabet;i++)
{
cmp = strcmp(lettre, &alphabet[i]);
gotoxy(1, 7);
printf("lettre : %s ;alphabet : %s", lettre, alphabet[i]);
if (cmp == 0)
{
// La lettre est dans l'alphabet
break;
}
}
delay(2000);
jeu = 1;
return 0;
}

int Affichage()
{
system("cls");
gotoxy(1, 1);
printf("Lettres restantes : %s", alphabet);
gotoxy(1, 2);
printf("Le mot à trouver : %s", mot);
gotoxy(1, 4);
printf("Entrez une lettre : ");
scanf("%c", lettre);
}
A voir également:

8 réponses

Messages postés
26
Date d'inscription
lundi 16 juin 2003
Statut
Membre
Dernière intervention
3 janvier 2008

Ben a part le problème du delay() que je vais regarder, t'as juste oublié return 0 dans Affichage()
Messages postés
48
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
26 juillet 2005
3
Salut,

Pourrais tu être un peu plus précis sur les erreurs dont tu parles.
Est ce que ce sont des erreurs lors de la compilation ? Ou lors de l'execution (eg : comportement inattendu) ?

J'ai lu ton code en diagonale, et je pense qu'il doit compiler. En revanche pour ce qui est de l'exécution...
Messages postés
48
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
26 juillet 2005
3
Ah oui, je vois déjà une grosse erreur en fait. Au niveau de ta comparaison entre lettre et l'alphabet; ou tu compares une lettre avec un bout d'alphabet, ce qui devrait toujours te retourner faux sauf pour la lettre 'z'.

Mais plutot que de comparer 2 caractères à l'alphabet en utilisant un strcmp, pourquoi ne pas utiliser 1 catactère et le contenu du'une case de l'alphabet ?

char lettre;
char alphabet[27] = "..";

...cmp (lettre alphabet[i]); // compare le caractère contenu
// dans la ième case du tableau avec le caractère lu

....
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
3
G remplacer mon code par le tien :
cmp (lettre alphabet[i]);
if (cmp == 0)....

et j'obtient l'erreur :

41 C:\pendu\main.cpp
ISO C++ forbids comparison between pointer and integer
Messages postés
8
Date d'inscription
jeudi 12 août 2004
Statut
Membre
Dernière intervention
5 octobre 2004

Normal. tu compare un tableau (lettre) a une case de tableau (alphabet[i])
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
3
certe mais je voudrais savoir la solution en fait :-D si tu l'a évidemment !
Messages postés
8
Date d'inscription
jeudi 12 août 2004
Statut
Membre
Dernière intervention
5 octobre 2004

bah la solution, c'est de comparer un caractere avec un caractere dude
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
3
Désolé mais je suis un débutant en prog, tu peux déveloper stp ?