Vraiment besoin d'aide

LHsafae Messages postés 2 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 12 juin 2011 - 12 juin 2011 à 02:08
LHsafae Messages postés 2 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 12 juin 2011 - 12 juin 2011 à 15:11
Bonsoir tout le monde, ou du moins ceux qui liront ce message ^^
Voilà,j'explique en gros mon problème dans l'espoir d'avoir une réponse dans les 24H à venir.
j'ai créé le code source d'un jeu "othello" en C,il marche bien mais sur le terminal, du coup j'ai crée une interface graphique avec la bibliothèque GTK+ , le problème que je rencontre actuellement c'est par rapport à l'implémentation du code, ce dont j'ai besoin exactement c'est de savoir comment récupérer les coordonnées de mon pion sur l'échiquier =(, genre à chaque fois que je clique sur l'échiquier pour installer mon pion je veux qu'une fonction me retourne l'emplacement exacte de ce dernier pour que je puisse continuer !!
est ce que quelqu'un aurait l'amabilité de m'aider ... Merci

2 réponses

cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
12 juin 2011 à 11:02
salut,

Tout dépends de ce que tu utilises pour dessiner ton echiquier. Tous les widgets disposent d'une fonction callback. Si tu utilises un quadrillage d'objets (shape, bouton, ...), tu recupères l'objet directement dans le callback.

Tu pourrais aussi utiliser un simple dessin, recuperer les coordonnées de ton clic dans la fenêtre principale et calculer la position suivant la position de ton echiquier et la taille des cases.

@++
0
LHsafae Messages postés 2 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 12 juin 2011
12 juin 2011 à 15:11
En fait voilà le code de mon échiquier :

/* Echiquier */
Table = gtk_table_new(9,9,TRUE);
for(i = 0 ; i < 8 ; i++) {
sprintf(S,"%d",8-i);
gtk_table_attach_defaults(GTK_TABLE(Table),gtk_label_new(S),0,1,i,i+1);
}
for(i = 1 ; i < 9 ; i++) {
sprintf(S,"%c",'A'+i-1);
gtk_table_attach_defaults(GTK_TABLE(Table),gtk_label_new(S),i,i+1,8,9);
}

Coul = gtk_image_new();
gtk_table_attach_defaults(GTK_TABLE(Table),Coul,0,1,8,9);
for(i = 0 ; i < dim ; i++) {
for(j = 0 ; j < dim ; j++) {
othellier[i][j] = gtk_image_new_from_file("./imageessaye/grisPS.png");

othellier[3][3]=gtk_image_new_from_file("./imageessaye/pionBlanc1.png");
othellier[4][4]=gtk_image_new_from_file("./imageessaye/pionBlanc1.png");
othellier[3][4]=gtk_image_new_from_file("./imageessaye/pionNoir1.png");
othellier[4][3]=gtk_image_new_from_file("./imageessaye/pionNoir1.png");

event_box = gtk_event_box_new();
gtk_container_add(GTK_CONTAINER(event_box),othellier[i][j]);


gtk_table_attach_defaults(GTK_TABLE(Table),event_box,j+1,j+2,i,i+1);
}
}
et comme vous le remarquez je n ai pas encore introduit une fonction callback
0
Rejoignez-nous