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
je sais pas comment je peux faire applée cette derniere fonction..
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; } } } }
est ce que via gcallback?? mais quelle est l evenement qu il faut le metre??
merci de m avoir bien m aidé,
Partager