Bonjour,
Je suis actuellement confronté à un problème que je n'arrive pas à résoudre seul. J'ai bien regardé sur divers forum mais les réponses que j'y trouve ne fonctionnent pas dans mon cas particulier.
Je doit faire un jeu qui fonctionne avec une grille. Mon problème ce trouve dans la génération de cette grille. J'aimerais dans une fonction principale appeler une fonction de génération de grille. Je déclare un double pointeur dans la fonction principal que j'envoi dans la fonction de génération afin qu'elle y applique des mallocs et qu'elle le remplisse. Simplement si le tableau se génere bien en local dans la fonction, si je tente de l'afficher dans la fonction principal je constate que rien ne s'est passé.
Voici les 2 fonctions qui me pose problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void mod_serpent(){ int grid_size; int **grid; int counter_i, counter_j; rules(); get_size(&grid_size); generate_grid(grid, grid_size); print_grid(); }Je vous remerci d'avance.
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 void generate_grid(int **grid, int grid_size){ int counter_i; char jaune = 'J'; char rouge = 'R'; int counter_j; int counter_k; int var_temp1 = 0; int var_temp2 = 0; grid = malloc(grid_size * sizeof(int*)); //allocation de la 1ere dimension for (counter_i = 0; counter_i < grid_size; counter_i++){ // allocation de la 2eme dimension grid[counter_i] = malloc(grid_size * sizeof(int)); } for (counter_i = 0; counter_i < grid_size; counter_i++){ // initilisation grille var_temp2 = grid_size - 2; for (counter_j = 0; counter_j < grid_size; counter_j++){ if (counter_i == 0 && counter_j == 0){ grid[counter_i][counter_j] = jaune; // J } else{ if (counter_j + var_temp1 > grid_size - 1){ // croissant d�croissant while(var_temp2 >= 0 && counter_j < grid_size){ if (var_temp2 == 0 ){ grid[counter_i][counter_j] = rouge; // R } else{ grid[counter_i][counter_j] = var_temp2; } counter_j++; var_temp2--; } } else{ grid[counter_i][counter_j] = counter_j + var_temp1; } } } var_temp1++; } }
Partager