Bonjour. Je serai brève.

Pour initialiser mon mot au départ :

char temp[26]={0};

Comment fais-je, quand la personne demande à rejouer, pour le réinitialiser avant de relancer la boucle ?

J'ai essayé plein de trucs... Moi pas trouvé le bon.

Si je ne le fais pas, et que le mot tiré au sort suivant est plus court que le mot précédent, j'ai des tas de bugs.

Sinon mon tp est fini et tourne bien... Faut juste que je modularise (presque tout est dans le main actuellement)...

Je vous mets le code pour vos critiques acerbes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "fonctions.c"
 
int main(){
    char s='s';
    char ligne[26]={0},mottire[26]={0},temp[26]={0},curlet=0,rejoue='O';
    int vies,i,flag=0,pif,total=0,score=0;
 
 
 
    do {
            s='s';
            vies=5;
            i=0;
            total++;
            pif=alea();
            FILE *fichier = fopen("liste.txt","r");;
            if (fichier == NULL){
               printf("Le fichier ne peut etre ouvert.");
               return 1;
            }
            while (fgets(ligne,26,fichier)!=NULL){
                i++;
                if(i==pif){
 
                    strcpy(mottire,ligne);
                }
 
            }
            fclose(fichier);
            i=0;
 
            for(i=0;i<(strlen(mottire)-1);i++){
                temp[i]='*';
            }
            temp[i]='\n';
 
            i=0;
            //tant que ni gagne ni perdu
            //boucle do while (faut bien rentrer d'abord)
            do{
                    printf("\n\nMOT A TROUVER : %s\n",temp);
                    printf("Il vous reste %d vie%c\n",vies,s);
                    printf("Proposez une lettre (pas d'accent) : ");
 
                    flag=0;
                    curlet=lirelettre();
 
                    for(i=0;i<strlen(temp);i++){
                        if (curlet==mottire[i]){
                            temp[i]=curlet;
                            flag=1;
                        }
                    }
                    if(flag==0){
                        vies--;
                    }
                    if(vies==1){
                        s=' ';
                    }
 
                }
            while((strcmp(temp,mottire)!=0)&&(vies>0));
            if(vies<=0){
                printf("\n\nDommage, vous avez perdu.\n");
                printf("Il fallait trouver %s\n\n",mottire);
                printf("\nVotre score : %d/%d\n",score,total);
                printf("\n\nVoulez-vous rejouer ? (o/n)");
                rejoue=lirelettre();
            }
            if(strcmp(temp,mottire)==0){
                score++;
                printf("\n\nBravo ! Le mot etait : %s",mottire);
                printf("\nVotre score : %d/%d\n",score,total);
                printf("Voulez-vous rejouer ? (o/n)");
                rejoue=lirelettre();
            }
            if(rejoue=='N'){
                printf("\nVotre score : %d/%d\n",score,total);
                printf("Au revoir et a bientot !!!\n\n");
            }
            else{
                //reinitialise le mot d'ou ma question...
            }
        }
 
    while (rejoue=='O');
    return 0;
}