Bonjour, je suis entrain de faire un petit jeu mais je rencontre des problèmes lors des appels des fonctions dans mon main.c. J'ai créé un tableau[9][9] qui stocke le "niveau" du jeu et pour le moment j'essaye juste de déplacer des symboles d'une case x,y jusqu'à une autre dans ce même tableau, j'ai donc créé des fonctions de déplacement mais je rencontre une erreur pour l'argument (du tableau 9x9) lors de l'appel, ça ne compile pas.
Voilà donc un bout de code:
Et je l'appel de cette façon dans le main: verticalMove(map, fromX, fromY, toX, toY);
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 void verticalMove (char map[9][9], int fromX, int fromY, int toX, int toY) { int l = 0; if (toY < fromY) //Haut { for (l = (fromY - 1); l <= (toY - 1); l--) { if (map[l][fromX] != ' ') { printf("\nDeplacement impossible: un symbole bloque le passage\n"); return; } } map[toY][toX] = map[fromY][fromX]; map[fromY][fromX] = ' '; } if (toY > fromY) //Bas { for (l = (fromY - 1); l <= (toY - 1); l++) { if (map[l][fromX] != ' ') { printf("\nDeplacement impossible: un symbole bloque le passage\n"); return; } } map[toY][toX] = map[fromY][fromX]; map[fromY][fromX] = ' '; } }
Avec map étant un char map[9][9] et les autres variables des int.
Bon là dans le code, je suis conscient que ça ne changera rien dans mon tableau initial vu que je ne passe pas par adresse, mais c'est justement là le problème, j'ai essayé plusieurs combinaison mais à chaque fois ca plante à la compilation, ca me dis, l'argument de la fonction est un char (*)[9] mais un char [9][9] est fourni, des messages dans ce genre.
Voilà, si quelqu'un pouvais m'aider, j'ai encore quelque problème avec les pointeurs et les passages par adresse, surtout lorsqu'il s'agit de tableau à double dimension.
Partager