Le jeu du pendu debutant
Fermé
fannypamcof
Messages postés
3
Date d'inscription
dimanche 16 décembre 2012
Statut
Membre
Dernière intervention
16 décembre 2012
-
16 déc. 2012 à 19:39
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 16 déc. 2012 à 21:16
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 16 déc. 2012 à 21:16
A voir également:
- Le jeu du pendu debutant
- Jeu du pendu - Télécharger - Vie quotidienne
- 94 jeu - Télécharger - Puzzle & Réflexion
- Jeu zuma - Télécharger - Jeux vidéo
- Jeu 94 degrés - Télécharger - Divers Jeux
- Logo jeu - Télécharger - Jeux vidéo
4 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
16 déc. 2012 à 20:51
16 déc. 2012 à 20:51
Bonjour,
Plein de choses à revoir. Je reprends le code :
scanf("%s",&mot1);
Pas de & pour un tableau.
mot2[i]=42;
Mets plutôt '*' que 42, c'est plus lisible...
while(mot1!=mot2 ...)
Ca sera toujours faux. Toi ce que tu veux faire, c'est plutôt :
while(strcmp(mot1, mot2) ...) /*retourne 0 si les deux tableaux sont égaux*/
scanf("\n %c",&lettre);
Mets plutôt : scanf("%c",&lettre) ou simplement : lettre=getchar();
Et remets un getchar(); juste après pour supprimer le \n du buffer clavier.
Ce qui donne :
scanf("%c",&lettre); /*ou lettre=getchar();*/
getchar();
if (lettre[i]=mot1[i]){
Il faut mettre == ici. == c'est pour la comparaison, = pour l'affectation.
De plus, attention lettre est un tableau. Il aurait fallu qu'il soit déclaré : char lettre;
Donc là, à toi de préciser ce que tu veux, car c'est pas clair.
printf("\n le mot est %s",mot2);
N'oublie pas de mettre un \n après le %s avant d'appeler le return 0; final. Ou sinon mets un fflush(stdout);
Corrige tout le code, et reposte-le s'il reste des erreurs. N'oublie pas d'utiliser les balises "code" (à droite du bouton souligné), sinon c'est illisible pour nous...
Plein de choses à revoir. Je reprends le code :
scanf("%s",&mot1);
Pas de & pour un tableau.
mot2[i]=42;
Mets plutôt '*' que 42, c'est plus lisible...
while(mot1!=mot2 ...)
Ca sera toujours faux. Toi ce que tu veux faire, c'est plutôt :
while(strcmp(mot1, mot2) ...) /*retourne 0 si les deux tableaux sont égaux*/
scanf("\n %c",&lettre);
Mets plutôt : scanf("%c",&lettre) ou simplement : lettre=getchar();
Et remets un getchar(); juste après pour supprimer le \n du buffer clavier.
Ce qui donne :
scanf("%c",&lettre); /*ou lettre=getchar();*/
getchar();
if (lettre[i]=mot1[i]){
Il faut mettre == ici. == c'est pour la comparaison, = pour l'affectation.
De plus, attention lettre est un tableau. Il aurait fallu qu'il soit déclaré : char lettre;
Donc là, à toi de préciser ce que tu veux, car c'est pas clair.
printf("\n le mot est %s",mot2);
N'oublie pas de mettre un \n après le %s avant d'appeler le return 0; final. Ou sinon mets un fflush(stdout);
Corrige tout le code, et reposte-le s'il reste des erreurs. N'oublie pas d'utiliser les balises "code" (à droite du bouton souligné), sinon c'est illisible pour nous...
ken dumoulin
Messages postés
54
Date d'inscription
dimanche 16 décembre 2012
Statut
Membre
Dernière intervention
20 janvier 2013
4
16 déc. 2012 à 19:44
16 déc. 2012 à 19:44
Je fais pas de c mais tu peux essayer de mettre deux = au lieu de un seul dans ton if.
if(lettre[i]==mot1[i])
if(lettre[i]==mot1[i])
fannypamcof
Messages postés
3
Date d'inscription
dimanche 16 décembre 2012
Statut
Membre
Dernière intervention
16 décembre 2012
16 déc. 2012 à 19:48
16 déc. 2012 à 19:48
Merci pour ta réponse mais quand je met le == ça ne remplace toujours pas par la lettre entrer si elle existe dans mot1 et en plus si elle n'appartient pas au mot 1 il ne rentre pas dans le else, il reste dans le if (il ne met plus qu'il reste x coup a jouer).
fannypamcof
Messages postés
3
Date d'inscription
dimanche 16 décembre 2012
Statut
Membre
Dernière intervention
16 décembre 2012
16 déc. 2012 à 21:13
16 déc. 2012 à 21:13
Re bonsoir,
il manque juste un arrêt à la fin du programme afin que l'on sache le bon mot si l'on a perdu, par exemple et si l'on a gagne avant que le programme s'arrete. Je ne sais pas du tout comment faire ça mais le programme est bon.
il manque juste un arrêt à la fin du programme afin que l'on sache le bon mot si l'on a perdu, par exemple et si l'on a gagne avant que le programme s'arrete. Je ne sais pas du tout comment faire ça mais le programme est bon.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int p; int i; char mot1[100]={0}; char mot2[100]={0}; char lettre; int erreur=0; printf("Le joueur 1 entre le mot :"); scanf("%s",&mot1); printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); p=strlen(mot1); for (i=0;i<p;i++) { mot2[i]=42; } printf("Le mot a trouve est de la forme %s",mot2); while ((strcmp(mot1,mot2)!= 0) || (erreur<10)){ printf("\n Entrer une lettre "); scanf("\n %c",&lettre); int cpt = 0; for(i=0;i<p;i++){ if (lettre == mot1[i]){ mot2[i]=lettre; cpt=cpt+1; } } if (cpt == 0){ erreur=erreur+1; printf("\nIl vous reste %d coups",(10-erreur)); } printf("\nle mot devient %s",mot2); } printf("\nle mot est %s",mot2); return 0; }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
16 déc. 2012 à 21:16
16 déc. 2012 à 21:16
Il y a encore des problèmes dont j'ai signalés plsu haut.
Sache, que ce n'est pas parce qu'un programme fonctionne qu'il est correct. Surtout en C.
Sache, que ce n'est pas parce qu'un programme fonctionne qu'il est correct. Surtout en C.