Accueil > Forum > > > > savoir quel case d'un tableau bidimensionel est lié au clic de la souris
savoir quel case d'un tableau bidimensionel est lié au clic de la souris
lundi 25 janvier 2010 à 14:14:15 |
savoir quel case d'un tableau bidimensionel est lié au clic de la souris

juju116
|
bonjour j'ai un petit souci de comprehension
j'ai un tableau declaré ainsi: int tableau[3][3]; tout mes cases sont intialisé à zero à l'aide de deux boucles for qui parcours mon tableau jusqu'ici pas de soucis et je recupère les cordonné de ma souris lorsque je presse mon bouton de souris par l'evenement associé. le souci est comment savoir quel est ma case associé à mon clic de souris. le but est de savoir quel case à été coché pour changé la variable.merci beaucoup d'avence
|
|
lundi 25 janvier 2010 à 15:17:38 |
Re : savoir quel case d'un tableau bidimensionel est lié au clic de la souris

BruNews
|
Tu es certain d'avoir besoin d'un tableau 2 dimensions ???
Avec une résolution 2000x1400 ça fera deja 11 Mo de mémoire utilisée.
ciao...
BruNews, MVP VC++
|
|
lundi 25 janvier 2010 à 17:45:50 |
Re : savoir quel case d'un tableau bidimensionel est lié au clic de la souris

juju116
|
re BruNews mon tableau est réalise dans une dimension de 600*600 moins de mémoire utilisé donc, mais sinon comment je pourais allegé mon tableau dans ce cas? et comment lier la case ou je clic avec la souris ( a partir des coordonnée x et y de la souris trouver les coordonnée de la case ou j'ai cliqué) merci
|
|
lundi 25 janvier 2010 à 17:59:10 |
Re : savoir quel case d'un tableau bidimensionel est lié au clic de la souris

BruNews
|
Sous Windows, position du clic souris est dans un:
POINT pt;
tableau[pt.x][pt.y] = qqchose;
truc de ce genre.
ciao...
BruNews, MVP VC++
|
|
vendredi 29 janvier 2010 à 07:42:27 |
Re : savoir quel case d'un tableau bidimensionel est lié au clic de la souris

juju116
|
j'ai créé cette fonction ci mais mon image s'affiche toujours dans la case en haut a gauche bizzare puisque j'ai créer deux boucles for donc je parcours bien mon tableau, int x et y sont les coordonnées recuperé par la souris et i j les coordonnées finale de la case à charger.
void Plateau(int x, int y )
{
SDL_Rect f ={ 0,0,0,0};
int i,j,k,h,w,l;
h= largeur/3;
l= hauteur/3;
for(k=0,i=0;i<h;i+=h,k++)
{
f.y = i;
for(j=0,l=0;j<l;j+=l,w++)
{
f.x = j;
}
}
plateau[i][j] = SDL_BlitSurface(X,NULL,screen,&f);
}
|
|
lundi 1 février 2010 à 14:32:22 |
Re : savoir quel case d'un tableau bidimensionel est lié au clic de la souris

juju116
|
voila j'ai réussi après plusieurs simulations à trouver un bon code. c'est un peu crade avec les conditions pour les coordonées du pointeurs si quelqu'un m'apporte des suggestions je suis preneur, voila topic clos ;)
Code C/C++ : #include <cstdlib>
#include <stdlib.h>
#include <SDL/SDL.h>
#include <SDL.h>
#include <iostream>
using namespace std;
bool Initialisation();
void Plateau(int, int);
void Pause();
void Affichage();
void Probleme();
void Souris();
void Tours();
int i,j;
int const largeur = 600;
int const hauteur = 600;
int plateau[3][3];
SDL_Surface *fd, *X, *O, *screen;
SDL_Event event;
SDL_Rect r={0,0,0,0};
int main ( int argc, char** argv )
{
SDL_Init( SDL_INIT_VIDEO);
int done =0;
// initialize SDL video
if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{
cout << "Probleme d initialisation" << SDL_GetError() << endl;
Probleme();
}
// create a new window
screen = SDL_SetVideoMode(largeur,hauteur, 16,SDL_HWSURFACE|SDL_DOUBLEBUF);
SDL_WM_SetCaption("Morpion Version 1.0", NULL);
Initialisation();
Affichage();
//Boucle generale
while(!done)
{
//Traiter les evenements
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_QUIT:
done=1;
break;
case SDL_KEYUP:
if(event.key.keysym.sym==SDLK_a)
done=1;
break;
case SDL_MOUSEBUTTONUP:
Plateau(event.button.x,event.button.y);
break;
default:
break;
}
}
// finally, update the screen :)
SDL_Flip(screen);
} // end main loop
// free loaded bitmap
SDL_FreeSurface(screen);
// all is well ;)
printf("Exited cleanly\n");
SDL_Quit();
return 0;
}
bool Initialisation()
{
fd = NULL;
X = NULL;
O = NULL;
//pour fd
if( (!fd == NULL) || (!X == NULL) || (!O == NULL) )
{
SDL_FreeSurface(fd), fd= NULL;
SDL_FreeSurface(X), X= NULL;
SDL_FreeSurface(O), O = NULL;
cout<< "Probleme d initialisation des images" << endl;
Probleme();
}
if( (fd == NULL) || (X == NULL) || (O == NULL) )
{
cout<< "Probleme de chargement de fd, x et o" << endl;
Probleme();
}
X = SDL_LoadBMP("x.bmp");
O = SDL_LoadBMP("o.bmp");
fd = SDL_LoadBMP("fd.bmp");
}
void Pause()
{
int continuer = 1;
SDL_Event event;
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}
void Affichage()
{
SDL_Rect r = {0};
SDL_BlitSurface(fd,NULL,screen,&r);
}
void Probleme()
{
char choix;
cout<< " Vous avez un probleme\n "<<endl;
cout<< " Voules vous quitter? Oui ou Non :\n "<<endl;
switch(choix)
{
case 'oui':
EXIT_SUCCESS;
break;
case 'non':
EXIT_FAILURE;
break;
}
}
void Plateau(int x, int y )
{
int h,l,w,a,b;
for(i=0; i<3; i++)
for(j=0;j<3;j++)
plateau[i][j]=0;
//calcul de la case associé:
i=x/(largeur/3);
j=y/(hauteur/3);
if(plateau[i][j]==0)
{
{
//pour les x:
if(x<200)
{
x=0;
}
else if(x<400)
{
x=200;
}
else
{
x=400;
}
//pour les y :
if(y<200)
{
y=0;
}
else if(y<400)
{
y=200;
}
else
{
y=400;
}
r.x=x;
r.y=y;
}
SDL_BlitSurface(X,NULL,screen,&r);
}
else if(plateau[i][j]==2)
{
{
//pour les x:
if(x<200)
{
x=0;
}
else if(x<400)
{
x=200;
}
else
{
x=400;
}
//pour les y :
if(y<200)
{
y=0;
}
else if(y<400)
{
y=200;
}
else
{
y=400;
}
r.x=x;
r.y=y;
}
SDL_BlitSurface(O,NULL,screen,&r);
}
}
|
|
Cette discussion est classée dans : clic, tableau, case, souris, bidimensionel
Répondre à ce message
Sujets en rapport avec ce message
Position de la souris. [ par Colombus ]
Bonjour, Dans un projet MFC j'ouvre un bitmap; Je voudrais par la suite, "uniquement" après clic sur un bouton pouvoir avec la souris cliquer sur un p
Position Joystick et clic souris [ par theoriginalstpierre ]
Salut,J'aimerais pouvoir récupérer la position (x,y) du joystick dans deux variables distinctes x et y.Aussi comment savoir si un bouton du joystick e
coordonnees opengl d'un clic de souris [ par sheeper ]
Bonjour,J'aimerais savoir comment convertir les coorddonnes d'un clic de souris (donc relative a l'ecran) en coordonnes correspondantes pour ma fenetr
utiliser le double clic de la souris pour afficher une dialogbox [ par izle ]
IzLe,Bonjour, je voudrais utiliser le double clic de la souris pour ouvrir une boite de dialog, je voudrais également conserver la position du cursor
deplacements dans des fenetres [ par magic_Nono ]
déplacement rectangle ds fenetre avec sourisQuestion toute bêteqqn a-t'il déjà fait un prgou il deplace des boites, rectangles ou autre objet au sein
Clic de souris [ par manta7 ]
Bonjour a tous !!! Je voudrais savoir s'il existe un moyen simple de produire x clics par secondes lorsque l'on garde le bouton gauche de la souris ap
perte de device avec dinput [ par chamoine ]
J'ai un soucis lorsque j'agrandi mon application après l'avoir réduite. Je suis obligé de killer celle-ci.... J'arrive parfaite a récupérer mes surfac
Cacher un tableau de chiffre par un de caractere [ par RootASM ]
Bonjour,Je suis en train de programmer un démineur mais je ne sais pas comment faire pour afficher un tableau de '*' que le joueur verra et ou il entr
allegro => getch() pour souris [ par Djedie ]
j utilise allegro sous dev cpp, et je voudrai que mon programme attente le clic de la souris pour continuer.comme avec le getch() pour le clavier.en f
Clic et déplacement de la souris [ par maxinfos ]
Bonjour,je voudrais savoir comment faire pour faire cliquer ma souris automatiquement, tout comme je la fait déplacer avec la méthode "SetCursorPos(in
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|