Bonjours,
Je suis en train de programmer un jeu de chasse au trésor, et j'aurais aimé que dans ma fenétre je puisse afficher les cases de ma grille. Mais, je butte la dessus!
Quelqu'un pourrez t'il m'aider svp!
Bonjours,
Je suis en train de programmer un jeu de chasse au trésor, et j'aurais aimé que dans ma fenétre je puisse afficher les cases de ma grille. Mais, je butte la dessus!
Quelqu'un pourrez t'il m'aider svp!
Tu peux faire ta grille grille en utilisant un GridLayout(), si tu veux que la grille soit apparente tu rajoute une bordure visible.
exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 JFrame t = new JFrame(); JPanel pan = new JPanel (new GridLayout (3,3)); Border blackline = BorderFactory.createLineBorder(Color.black,1); for(int i = 0; i<9;i++){ JPanel ptest = new JPanel(); ptest.setBorder(blackline); pan.add(ptest); } pan.setBorder(blackline); t.add(pan); t.setVisible(true);
Merci, je teste sa et je regarde le résultat
Bonjour,
Tout dépend de l'approche que tu utilises pour le rendu graphique:
- Si les cases de ta grilles sont représentées par des composants (JLabel par exemple), tu peux utiliser un GridLayout avec un hgap et un vgap :- Si tu utilises l'approche Java2D par les Graphics, il faudra toi-même appeler drawLine, etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 panel.setLayout(new GridLayout(3, // nb de cases dans une ligne 3, // nb de cases dans une colonne 1, // épaisseur des traits horizontaux 1)); // épaisseur des traits verticaux panel.setBackground(Color.BLACK); // Couleur des traits
En faite, dans ma fenétre, j'ai une image de fond qui est chagé et je souhaiterai afficher une grille sur cette image de fond. Ma grille, elle, est un tableau de 2D. Je la dessine avec le drawLine qui dessine les ligne puis les colonnes. Le probléme c'est que cette grille ne se pace pas sur mon image mais a coté.
Que dois-je faire pour les superposer?
Nous montrer ton code par exemple.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
J'ai réussi a résoudre mon probléme mais si tu veux, je peux tout de même le montrer. Par contre, je souhaiterai rempli ma grille avec des images et l'une des meilleures solutions est le "DRAG AND DROP" mais je ne sais pas comment sa fonction. Je sais juste que c'est un copier coller de texte ou d'image.
Essaie de voir du cote des TransfertHandler, voir le didacticiel chez Sun.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Merci pour ton aide, je me penche la dessus
J'ai l'impression d'être depassé. Je ne comprend s pas trop bien le drag and drop. J'aimerais selectionner une image et à l'aide de ma souris, coller cette image partout ou passe ma souris.
Comment dois je proceder?
Je pense que là il n'y a pas 36 solutions :
- un mouseListener pour détecter le choix de l'image
et surtout :
- un MouseMotionListener qui écoute le composant sur lequel tu as dessiné la grille. Dans la méthode mouseDragged, tu identifies la case sur laquelle tu es (en fonction des coordonnées, MouseEvent.getPoint) et tu y associes l'image (ca ca dépend de ton appli, on peut pas deviner comment tu le fais)
- il y a aussi des tutoriels pour faire en sorte que l'image suive la souris, sur ce site.
J'ai suivit ton conseil et j'utilise un MouseListener et un MouseMotionListener. Voici mon code:
1ér fonction: TestFjframe.java
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173 import java.awt.*; import java.awt.event.*; import javax.swing.*; class carte extends carteEditeur implements ActionListener { JPanel panel; JMenuBar mbar; JButton b1; JButton b2; JButton b3; dessin d; Image i; //item it; carteEditeur ce; Container contentPane=getContentPane(); //protected Case[][] grille; public static final int DEFAULT_WIDTH=1000; public static final int DEFAULT_HEIGHT=700; //public static final int largeur=20; //public static final int longueur=20; public carte() { //panel.setLayout(new GridLayout(3, 3, 1, 1)); //panel.setBackground(Color.cyan); contentPane.setLayout(new FlowLayout()); //contentPane.add(panel); setTitle("Chasse au Trésor"); setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); setDefaultCloseOperation(carte.EXIT_ON_CLOSE); //insertion objets sur le fenétre //panel=new JPanel(); d=new dessin(DEFAULT_WIDTH, DEFAULT_HEIGHT); //panel.setSize(200,200); //panel.setBackground(Color.black); //contentPane.add(panel); contentPane.add(d); //g=new grille(); //contentPane.add(g); //Jusqu'ici, on a définit une Fenétre avec un panneau //Maintenant, on met la barre de menu mbar=new JMenuBar(); b1=new JButton("Menu Fond"); //JMenuItem m11 =new JMenuItem("Image Fond"); //m11.addActionListener(this); //m1.add(m11); b1.addActionListener(this); b3=new JButton("Creer Carte"); b3.addActionListener(this); /*JMenuItem m12 =new JMenuItem("Eau"); m12.addActionListener(this); m1.add(m12);*/ b2=new JButton("Niveau Suivant"); //JMenuItem m21 =new JMenuItem("Bleu"); //m21.addActionListener(this); //m2.add(mbar); b2.addActionListener(this); /*JMenuItem m22 =new JMenuItem("Vert"); m22.addActionListener(this); m2.add(m22);*/ mbar.add(b1); mbar.add(b2); mbar.add(b3); setJMenuBar(mbar); //grille=new Case[longueur][largeur]; /*for(int i=0; i<longueur; i++) { for(int j=0; j<largeur; j++) { grille[i][j]=new Case(); } }*/ } /*public void Afficher() { for(int i=0; i<longueur; i++) { for(int j=0; j<largeur; j++) { grille[i][j].Afficher(); } } }*/ public void actionPerformed(ActionEvent evt) { //if(evt.getSource() instanceof JMenuItem)//permet de vérifier si une référence d'objet est une instance de la classe JMenuItem //{ String ChoixOption=evt.getActionCommand(); if(ChoixOption.equals("Menu Fond")){ //dessin d=new dessin(200, 200); //this.getContentPane().add(d); //a=1; d.reload(); //repaint(); //panel.setBackground(Color.yellow); } else if(ChoixOption.equals("Niveau Suivant")) { //dessin d=new dessin(200, 200); //this.getContentPane().add(d); //panel.setBackground(Color.pink); } else if(ChoixOption.equals("Creer Carte")) { JFrame it=new item(); it.setVisible(true); } /*else if(ChoixOption.equals("Blue")) { mbar.setBackground(Color.blue); //m1.setBackground(Color.blue); m2.setBackground(Color.blue); } else if(ChoixOption.equals("Vert")) { mbar.setBackground(Color.green); //m1.setBackground(Color.green); m2.setBackground(Color.green); }*/ //} } } public class TestFjframe { public static void main(String[] args) { JFrame f=new carte(); f.setVisible(true); } }
2éme fonction: Case.java
3éme Fonction: dessin.java
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
104
105
106
107
108
109
110
111 import java.awt.*; public class Case extends Canvas { Image i; public static int TailleImage; protected boolean franchissable; protected boolean visible; protected String image; protected String combinaison; public Case() { franchissable=true; visible=false; System.out.println("1"); Toolkit tk = Toolkit.getDefaultToolkit(); i = tk.getImage("s.jpg"); //repaint(); TailleImage=i.getHeight(this); } //Permet de savoir si une case est franchissable public boolean isFranchissable() { return this.franchissable; } public void setFranchissable( boolean value) { if (this.franchissable!=value) { franchissable=value; } } // Permet de savoir si une case est visible public boolean isVisible() { return this.visible; } public void setVisible(boolean value) { if(this.visible!=value) { visible=value; } } //Récup l'image et lui donne une nouvelle valeur public String getImage() { return image; } public void setImage(String value) { if(this.image!=value) { image=value; } } //Récup et donne une nouvelle combinaison à la case public String getCombinaison() { return combinaison; } public void setCombinaison(String value) { if(this.combinaison!=value) { combinaison=value; } } public void Afficher() { if(isVisible()==true) { Toolkit tk = Toolkit.getDefaultToolkit(); i = tk.getImage("image"); repaint(); } } public void paint(Graphics g, int _x, int _y) { if(this.visible==true) { if(i!=null) { g.drawImage(i, _x, _y, null); } } } }
4éme Fonction: carteEditeur.java
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139 import java.awt.*; import javax.swing.JOptionPane; class dessin extends Canvas { Image i; String[] fonds= new String[]{"Sable","Eau","Terre","Herbe"}; //grille g; public static final int largeur=50; public static final int longueur=50; private static final Color couleurDesLignes = Color.black; private static final Color couleurFondDeGrille = Color.white; public static final int largeurCaseGraphique= 20; public dessin(int largeur, int hauteur) { this.setSize(largeur,hauteur); /*this.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent evt) { System.out.println( "Clicked at " + evt.getX() + " " + evt.getY() ); //paintCarte(evt.getX(), evt.getY()); } public void mousePressed(MouseEvent evt) { System.out.println( "Pressed at " + evt.getX() + " " + evt.getY() ); } public void mouseReleased(MouseEvent evt) { System.out.println( "Released at " + evt.getX() + " " + evt.getY() ); repaint(); } }); this.addMouseMotionListener( new MouseMotionAdapter() { public void mouseDragged( MouseEvent evt) { System.out.println( "Dragged to " + evt.getX() + " " + evt.getY() ); //paintCarte(evt.getX(), evt.getY()); } public void mouseMoved( MouseEvent evt) { System.out.println( "Moved to " + evt.getX() + " " + evt.getY() ); } });*/ Toolkit tk = Toolkit.getDefaultToolkit(); i = tk.getImage( "C:/Documents and Settings/Singarin/Mes documents/Mes images/Sable.jpg" ); repaint(); } public void reload() { /*if(a==1) { Toolkit tk = Toolkit.getDefaultToolkit(); System.out.println("Reload"); i = tk.getImage( "C:/Documents and Settings/Singarin/Mes documents/Mes images/exodia.gif" ); repaint(); }*/ String fond = (String)JOptionPane.showInputDialog(null,"Choississez un fond", "Fond",JOptionPane.QUESTION_MESSAGE, null, fonds, fonds[0]); if("Sable".equals(fond)) { Toolkit tk = Toolkit.getDefaultToolkit(); i = tk.getImage( "C:/Documents and Settings/Singarin/Mes documents/Mes images/sable.jpg" ); repaint(); } if("Eau".equals(fond)) { Toolkit tk = Toolkit.getDefaultToolkit(); i = tk.getImage( "C:/Documents and Settings/Singarin/Mes documents/Mes images/mer.jpg" ); repaint(); } if("Terre".equals(fond)) { Toolkit tk = Toolkit.getDefaultToolkit(); i = tk.getImage( "C:/Documents and Settings/Singarin/Mes documents/Mes images/desert.jpg" ); repaint(); } if("Herbe".equals(fond)) { Toolkit tk = Toolkit.getDefaultToolkit(); i = tk.getImage( "C:/Documents and Settings/Singarin/Mes documents/Mes images/herbe.gif" ); repaint(); } } public void update(Graphics g) { paint(g); } public void paint(Graphics gr) { Dimension s = getSize(); System.out.println( s.width + " " + s.height ); //g.setColor( Color.black ); //g.fillRect( 0, 0, s.width, s.height); //g.setColor( Color.red ); //g.drawString( "Bonjour...", 10, s.height-10); if (i!= null) { gr.drawImage( i, 0, 0, this); } //dessiner la grille gr.setColor(couleurFondDeGrille); //gr.fillRect(200, 200, longueur * largeurCaseGraphique, largeur * largeurCaseGraphique); gr.fillRect(0,0,0,0); gr.setColor(couleurDesLignes); for (int i = 0; i < longueur; i++) gr.drawLine(i*largeurCaseGraphique, 0, i*largeurCaseGraphique, longueur*largeurCaseGraphique); for (int i = 0; i < largeur; i++) gr.drawLine(0, i*largeurCaseGraphique, largeur*largeurCaseGraphique, i*largeurCaseGraphique); } }
5éme Fonction: item.java
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 import java.awt.Image; import java.awt.Toolkit; import java.awt.event.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionAdapter; import java.awt.event.MouseMotionListener; import javax.swing.*; class carteEditeur extends JFrame //implements MouseListener, MouseMotionListener { Image i; dessin d; Case c; //String[] items= new String[]{"arbre","Pont","Terre","Herbe"}; String image; public void editCarte() { this.addMouseListener( new MouseListener() { public void mouseClicked(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } }); this.addMouseMotionListener( new MouseMotionListener() { public void mouseDragged(MouseEvent arg0) { // TODO Auto-generated method stub System.out.println("1"); c=new Case(); } public void mouseMoved(MouseEvent arg0) { // TODO Auto-generated method stub } }); } }
6éme Fonction: grille.java
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 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class item extends JFrame implements ItemListener { Checkbox arbre; Checkbox sable; Checkbox pont; Checkbox serpent; carteEditeur ce; Container contentPane=getContentPane(); public item() { super("Choix Item"); setDefaultCloseOperation(item.EXIT_ON_CLOSE); setSize(250, 250); contentPane.setLayout(new FlowLayout()); arbre= new Checkbox("arbre", false); sable= new Checkbox("sable", false); pont= new Checkbox("pont", false); serpent= new Checkbox("serpent", false); System.out.println("1"); contentPane.add(arbre); contentPane.add(sable); contentPane.add(pont); contentPane.add(serpent); System.out.println("1"); arbre.addItemListener(this); sable.addItemListener(this); pont.addItemListener(this); serpent.addItemListener(this); System.out.println("1"); } public void itemStateChanged(ItemEvent evt) { String s = (String) (evt.getItem()); if(s!=null){ if(s == "arbre") { ce.editCarte(); } if(s == "sable") { System.out.println("1"); } if(s == "pont") { System.out.println("1"); } if(s == "serpent") { System.out.println("1"); } } else{ System.out.println("1"); } } }
Mon probléme est le suivant:
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 import java.awt.*; public class grille extends Canvas { protected Case[][] grille; public static final int largeur=20; public static final int longueur=20; private static final Color couleurDesLignes = Color.white; public static final int largeurCaseGraphique= 20; public grille() { grille=new Case[longueur][largeur]; setSize(longueur * largeurCaseGraphique, largeur * largeurCaseGraphique); } public void creergrille() { for(int i=0; i<longueur; i++) { for(int j=0; j<largeur; j++) { grille[i][j]=new Case(); } } } }
Dans ma fonction item, lorsque je clique sur un des composant, j'ai un msg d'erreur qui me dit: "java.lang.NullPointerException". J'ai trouvé la signification de ce message mais je ne sais pas pouquoi j'ai cette erreur!
Quelqu'un peut il m'aider?
En général, lorsqu'il y a une exception, ils disent dans quel fichier et à quelle ligne elle est apparue. Ca évite de devoir deviner.
Sinon, vu ton code, j'ai pas mal de remarques :
- il faut éviter de mélanger awt et swing. Remplace simplement tous les Canvas par des JPanel.
- Tu dis que tu dessines en Java2D, mais ce n'est pas vraiment ça :
- Soit tu dessines toute ta carte dans un seul composant (dans la méthode paintComponent). Dans ce cas, tu as une seule classe qui descend de JComponent et qui contient une matrice de Cases (mais ce ne sont pas des JComponent).Si tu veux utiliser le dragndrop, tu dois soit utiliser l'approche java2D à fond (1 seul composant), soit écouter toutes tes cases avec le même MouseListener/MouseMotionListener.
- Soit chaque case est un composant qui a une image (c'est ton cas). Dans ce cas, il te faut utiliser un Layout pour les placer (GridLayout). Cela ne t'empêche pas de dessiner une grille avec drawLine (il faut l'appeler dans paint après super.paint()) si tu n'aimes pas la méthode que je t'ai indiqué ci-dessus.
Merci pour ton aide, mes soucis se sont présque résolu
bonjour tout le monde,
je veux afficher en java une grille avec de taille de colonnes different par exemple les colonnes paire sont de meme taille et les impaires sont de meme taille
merci pour l'aide
Voici un ti jeu sur grille mais seulement sur console ^^
Je connais rien de plus. J'apprends et espere que je vais bientot creer des jeux lol
Testez le ^^
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner c=new Scanner(System.in); int pvmonstre = 50000, attaqueperso = 0, pvperso = 10000, attaquemonstre = 0; int pvmax = 10000, potion = 6000, megapotion = 10000, nbpotion = 5, prixpotion = 50, nbmegapotion = 2, prixmegapotion = 150, argents = 0; int nbmax = 0, nbachat = 0, prixtotal = 0; char reponsecombat = ' '; char reponse = ' '; int monstre1 = 1, monstre2 = 1, monstre3 = 1, monstre4 = 1; int combat = 0; int coffre1 = 1, coffre2 = 1, coffre3 = 1, coffre4 = 1; int tour1 = 1, tour2 = 1,tour3 = 1, tour4 = 1, tour5 = 1; int nbling = 15, nbcol = 12; char grille [][]; System.out.println("Hello World"); grille = new char [nbling][nbcol]; for (int i = 0; i < nbling; i++){ for (int j = 0; j < nbcol; j++){ grille[i][j] = '.'; } } grille[2][3] = 'j'; grille[1][3] = 'm'; grille[5][7] = 'm'; grille[12][3] = 'm'; grille[9][10] = 'm'; grille[14][0] = '$'; System.out.println("J = joueur | M = monstre | $ = shop\nvous pouvez vous deplacer\nz = haut | q = gauche | s = bas | d = droite"); for (int i = 0; i<nbling; i++){ for (int j = 0; j < nbcol; j++){ System.out.print(" | "+ grille[i][j]); }System.out.println(" | "); } //-------------------------------------------------------- while (true){ if (tour5 == 2){System.out.println("voulez-vous acheter des trucs ?"); reponsecombat = c.nextLine().charAt(0); if (reponsecombat == 'o'){ System.out.println("potion = p, mega-potion = m"); reponsecombat = c.nextLine().charAt(0); if(reponsecombat == 'p' && argents >= 50 && nbmax >= 0){ prixtotal = 50; System.out.println("vous avez "+argents+" pieces d'argents"); System.out.println("vous pouvez acheter "+(argents/prixpotion)+" potions"); System.out.println("entrez le nombre de potions que vous voulez acheter"); nbachat = c.nextInt(); nbmax = argents/prixpotion; if (nbachat >= nbmax){ nbachat = nbmax; nbpotion += nbachat; prixtotal *= nbachat; argents -= prixtotal; System.out.println("vous avez "+nbpotion+" potions | vous avez "+argents+" pieces d'argents");System.out.println("vous pouvez vous deplacer a nouveau ");} else if (nbachat <= nbmax){ nbmax -= nbachat; nbpotion += nbachat; prixtotal *= nbachat; argents -= prixtotal; System.out.println("vous avez "+nbpotion+" potions | vous avez "+argents+" pieces d'argents");System.out.println("vous pouvez vous deplacer a nouveau ");}} else if(reponsecombat == 'm' && argents >= 150 && nbmax >= 0){ prixtotal = 150; System.out.println("vous avez "+argents+" pieces d'argents"); System.out.println("vous pouvez acheter "+(argents/prixmegapotion)+" mega potions"); System.out.println("entrez le nombre de mega potions que vous voulez acheter"); nbachat = c.nextInt(); nbmax = argents/prixmegapotion; if (nbachat >= nbmax){ nbachat = nbmax; nbmegapotion += nbachat; prixtotal *= nbachat; argents -= prixtotal; System.out.println("vous avez "+nbmegapotion+" mega potions | vous avez "+argents+" pieces d'argents");System.out.println("vous pouvez vous deplacer a nouveau ");} else if (nbachat <= nbmax){ nbmax -= nbachat; nbmegapotion += nbachat; prixtotal *= nbachat; argents -= prixtotal; System.out.println("vous avez "+nbmegapotion+" mega potions | vous avez "+argents+" pieces d'argents");System.out.println("vous pouvez vous deplacer a nouveau ");}} }} tour5 --; if ( tour5 <= -1){grille[14][0] = '$';} if ( coffre1 == -1 && tour1 == -1){System.out.println("vous avez gagné 1000 pieces dargent :)");tour1 -= 1;argents += 1000;System.out.println("vous pouvez vous deplacer a nouveau ");} if ( coffre2 == -1 && tour2 == -1){System.out.println("vous avez gagné 1000 pieces dargent :)");tour2 -= 1;argents += 1000;System.out.println("vous pouvez vous deplacer a nouveau ");} if ( coffre3 == -1 && tour3 == -1){System.out.println("vous avez gagné 1000 pieces dargent :)");tour3 -= 1;argents += 1000;System.out.println("vous pouvez vous deplacer a nouveau ");} if ( coffre4 == -1 && tour4 == -1){System.out.println("vous avez gagné 1000 pieces dargent :)");tour4 -= 1;argents += 1000;System.out.println("vous pouvez vous deplacer a nouveau ");} if (tour5 == 1){c.nextLine();} reponse = c.nextLine().charAt(0); if (reponse == 'z'){ for (int i = 0; i < nbling; i++){ for (int j = 0; j < nbcol; j++){ if (grille[i][j] == 'j'){ if(i-1 >= 0 ){ char temp = grille[i][j]; grille[i][j] = '.'; grille[i-1][j] = temp; i-=1; if (grille[i][j] == grille[1][3]){ monstre1 -= 1; tour1 -= 1; if (monstre1 == 0 && grille[i][j] == grille[1][3]){ combat = +1;}} else if (grille[i][j] == grille[5][7]){ monstre2 -= 1; tour2 -= 1; if (monstre2 == 0 && grille[i][j] == grille[5][7]){ combat += 1;}} else if (grille[i][j] == grille[12][3]){ monstre3 -= 1; tour3 -= 1; if (monstre3 == 0 && grille[i][j] == grille[12][3]){ combat = +1;}} else if (grille[i][j] == grille[9][10]){ monstre4 -= 1; tour4 -= 1; if (monstre4 == 0 && grille[i][j] == grille[9][10]){ combat = +1;}} if (grille[i][j] == grille[2][4]){ coffre1 -= 1; if (coffre1 == 0 && grille[i][j] == grille[2][4]){ tour1 -= 1; coffre1 -=1;}} if (grille[i][j] == grille[4][8]){ coffre2 -= 1; if (coffre2 == 0 && grille[i][j] == grille[4][8]){ tour2 -= 1; coffre2 -= 1;}} if (grille[i][j] == grille[11][2]){ coffre3 -= 1; if (coffre3 == 0 && grille[i][j] == grille[11][2]){ tour3 -= 1; coffre3 -= 1;}} if (grille[i][j] == grille[7][10]){ coffre4 -= 1; if (coffre4 == 0 && grille[i][j] == grille[7][10]){ tour4 -= 1; coffre4 -= 1;}} if (grille[i][j] == grille[14][0]){ tour5 = 2;} } } } } for (int i = 0; i<nbling; i++){ for (int j = 0; j < nbcol; j++){ System.out.print(" | "+ grille[i][j]); }System.out.println(" | "); } } //-------------------------------------------------------- if (reponse == 's'){ for (int i = 0; i < nbling; i++){ for (int j = 0; j < nbcol; j++){ if (grille[i][j] == 'j'){ if(i+1 <= nbling-1){ char temp = grille[i][j]; grille[i][j] = '.'; grille[i+1][j] = temp; i += 1; if (grille[i][j] == grille[1][3]){ monstre1 -= 1; tour1 -= 1; if (monstre1 == 0 && grille[i][j] == grille[1][3]){ combat = +1;}} else if (grille[i][j] == grille[5][7]){ monstre2 -= 1; tour2 -= 1; if (monstre2 == 0 && grille[i][j] == grille[5][7]){ combat += 1;}} else if (grille[i][j] == grille[12][3]){ monstre3 -= 1; tour3 -= 1; if (monstre3 == 0 && grille[i][j] == grille[12][3]){ combat = +1;}} else if (grille[i][j] == grille[9][10]){ monstre4 -= 1; tour4 -= 1; if (monstre4 == 0 && grille[i][j] == grille[9][10]){ combat = +1;}} if (grille[i][j] == grille[2][4]){ coffre1 -= 1; if (coffre1 == 0 && grille[i][j] == grille[2][4]){ tour1 -= 1; coffre1 -=1;}} if (grille[i][j] == grille[4][8]){ coffre2 -= 1; if (coffre2 == 0 && grille[i][j] == grille[4][8]){ tour2 -= 1; coffre2 -= 1;}} if (grille[i][j] == grille[11][2]){ coffre3 -= 1; if (coffre3 == 0 && grille[i][j] == grille[11][2]){ tour3 -= 1; coffre3 -= 1;}} if (grille[i][j] == grille[7][10]){ coffre4 -= 1; if (coffre4 == 0 && grille[i][j] == grille[7][10]){ tour4 -= 1; coffre4 -= 1;}} if (grille[i][j] == grille[14][0]){ tour5 = 2;} } } } } for (int i = 0; i<nbling; i++){ for (int j = 0; j < nbcol; j++){ System.out.print(" | "+ grille[i][j]); }System.out.println(" | "); } } //------------------------------------------------------- if (reponse == 'q'){ for (int i = 0; i < nbling; i++){ for (int j = 0; j < nbcol; j++){ if (grille[i][j] == 'j'){ if(j-1 >= 0){ char temp = grille[i][j]; grille[i][j] = '.'; grille[i][j-1] = temp; j-=1; if (grille[i][j] == grille[1][3]){ monstre1 -= 1; tour1 -= 1; if (monstre1 == 0 && grille[i][j] == grille[1][3]){ combat = +1;}} else if (grille[i][j] == grille[5][7]){ monstre2 -= 1; tour2 -= 1; if (monstre2 == 0 && grille[i][j] == grille[5][7]){ combat += 1;}} else if (grille[i][j] == grille[12][3]){ monstre3 -= 1; tour3 -= 1; if (monstre3 == 0 && grille[i][j] == grille[12][3]){ combat = +1;}} else if (grille[i][j] == grille[9][10]){ monstre4 -= 1; tour4 -= 1; if (monstre4 == 0 && grille[i][j] == grille[9][10]){ combat = +1;}} if (grille[i][j] == grille[2][4]){ coffre1 -= 1; if (coffre1 == 0 && grille[i][j] == grille[2][4]){ tour1 -= 1; coffre1 -=1;}} if (grille[i][j] == grille[4][8]){ coffre2 -= 1; if (coffre2 == 0 && grille[i][j] == grille[4][8]){ tour2 -= 1; coffre2 -= 1;}} if (grille[i][j] == grille[11][2]){ coffre3 -= 1; if (coffre3 == 0 && grille[i][j] == grille[11][2]){ tour3 -= 1; coffre3 -= 1;}} if (grille[i][j] == grille[7][10]){ coffre4 -= 1; if (coffre4 == 0 && grille[i][j] == grille[7][10]){ tour4 -= 1; coffre4 -= 1;}} if (grille[i][j] == grille[14][0]){ tour5 = 2;} } } } } for (int i = 0; i<nbling; i++){ for (int j = 0; j < nbcol; j++){ System.out.print(" | "+ grille[i][j]); }System.out.println(" | "); } } //-------------------------------------------------------- if(reponse == 'd'){ for (int i = 0; i < nbling; i++){ for (int j = 0; j < nbcol; j++){ if (grille[i][j] == 'j'){ if(j+1 <= nbcol-1){ char temp = grille[i][j]; grille[i][j] = '.'; grille[i][j+1] = temp; j += 1; if (grille[i][j] == grille[1][3]){ monstre1 -= 1; tour1 -= 1; if (monstre1 == 0 && grille[i][j] == grille[1][3]){ combat = +1; coffre1 -= 1;}} else if (grille[i][j] == grille[5][7]){ monstre2 -= 1; tour2 -= 1; if (monstre2 == 0 && grille[i][j] == grille[5][7]){ combat += 1; coffre2 -= 1;}} else if (grille[i][j] == grille[12][3]){ monstre3 -= 1; tour3 -= 1; if (monstre3 == 0 && grille[i][j] == grille[12][3]){ combat = +1; coffre3 -= 1;}} else if (grille[i][j] == grille[9][10]){ monstre4 -= 1; tour4 -= 1; if (monstre4 == 0 && grille[i][j] == grille[9][10]){ combat = +1; coffre4 -= 1;}} if (grille[i][j] == grille[2][4]){ coffre1 -= 1; if (coffre1 == 0 && grille[i][j] == grille[2][4]){ tour1 -= 1; coffre1 -=1;}} if (grille[i][j] == grille[4][8]){ coffre2 -= 1; if (coffre2 == 0 && grille[i][j] == grille[4][8]){ tour2 -= 1; coffre2 -= 1;}} if (grille[i][j] == grille[11][2]){ coffre3 -= 1; if (coffre3 == 0 && grille[i][j] == grille[11][2]){ tour3 -= 1; coffre3 -= 1;}} if (grille[i][j] == grille[7][10]){ coffre4 -= 1; if (coffre4 == 0 && grille[i][j] == grille[7][10]){ tour4 -= 1; coffre4 -= 1;}} if (grille[i][j] == grille[14][0]){ tour5 = 2;} } } } } for (int i = 0; i<nbling; i++){ for (int j = 0; j < nbcol; j++){ System.out.print(" | "+ grille[i][j]); }System.out.println(" | "); } } if (monstre1 == 0 && tour1 == 0){grille[2][4] = 'c';} if (monstre2 == 0 && tour2 == 0){grille[4][8] = 'c';} if (monstre3 == 0 && tour3 == 0){grille[11][2] = 'c';} if (monstre4 == 0 && tour4 == 0){grille[7][10] = 'c';} if (combat >= 1){ System.out.println("le combat commence!"); while (pvmonstre >= 0 && pvperso >= 0){ System.out.println("appuyez sur O pour lancer une attaque ou autre"); System.out.println("---------------------------------------\npotion: "+nbpotion+" | megapotion: "+nbmegapotion+" | argent: "+argents+" |\n---------------------------------------"); System.out.println("pv perso "+pvperso+" | pv monstre "+pvmonstre+" |\n-----------------------------------"); reponsecombat = c.nextLine().charAt(0); if(reponsecombat == 'o'){ attaqueperso = 3500 + (int)(Math.random()* 1000); pvmonstre -= attaqueperso; System.out.println("attaque perso = "+attaqueperso+" pv monstre = "+pvmonstre);} else if (reponsecombat == 'p' && nbpotion >= 1){ nbpotion -= 1; if (pvperso <= 4000){ pvperso += 6000; System.out.println("potion engloutie + 6000 pv");} else if (pvperso >= 4001){ potion = 6000; pvperso += potion; pvperso -= pvmax; potion -= pvperso; pvperso = 10000; System.out.println("potion engloutie + "+potion+" pv");}} else if (reponsecombat == 'm' && nbmegapotion >= 1){ megapotion = 10000; pvperso += megapotion; nbmegapotion -= 1; if (pvperso >= 10000){ megapotion = 10000; pvperso -= pvmax; megapotion -= pvperso; pvperso = 10000; System.out.println("mega-potion engloutie + "+megapotion+" pv");}} try{ Thread.sleep(500); }catch (InterruptedException e){} if (pvmonstre >= 1 && pvperso >= 1 && combat >= 1){ attaquemonstre = 1500 + (int)(Math.random() * 500); pvperso -= attaquemonstre; System.out.println("attaque monstre "+attaquemonstre+" pv perso "+pvperso);} }combat -= 1; pvmonstre = 50000;System.out.println("vous pouvez vous deplacer a nouveau"); } } } }
Partager