Ami(e)s du C, bien le bonjour !
Bien, j'ai un projet de bataille navale en C à faire.
Pas d'interface graphique, pas de jeu contre l'ordi.
Juste permettre à deux joueurs de jouer l'un contre l'autre.
Je commence d'aujourd'hui, donc je n'en suis qu'à gérer chaque plateau (sous forme de tableau) et leur affichage.
Mon code fonctionne quand je mets tout dans le main.
Les problèmes arrivent quand je tente d'externaliser l'affichage dans une fonction. Voici donc 1) le code qui fonctionne. 2) Le code qui coince.
Merci d'avance de me dire quelle(s) bévue(s) j'ai fait(es).
Ceci fonctionne :
Ceci coince :
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 #include <stdio.h> #include <stdlib.h> #define MAX_LIGNES 11 #define MAX_COL 11 int main() { int x,y; char plateau1[MAX_LIGNES][MAX_COL]; char abcisses[MAX_LIGNES]={'X','A','B','C','D','E','F','G','H','I','J'}; char ordonnees[MAX_LIGNES]={'X','0','1','2','3','4','5','6','7','8','9'}; //boucles d'initialisation plateau1 for(x=0;x<MAX_LIGNES;x++){ plateau1[0][x]=abcisses[x]; } for(y=0;y<MAX_COL;y++){ plateau1[y][0]=ordonnees[y]; } for(x=1;x<MAX_LIGNES;x++){ for(y=1;y<MAX_COL;y++){ plateau1[x][y]='O'; } } //Boucle d'affichage printf("\n"); for(x=0;x<MAX_LIGNES;x++){ printf("%c | ",plateau1[0][x]); } printf("\n- - - - - - - - - - - - - - - - - - - - - \n"); for(x=1;x<MAX_LIGNES;x++){ for(y=0;y<MAX_COL;y++){ if(y==0){ printf("%c | ",plateau1[x][y]); } else{ printf("%c ",plateau1[x][y]); } } printf("\n | \n"); } return 0; }
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 #include <stdio.h> #include <stdlib.h> #define MAX_LIGNES 11 #define MAX_COL 11 //les prototypes des fonctions void affiche(char plateau[MAX_LIGNES][MAX_COL]); //Les variables globales. int x,y; char plateau1[MAX_LIGNES][MAX_COL],plateau2[MAX_LIGNES][MAX_COL]; char abcisses[MAX_LIGNES]={'X','A','B','C','D','E','F','G','H','I','J'}; char ordonnees[MAX_LIGNES]={'X','0','1','2','3','4','5','6','7','8','9'}; //boucles d'initialisation plateau1 for(x=0;x<MAX_LIGNES;x++){ plateau1[0][x]=abcisses[x]; } for(y=0;y<MAX_COL;y++){ plateau1[y][0]=ordonnees[y]; } for(x=1;x<MAX_LIGNES;x++){ for(y=1;y<MAX_COL;y++){ plateau1[x][y]='O'; } } //boucles d'initialisation plateau2 for(x=0;x<MAX_LIGNES;x++){ plateau2[0][x]=abcisses[x]; } for(y=0;y<MAX_COL;y++){ plateau2[y][0]=ordonnees[y]; } for(x=1;x<MAX_LIGNES;x++){ for(y=1;y<MAX_COL;y++){ plateau2[x][y]='O'; } } int main() { affiche(plateau1); return 0; } void affiche( char plateau[MAX_LIGNES][MAX_COL]){ printf("\n"); for(x=0;x<MAX_LIGNES;x++){ printf("%c | ",plateau[0][x]); } printf("\n- - - - - - - - - - - - - - - - - - - - - \n"); for(x=1;x<MAX_LIGNES;x++){ for(y=0;y<MAX_COL;y++){ if(y==0){ printf("%c | ",plateau[x][y]); } else{ printf("%c ",plateau[x][y]); } } printf("\n | \n"); } }
Partager