Bonjour,

j'ai un soucis, je crée un mastermind pour le moment il est loin d'être fini...

dans ma fonction playgame je demande a l'utilisateur de rentrer ses couleurs et les stocke dans un tableau.

Le problème c'est quand j'affiche ce tableau il a rien.... aucune couleur.

Pourtant quand je fait un printf sur le contenu du tableau pour voir si la couleur est dedans il m'affiche la couleur,c 'est quand je fais un affichage via une autre fonction que je ne vois pas mes couleurs....

Par contre si je rentre en dur ma couleur dans mon tableau ( donc pas via stdin ) et que je printf mon tableau, là je vois mes couleurs...

qq'un peut m'aider?

merci,

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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
//
//  main.c
//  MasterMind
//
//  Created by Robin Theys on 1/12/11.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

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

#define COLORSMAX 8
#define ROWS 4
#define LINES 11
#define MCOLORS 4


void gameMenu (char * color[COLORSMAX], char * store[LINES][ROWS]);
void printArray (char * store[LINES][ROWS], int mode);
void colorGen (char * color[COLORSMAX], char * store[LINES][ROWS]);
void resetArray (char * store[LINES][ROWS]);
void playGame (char * color[COLORSMAX], char * store[LINES][ROWS]);



int main () {
    
    char * color[COLORSMAX] = {"Rouge", "Jaune", "Vert", "Bleu", "Orange", "Blanc", "Violet", "Fuchsia"};
    char * store[LINES][ROWS];
    
    srand(8);
    
    gameMenu(color,store);
    
    return 0;
}

void gameMenu (char * color[COLORSMAX], char * store[LINES][ROWS]) {
    
    int choose;
    
    do {
        system("clear");
        printf("\t****************\n");
        printf("\t*              *\n");
        printf("\t*  MasterMind  *\n");
        printf("\t*              *\n");
        printf("\t****************\n");
        printf("\n");
        printf("\t1. Mode Débutant\n");
        printf("\t2. Mode Pro     \n");
        printf("\n");
        printf("\t0. Quitter      \n");
        printf("\n");
        printf("\n");
        printf("\t Votre sélection : ");
        scanf("%d", &choose);
        fpurge(stdin);
        
        switch (choose) {
           
            case 1:
                playGame(color, store);
                break;
                
            case 2:
                printArray(store, 1);
                //playGame(color, store);
                break;
                
            case 0:
                choose = 0;
                printf("\t\n Au Revoir.");
                break;
                
            default:
                break;
        }
    } while (choose != 0);
}

void printArray (char * store[LINES][ROWS], int mode) {
    
    int i, j, nbLines=10;
    
    system("clear");
    
    if (mode == 0) {
        
        printf("  S: ");
        
        for (i=0; i<LINES; i++) {
            
            for (j=0; j<ROWS; j++) {
                
                printf("%8s", store[i][j]);
                
            }
            printf("\n");
            printf("%3d. ", nbLines);
            
            nbLines--;
        }
    } else {
        
        printf("  S:       *       *       *       *\n");
        
        for (i=1; i<LINES; i++) {
            
            printf("%3d. ", nbLines);
            
            for (j=0; j<ROWS; j++) {
                
                printf("%8s", store[i][j]);
                
            }
            printf("\n");
                        
            nbLines--;
        }
    }                
}

void colorGen (char * color[COLORSMAX], char * store[LINES][ROWS]) {
    
    int i, number, max=COLORSMAX;
    
    for (i=0; i<MCOLORS; i++) {
        
        number = rand()%max;
        store[0][i] = color[number];
        color[number] = color[7];
        color[7] = store[0][i];
                
        max--;
    }  
}

void resetArray (char * store[LINES][ROWS]) {
    
    int i, j;
    
    for (i=0; i<LINES; i++) {
        
        for (j=0; j<ROWS; j++) {
            
            store[i][j] = " - ";
        }
    }
}

void playGame (char * color[COLORSMAX], char * store[LINES][ROWS]) {
    
    int j, i = 10, essais = 0;
    char couleur[10];
    printf("\n");
    resetArray(store);
    colorGen(color, store);
    
    do {
        
        for (j=0; j<MCOLORS; j++) {
            
            printf("Votre Couleur : ");
            gets(couleur);
            store[i][j] = couleur;
            //printf("%s ", store[i][j]);
            //fpurge(stdin);
            
        }
        i--;
        essais++;
     } while (essais < 3);
}
via http://pastebin.com/BHhM2a1X