bonjour a tous !
alors je vous explique le fonctionnement de mon programme, puis le probleme.
Il s'agit de faire un jeu de loup et d agneau, sur un damier.
je me suis créer une structure :
puis un tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 typedef struct block { GtkWidget *pButton; GtkWidget *pImage_blanc; GtkWidget *pImage_noir; GtkWidget *pImage_loup; // GtkWidget *pImage_agneau;// gint x; }t_block;
Dans le main, je remplis tout les champs comme il se doit, et lorsque je clique sur un bouton je veux envoyer tout le tableau, je met donc ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part t_block block[10][10];
et voici le sous programme jeu.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 for(i=0;i<10;i++) { for(j=0;j<10;j++) { g_signal_connect(G_OBJECT(block[i][j].pButton), "clicked", G_CALLBACK(jeu), block); } }
Or je me suis rendu compte que la valeur block[i][j].x etait totalement farfelue et donc que le sous programme ne recevait pas les bonnes données.
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 #include "biblio.h" void jeu(GtkWidget *pButton, gpointer data) { t_block** block; gint i=0; gint j=0; GtkWidget* pWindow; pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(pWindow),"fenetre test"); gtk_window_set_default_size(GTK_WINDOW(pWindow),320,200); block=(t_block**) data; for(i=0;i<10;i++) { for(j=0;j<10;j++) { if((block[i][j].x)==1) gtk_widget_show_all(pWindow); } } }
Pouvez vous m'aidez svp?
En espérant avoir été clair dans mes explications
Partager