Bah une List qui contiendra des Objets Rectangle...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Lis l = new ArrayList(). l.add(new Rectangle(...));
Bah une List qui contiendra des Objets Rectangle...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Lis l = new ArrayList(). l.add(new Rectangle(...));
Ouais
ben au faite je me suis mal exprimé :
Alors voila le souci :
1) Je crée une liste de pièce de domino :
2) Je distribue des dominos à chaque joueur( ce sera sa main)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 list pièces = new List(); /*je crée mes pièces de domino*/ int j; for (int i = 0; i < 7; i++) { j = i; while (j < 7) { int k=i*10+j; pieces.add(k); j++; } } /*fin de la liste*/
jusque la pas de souci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public static void bat() { //battage Collections.shuffle(pieces); } /*cette fonction sera dans la class joueur*/ void distribue(Joueur joueur, int nb) { //nb = 7, pour 7 pièces par joueur. for (int i = 0; i < nb; i++) { joueur.main.add(pieces.elementAt(0)); //getPiece(); } }
Maintenant je veux créer une liste de rectangle(dessin de domino)
j'ai crée une class Rectangle5 qui crée les dessin des différentes pièce de domino.
Code : Sélectionner tout - Visualiser dans une fenêtre à part HashMap rectangle= new HashMap();
3)affichage
Ais-je la bonne soluce ?
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 void paint(Graphics g) { /*ma liste de rectangle*/ int j; for (int i = 0; i < 7; i++) { j = i; while (j < 7) { int id=i*10+j; Rectangle5 rect=new Rectangle5(0,0,25,50,i,j) rectangle.put((int)id, rect); j++; } } /*localisation des pièces de domino*/ posx=30; posy=30; /*afficahge*/ for(i=0;i<main.size();i++) { int k=main.get(i); // la pièce "i" de la main du joueur Rectangle5 rec= rectangle.get(k); rec.setPosition(posx,posy); rect.dessiner(g); posx=posx+25; } }
Euh sinon tu mets une méthode draw(Graphics g) dans ta classe Domino qui permet de dessiner le domino sur des graphics et basta...
Hum, mais ne voulait-il pas que ce soit le tapis qui dessine l'ensemble plutot que les domino au depart precedement ?
Quelques part ca peut etre effectivement interessant de deleguer le rendu des domino a une/plusieurs autre(s) classe(s) si tu comptes, entre autre, laisser a l'utilisateur le choix de faire varier l'apparence des dominos mais pour ce genre de choses mieux aurait-il peut-etre fallu reflechir a/planifier l'architecture du programme avant de commencer a coder.
Note : a priori, ca devrait compiler juste en enlevant les annotation comme le dit Sinok.
bien suivi je voudrais que ce soit la class tapis qui fasse le rendu graph
Voila encore une fois mon problème du départ reste entier. Mon souci est de pourvoir des drag sur une collection. Quand je crée un domino un par un j'arrive à faire un drag. Mais quand ce crée une collection de domino oups ça marche plus
Et pourtant ça semble être bon et simple mais ça marche pas
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103 public class Prog extends Applet implements WindowListener,MouseMotionListener,MouseListener { Rectangle5 rect1,rect; Domino jeu= new Domino(); ArrayList l = new ArrayList(); boolean clicRect1; private static int x1,y1,n1; Piece p; Joueur joueur[]=new Joueur[4]; public void init() { joueur[0]= new Joueur(); jeu.ini(); //crée une liste de domino jeu.bat(); //**************************************** //distribue 7 dominos à chacun des joueurs //**************************************** n1=0; while (n1<4) { jeu.distribue(joueur[n1], 7); n1++; } /**************FIN DISTRIBUTION*************/ addMouseListener(this); addMouseMotionListener(this); clicRect1 = false; } public void paint(Graphics g) { int posx = 15; int posy = 30; int nb = (int)joueur[0].numPieces(); for (int v = 0; v < nb; v++) { Piece ledomino =(Piece)joueur[0].main.elementAt(v); int a=ledomino.geta(); int b=ledomino.getb(); rect1=new Rectangle5(posx,posy,25,50,a,b); l.add(rect1); rect1.dessiner(g); posx = posx+28; } } public void mouseClicked(MouseEvent e){ x1 = e.getX(); y1 = e.getY(); System.out.println(x1+" et "+y1); } public void mousePressed(MouseEvent e){ int x,y; x = e.getX(); y = e.getY(); for(int i=0;i<l.size();i++) rect= (Rectangle5)l.get(i); if (rect.estDans(x,y)) (clicRect1=true); } public void mouseDragged(MouseEvent e){ int x,y; x = e.getX(); y = e.getY(); if (clicRect1==true) { rect.setPosition(x,y); repaint(); } } public void mouseReleased(MouseEvent e){ if (clicRect1) clicRect1=false; } //Listener //WindowsAdapter public static void main(String[] args) { Prog applet = new Prog(); Frame frame = new Frame("Applet"); frame.addWindowListener(applet); frame.add("Center", applet); frame.setSize(350, 250); frame.show(); applet.init(); applet.start(); } }
J'ai fais que ma class Rectangle extends de JComponent puis j'ai modifié mon code :
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 { //**************************************** //distribue 7 dominos à chacun des joueurs //**************************************** n1=0; while (n1<4) { jeu.distribue(joueur[n1], 7); //joueur[n1].recoit(); n1++; } // rect.dessiner(g); int posx = 15; int posy = 30; int nb = (int)joueur[0].numPieces(); for (int v = 0; v < nb; v++) { Piece ledomino =(Piece)joueur[0].main.elementAt(v); int a=ledomino.geta(); int b=ledomino.getb(); rect1=new Rectangle5(posx,posy,25,50,a,b); l.add(rect1); add(rect1); posx = posx+28; } addMouseListener(this); addMouseMotionListener(this); clicRect1 = false; clicRect2 = false; } public void paint(Graphics g) { // rect.dessiner(g); for (int v = 0; v < l.size(); v++) { rect1=(Rectangle5)l.get(v); rect1.dessiner(g); } } }
ça marche mais je trouve pas le code propre
Pas de critque constructive sur ce bout de code ?
Bon! sinon quelqu'un aurait une idée sur la manière dont pourrait faire pour que mes dominos lors d'un déplacement avec un drag puissent aller quand dans une zone précise.
c.a.d lorsque le premier joueur pose son domino le second pourra déposer son domino au dessus ou dessous du domino précedent, ansi de suite
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager