bonjour,
en fait je suis en train de gerer une parite joueur contre ordinateur
le joueur place son pion via la souris ensuite l ordinateur place son pion aliatoirement
cette fonction gere la prtie humain(je clic moi meme sur la zone de dessin pour afficher le pierre)la il ya pas de probleme
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
oid  attrape_souris2(GtkWidget *widget, GdkEventButton *event, gpointer mode){
	  printf("autretefpbm\n");
 
	int x=event->x/24;
	int y=event->y/24;
	Pile *p;
	if(iaactive==1){
 
 
	if(tablo[x][y]==0){
	 	if(joueur==1){
		  nbcoup++;
		  sprintf(char_tmp_nbcoup,"%s%d","nbcoup : ",nbcoup);
		  gtk_label_set_label(GTK_LABEL(nbcoupjoue), char_tmp_nbcoup);
 
 
	       		pierrenoire= gdk_pixmap_create_from_xpm(widget->window,NULL,&widget->style->black,"./pierre_noire.xpm");
			tablo[x][y]=1;
			gdk_draw_pixmap(widget->window,widget->style->black_gc,pierrenoire,0,0,x*24 ,y*24 ,24,24);
			while((p=pile_pop(&pilerefaire)))free(p);
		        pile_push( x,y,&piledefaire);
 
              if(compterPoints(x, y, 0, -1)>=5){
			 	 printf("noiregagne\n");
			  	joueurgagne=1;
			  	popup(GTK_WIDGET(mode),NULL);
		      }else if(compterPoints(x, y, 1, -1)>=5){
			  printf("noiregagne\n");
				joueurgagne=1;
			   popup(GTK_WIDGET(mode),NULL);
		      }else if(compterPoints(x, y, 1, 0)>=5){
		      joueurgagne=1;
			  printf("noiregagne\n"); popup(GTK_WIDGET(mode),NULL);
			  }else if(compterPoints(x, y, 1, 1)>=5){
			  joueurgagne=1;
			  printf("noiregagne\n"); popup(GTK_WIDGET(mode),NULL);
			  }
iaactive=1;
 
			joueur=2;
 
}
}
}
}

la pour geree la partie ordinateur
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
void iajoue(GtkWidget *widget, gpointer mode)
{ 
printf("kefkenfenfkefkef\n");
srand(time(NULL));
int x;
int y;
Pile *p;
	if(iaactive==1){
 
 
 
	if(tablo[x][y]==0){
if(joueur==2){
		  x=rand()%18;
		  y=rand()%18;
		  nbcoup++;
		  sprintf(char_tmp_nbcoup,"%s%d","nbcoup : ",nbcoup);
		  gtk_label_set_label(GTK_LABEL(nbcoupjoue), char_tmp_nbcoup);
			pierreblanche= gdk_pixmap_create_from_xpm(widget->window,NULL,&widget->style->black,"./pierre_blanche.xpm");
			tablo[x][y]=2;
			gdk_draw_pixmap(widget->window,widget->style->black_gc,pierreblanche,0,0,x*24 ,y*24 ,24,24);
			while((p=pile_pop(&pilerefaire)))free(p);
 
			pile_push( x,y,&piledefaire);
 
			 if(compterPoints(x, y, 0, -1)>=5)
			 {joueurgagne=2;
		    	printf("blanchegagne\n"); popup(GTK_WIDGET(mode),NULL);
 
		    	}
		    else if(compterPoints(x, y, 1, -1)>=5)
		    {
		    joueurgagne=2;
			printf("blanchegagne\n"); popup(GTK_WIDGET(mode),NULL);
 
			}
			else if(compterPoints(x, y, 1, 0)>=5)
			{
			joueurgagne=2;
			printf("blanchegagne\n"); popup(GTK_WIDGET(mode),NULL);
 
			}
			else if(compterPoints(x, y, 1, 1)>=5)
			{
			joueurgagne=2;
			printf("blanchegagne\n"); popup(GTK_WIDGET(mode),NULL);
 
			}
 
			joueur=1;
		}
 
	}
}
 
}
je sais pas comment je peux faire applée cette derniere fonction..
est ce que via gcallback?? mais quelle est l evenement qu il faut le metre??
merci de m avoir bien m aidé,