grille en C# sur interface

grille en C# sur interface - C#/.NET managed - Programmation

Marsh Posté le 09-04-2007 à 16:29:45    


bonjour,  :hello:  
 
il faut que je fasse un grille en c# pour un puissance 4.
Simplement voilà je n'y arrive pas...  
donc j'aimerai savoir quel est la meilleur méthode pour faire ça : si c'est de fait un picturebox et d'écrire de dans (mais comment ??) ou sinon je ne sais pas ... je m'en remet à vous ...
 
Merci d'avance !!

Reply

Marsh Posté le 09-04-2007 à 16:29:45   

Reply

Marsh Posté le 09-04-2007 à 18:49:54    

Salut,
J'avais vaguement tenter de faire un truc comme ca en c++:
Tu fais une tableau a deux dimensions de pictureBox (un composant pour dessiner quoi) et dans chaque picturebox tu dessines un cercle de la couleur du pion tout simplement...


Message édité par breizhbugs le 09-04-2007 à 18:51:05
Reply

Marsh Posté le 09-04-2007 à 21:03:29    

okkk jte remerci jvé essayé ca et si je ny arrive pas et bien ... je refait signe !!

Reply

Marsh Posté le 09-04-2007 à 21:21:29    

heu en fai un probleme se pose ... est-ce qui faut faire su linterface plein de pictureBox ou dans le programe les crées?
Si c'est dans le programme ... tu aurais une tite idée ... ??? au cas ou ....:p

Reply

Marsh Posté le 10-04-2007 à 11:23:45    

Il faut les creer dynamiquement par programmation, c'est beaucoup moins pénible! Vois la doc du contructeur pour savoir comment les initialiser, etc...
Sinon, moi c'était pas des pictureBox, c'etait des CStatic (en MFC donc) dans  lequel je chargeais un des trois fichiers bmp (zone vide par défaut, pion jaune ou pion rouge). Au dessus de la zone de jeu, j'avais fais une rangée de bouton, chacun correspondant a une colonne, un clic sur un bouton m'indiquait la bonne colonne dans lequel insérer le pion...


Message édité par breizhbugs le 10-04-2007 à 11:28:04
Reply

Marsh Posté le 10-04-2007 à 15:58:42    

Un seul contrôle si tu veux que ce soit performant.
Et pas une picture box : un contrôle custom.

Reply

Marsh Posté le 10-04-2007 à 16:19:42    

ou alors tu fais plein de labels de taille fixe, associés chacun à un imagelist pour le background image, et du sélectionne dans l'imagelist l'index qui correspond à "vide, rouge ou jaune" [:magicbuzz]

Message cité 1 fois
Message édité par MagicBuzz le 10-04-2007 à 16:20:36
Reply

Marsh Posté le 10-04-2007 à 22:25:26    

MagicBuzz a écrit :

ou alors tu fais plein de labels de taille fixe, associés chacun à un imagelist pour le background image, et du sélectionne dans l'imagelist l'index qui correspond à "vide, rouge ou jaune" [:magicbuzz]

Ouais, mais si tu veux redimensionner ?
avec un controle perso c'est 3 images, un peu de GDI et c'est parti.
et si t'as du temps en rab, tu peux faire les animations après ;)
 
qq samples vite faite
http://www.codeproject.com/csharp/wordbuildinggame.asp
http://www.codeproject.com/csharp/reversi.asp

Reply

Marsh Posté le 11-04-2007 à 09:42:12    

[3615 mylife]
le [:magicbuzz] (c'est moi qui l'ai déssiné) était à l'orignine un smiley à l'éffigie de ma petite rate aujourd'hui décédée que j'avais collée sur mon site web avec une caméra et windows media serveur.
joce à l'époque aux début de blabla avait renomé ce smiley en "foudtag" (je te laisse deviner le sens) et le collait partout lorsqu'il disait une connerie. depuis, bah quand j'écrit une connerie, je l'utilise aussi...
[/3615 mylife]
d'où le fait que lorsque je dis un truc débile suivit de ce smiley, faut pas prendre à la lettre ce que j'ai écrit ;)
 
pour moi, le mieux consiste à utiliser un contrôle (picturebox par exemple) et surcharger la méthode "paint" afin de lui faire dessinner la grille et les éléments du jeu. ainsi, il sera facile de redimensionner le truc, ou même de passer à un moteur DX, puisque l'implémentation reste la même :)
après, on peut utiliser un usercontrol comme tu le préconises en effet. le mieux étant de faire un dérivé de usercontrol, afin de pouvoir le réutiliser le cas échéant (et embarquer dans le contrôle les valeurs de la grille, ce qui permettra d'alléger la méthode paint)


Message édité par MagicBuzz le 11-04-2007 à 09:44:01
Reply

Marsh Posté le 12-04-2007 à 21:47:28    

je vou remerci pour toute vos réponse ... sauf kil ya un petit soucis en fait il nous demande de faire cela avec les coordonnées .. donc g réussi a faire la grille ... mai maintement je ne sait pas faire correspondre cette grille avec un tableau a 2 dimensions, c'est a dire que si je clic sur une case de la grille cad que ca me mette un jeton dans la case correspondante de mon tableau et ensuite en faire l'affichage. si vous en avez un quelconque idée ca serai cool de m'en faire part ... car je suis completement a la ramasse !!! Merci bcp bcp bcp bcp !!

Reply

Marsh Posté le 12-04-2007 à 21:47:28   

Reply

Marsh Posté le 13-04-2007 à 18:13:26    

dans le MouseEventArgs tu récupère les coordonnées X et Y de la souris par rapport au contrôle. Il est donc facile, en te basant sur la taille du repère que tu as utilisé pour dessiner ta grille de retouver dans quelle case on a cliqué...

Reply

Marsh Posté le 13-04-2007 à 21:54:02    

MagicBuzz a écrit :

dans le MouseEventArgs tu récupère les coordonnées X et Y de la souris par rapport au contrôle. Il est donc facile, en te basant sur la taille du repère que tu as utilisé pour dessiner ta grille de retouver dans quelle case on a cliqué...


 
récupéré les coordonnée de la souris ca je lai deja fait mai par rapport au controle  ca ve dire koi ?? bon ma grille je lai tracé avec 2 boucles tantQue non imbriqué !!! donc je ne voi pas commen on se peu se basé sur la taille du repere !!!  

Reply

Marsh Posté le 16-04-2007 à 01:10:44    

polonkman a écrit :

récupéré les coordonnée de la souris ca je lai deja fait mai par rapport au controle  ca ve dire koi ??

Bein les coordonnées de la souris elles peuvent être pas rapport à plein de choses.
Par rapport à l'écran, par rapport à l'appli ou par rapport au contrôle.

polonkman a écrit :

bon ma grille je lai tracé avec 2 boucles tantQue non imbriqué !!! donc je ne voi pas commen on se peu se basé sur la taille du repere !!!

Bein si tu connais la largeur et la hauteur d'une case tu peux déduire de la coordonnée du click dans ton contrôle la coordonnées correspondante dans ton tableau.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed