Le jeu de pendu en C

Résolu/Fermé
Aurelien.67 Messages postés 18 Date d'inscription jeudi 23 octobre 2014 Statut Membre Dernière intervention 18 décembre 2014 - 18 déc. 2014 à 16:40
Aurelien.67 Messages postés 18 Date d'inscription jeudi 23 octobre 2014 Statut Membre Dernière intervention 18 décembre 2014 - 18 déc. 2014 à 20:24
Bonjour, j'ai réaliser le jeux du pendu en C et je n'arrive pas à sortir de ma fonction "while"
pourtant victoire = 1
ps: ça fonctionne pour chance=0 mais pas pour victoire= 1

mon programme:

/*Le pendu Défit de Noël
**************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
/*===========Initialisation===========*/
int i=0,victoire=0,perdu=0, chance=10,j,k,a=0;
char mot_atrouver[10]={0, 9}, recherche[30]={20,29}, lettre_trouvee[20]={10,19};
/*====================================*/
printf("entrer un mot entre 4 et 10 lettres\n");
while(i==0){
scanf("%s", mot_atrouver);//entre le mot à trouver
system("cls"); // clear la console

printf("%s",lettre_trouvee);
if(strlen(&mot_atrouver)>=4 && strlen(&mot_atrouver)<=10) i=1;//vérifier le nombre de caractères
else puts("erreur trop de craracteres ou pas asser");
}
for(k=0;k!=10;k++){
if(k<strlen(&mot_atrouver)) lettre_trouvee[k]= 42; // lettre_trouvee prend la valeur "*" pour le nombre de caractère
else lettre_trouvee[k]= 8;
}
printf("Le mot a trouver comporte %d caracteres\n", strlen(&mot_atrouver));

while(victoire!=1 || chance!=0){//pour sortir le joueur doit gagner ou perdre <== ICI LES PROBLEME
printf("il vous reste %d possibilités de réponses\n%s\n",chance, lettre_trouvee);
puts("entrer une lettre ou un mot");
scanf("%s",recherche);
j=0;
if(strlen(&recherche)==1){//vérifier si le joueur a rentré un caractère
while(j != strlen(&mot_atrouver)){//placer les lettres trouvées dans lettre_trouvee
if(mot_atrouver[j] == recherche[0]){
lettre_trouvee[j] = recherche[0];
a=1;}
j++;
}
}
else{
if(strcmp(mot_atrouver,recherche)==NULL){//vérifier si le mot entré correspond au mot à trouver
victoire=1;
a=1;}
else
puts("mot incorrecte");
a=1;
chance--;}

if(a!=1){//vérifier si le joueur a rentré un lettre correct ou incorrect
puts("Cette lettre n'est pas dans le mot\n");
if(chance!=0)chance--;}
a=0;
}
if(chance!=0)puts("felicitation vous avez gagner !!");//donner le résultat de la partie
else puts("domage vous avez perdu !!");
return 0;
}


A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
18 déc. 2014 à 19:44
Bonjour,
C'est pas un OU qu'il faut mais un ET...
Sinon attention, strlen(&mot...) il ne faut pas mettre &...
3
Aurelien.67 Messages postés 18 Date d'inscription jeudi 23 octobre 2014 Statut Membre Dernière intervention 18 décembre 2014 7
18 déc. 2014 à 20:24
exacte merci
0