Je m'en suis sorti tout seul finalement pour ce point
Désolé de vous avoir dérangé !
Je m'en suis sorti tout seul finalement pour ce point
Désolé de vous avoir dérangé !
Okay je reviens à nouveau vers vous pour un petit soucis :
Le code qui suit ne fait que m'afficher l'écran mais les clics sur les boutons ne font rien du tout ...
Par ailleurs le logcat ne m'affiche aucune erreur.
je pense donc que mes fonctions firstcard et seconedcard ne sont pas codé correctement mais je ne vois pas pourquoi.
J'ai mis pas mal de commentaire pour que ce soit facile à suivre.
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
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521 package com.aviy.memory; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Timer; import java.util.TimerTask; import com.aviy.memory.Jeu1.UpdateCardsHandler; import android.os.Handler; import android.app.Activity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.Toast; public class Jeu extends Activity{ public int largeur; public int longueur; int u; int p; private Card firstCard; private Card seconedCard; private Card carte1; private Card carte2; private Card carte3; private Card carte4; private Card carte5; private Card carte6; private Card carte7; private Card carte8; private Card carte9; private Card carte10; private Card carte11; private Card carte12; private Card carte13; private Card carte14; private Card carte15; private Card carte16; private Card carte17; private Card carte18; private Card carte19; private Card carte20; private Card carte21; private Card carte22; private Card carte23; private Card carte24; private Card carte25; private Card carte26; private Card carte27; private Card carte28; private Card carte29; private Card carte30; private Card carte31; private Card carte32; private Card carte33; private int backImage; private List<Card> tableaudepart; private List<Card> tableaufinal; private List<Button> boutton; Button button1; Button button2; Button button3; Button button4; Button button5; Button button6; Button button7; Button button8; Button button9; Button button10; Button button11; Button button12; Button button13; Button button14; Button button15; Button button16; private UpdateCardsHandler handler; private static Object lock = new Object(); //debut menu public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater =getMenuInflater(); inflater.inflate(R.menu.monmenu, menu); return true; } public boolean onMenuItemSelected(int featureId,MenuItem item){ switch (item.getItemId()){ case R.id.Regles: Toast.makeText(this,"Sélectionnez un niveau de difficulté",Toast.LENGTH_SHORT).show(); return true; case R.id.Quitter: finish(); return true; case R.id.Auteur: Toast.makeText(this,"EcoCO2",Toast.LENGTH_SHORT).show(); } return super.onMenuItemSelected(featureId, item); } //fin menu public void creationcarte(Button button,int IDpaire, int y, int x, int image){ //on crée les cartes carte1=new Card(button,x,y,IDpaire=1 ,image = R.drawable.card1); carte2=new Card(button,x,y,IDpaire=1 ,image = R.drawable.card2); carte3=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card3); carte4=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card4); carte5=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card5); carte6=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card6); carte7=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card7); carte8=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card8); carte9=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card9); carte10=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card10); carte11=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card11); carte12=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card12); carte13=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card13); carte14=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card14); carte15=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card15); carte16=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card16); carte18=new Card(button,x,y,IDpaire=1 ,image = R.drawable.card18); carte19=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card19); carte20=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card20); carte21=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card21); carte22=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card22); carte23=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card29); carte24=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card24); carte25=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card25); carte26=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card26); carte27=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card27); carte28=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card28); carte29=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card29); carte30=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card30); carte31=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card31); carte32=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card32); carte33=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card33); //tableau pour les ranger dans l'ordre tableaudepart = new ArrayList<Card>(); tableaudepart.add(carte1); tableaudepart.add(carte2); tableaudepart.add(carte3); tableaudepart.add(carte4); tableaudepart.add(carte5); tableaudepart.add(carte6); tableaudepart.add(carte7); tableaudepart.add(carte8); tableaudepart.add(carte9); tableaudepart.add(carte10); tableaudepart.add(carte11); tableaudepart.add(carte12); tableaudepart.add(carte13); tableaudepart.add(carte14); tableaudepart.add(carte15); tableaudepart.add(carte16); tableaudepart.add(carte17); tableaudepart.add(carte18); tableaudepart.add(carte19); tableaudepart.add(carte20); tableaudepart.add(carte21); tableaudepart.add(carte22); tableaudepart.add(carte23); tableaudepart.add(carte24); tableaudepart.add(carte25); tableaudepart.add(carte26); tableaudepart.add(carte27); tableaudepart.add(carte28); tableaudepart.add(carte29); tableaudepart.add(carte30); tableaudepart.add(carte31); tableaudepart.add(carte32); tableaudepart.add(carte33); } public void placement(){ //on choisit une place aléatoire dans le tableau pour chaque carte en mélangeant le premier tableau setContentView(R.layout.jeux1); for (int i=33; i>0; i--){ int a =1; int b=i; int random = (int)(Math.random() * (b-a)); tableaufinal.add(tableaudepart.get(random)); tableaudepart.remove(random); } } public void booton(){ //tableau de bouton pour faire le lien avec celui des cartes boutton = new ArrayList<Button>(); boutton.add(button1); boutton.add(button2); boutton.add(button3); boutton.add(button4); boutton.add(button5); boutton.add(button6); boutton.add(button7); boutton.add(button8); boutton.add(button9); boutton.add(button10); boutton.add(button11); boutton.add(button12); boutton.add(button13); boutton.add(button14); boutton.add(button15); boutton.add(button16); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.jeux1); } public void turn(){ //premier clic on recupere l'image de la carte et l'idpaire View.OnClickListener firstCard ; firstCard = new View.OnClickListener() { @Override public void onClick(View v) { if (button1.getId()==((Button)v).getId()) { Card t = tableaufinal.get(1); u = t.IDpaire; backImage = t.image; button1.setBackgroundColor(backImage); } else if (button2.getId()==((Button)v).getId()) { Card t = tableaufinal.get(2); u = t.IDpaire; backImage = t.image; button2.setBackgroundColor(backImage); } else if (button3.getId()==((Button)v).getId()) { Card t = tableaufinal.get(3); u = t.IDpaire; backImage = t.image; button3.setBackgroundColor(backImage); } else if (button4.getId()==((Button)v).getId()) { Card t = tableaufinal.get(4); u = t.IDpaire; backImage = t.image; button4.setBackgroundColor(backImage); } else if (button5.getId()==((Button)v).getId()) { Card t = tableaufinal.get(5); u = t.IDpaire; backImage = t.image; button5.setBackgroundColor(backImage); } else if (button6.getId()==((Button)v).getId()) { Card t = tableaufinal.get(6); u = t.IDpaire; backImage = t.image; button6.setBackgroundColor(backImage); } else if (button7.getId()==((Button)v).getId()) { Card t = tableaufinal.get(7); u = t.IDpaire; backImage = t.image; button7.setBackgroundColor(backImage); } else if (button8.getId()==((Button)v).getId()) { Card t = tableaufinal.get(8); u = t.IDpaire; backImage = t.image; button8.setBackgroundColor(backImage); } else if (button9.getId()==((Button)v).getId()) { Card t = tableaufinal.get(9); u = t.IDpaire; backImage = t.image; button9.setBackgroundColor(backImage); } else if (button10.getId()==((Button)v).getId()) { Card t = tableaufinal.get(10); u = t.IDpaire; backImage = t.image; button10.setBackgroundColor(backImage); } else if (button11.getId()==((Button)v).getId()) { Card t = tableaufinal.get(11); u = t.IDpaire; backImage = t.image; button11.setBackgroundColor(backImage); } else if (button12.getId()==((Button)v).getId()) { Card t = tableaufinal.get(12); u = t.IDpaire; backImage = t.image; button12.setBackgroundColor(backImage); } else if (button13.getId()==((Button)v).getId()) { Card t = tableaufinal.get(13); u = t.IDpaire; backImage = t.image; button13.setBackgroundColor(backImage); } else if (button14.getId()==((Button)v).getId()) { Card t = tableaufinal.get(14); u = t.IDpaire; backImage = t.image; button14.setBackgroundColor(backImage); } else if (button15.getId()==((Button)v).getId()) { Card t = tableaufinal.get(15); u = t.IDpaire; backImage = t.image; button15.setBackgroundColor(backImage); } else if (button16.getId()==((Button)v).getId()) { Card t = tableaufinal.get(16); u = t.IDpaire; backImage = t.image; button16.setBackgroundColor(backImage); } //deuxieme clic on recupere l'image de la carte et l'idpaire View.OnClickListener seconedCard ; seconedCard = new View.OnClickListener() { @Override public void onClick(View v) { if (button1.getId()==((Button)v).getId()) { Card t = tableaufinal.get(1); p = t.IDpaire; backImage = t.image; button1.setBackgroundColor(backImage); } else if (button2.getId()==((Button)v).getId()) { Card t = tableaufinal.get(2); p = t.IDpaire; backImage = t.image; button2.setBackgroundColor(backImage); } else if (button3.getId()==((Button)v).getId()) { Card t = tableaufinal.get(3); p = t.IDpaire; backImage = t.image; button3.setBackgroundColor(backImage); } else if (button4.getId()==((Button)v).getId()) { Card t = tableaufinal.get(4); p = t.IDpaire; backImage = t.image; button4.setBackgroundColor(backImage); } else if (button5.getId()==((Button)v).getId()) { Card t = tableaufinal.get(5); p = t.IDpaire; backImage = t.image; button5.setBackgroundColor(backImage); } else if (button6.getId()==((Button)v).getId()) { Card t = tableaufinal.get(6); p = t.IDpaire; backImage = t.image; button6.setBackgroundColor(backImage); } else if (button7.getId()==((Button)v).getId()) { Card t = tableaufinal.get(7); p = t.IDpaire; backImage = t.image; button7.setBackgroundColor(backImage); } else if (button8.getId()==((Button)v).getId()) { Card t = tableaufinal.get(8); p = t.IDpaire; backImage = t.image; button8.setBackgroundColor(backImage); } else if (button9.getId()==((Button)v).getId()) { Card t = tableaufinal.get(9); p = t.IDpaire; backImage = t.image; button9.setBackgroundColor(backImage); } else if (button10.getId()==((Button)v).getId()) { Card t = tableaufinal.get(10); p = t.IDpaire; backImage = t.image; button10.setBackgroundColor(backImage); } else if (button11.getId()==((Button)v).getId()) { Card t = tableaufinal.get(11); p = t.IDpaire; backImage = t.image; button11.setBackgroundColor(backImage); } else if (button12.getId()==((Button)v).getId()) { Card t = tableaufinal.get(12); p = t.IDpaire; backImage = t.image; button12.setBackgroundColor(backImage); } else if (button13.getId()==((Button)v).getId()) { Card t = tableaufinal.get(13); p = t.IDpaire; backImage = t.image; button13.setBackgroundColor(backImage); } else if (button14.getId()==((Button)v).getId()) { Card t = tableaufinal.get(14); p = t.IDpaire; backImage = t.image; button14.setBackgroundColor(backImage); } else if (button15.getId()==((Button)v).getId()) { Card t = tableaufinal.get(15); p = t.IDpaire; backImage = t.image; button15.setBackgroundColor(backImage); } else if (button16.getId()==((Button)v).getId()) { Card t = tableaufinal.get(16); p = t.IDpaire; backImage = t.image; button16.setBackgroundColor(backImage); } System.out.println("u = "+u+" p = "+p); }; }; } }; }; public void chek(){ turn(); //timer TimerTask tt = new TimerTask() { @Override public void run() { try{ synchronized (lock) { handler.sendEmptyMessage(0); } } catch (Exception e) { Log.e("E1", e.getMessage()); } } }; Timer t = new Timer(false); t.schedule(tt, 1300); //on verifie les idpaires if(p == u){ //on met les deux invisibles firstCard.button.setVisibility(View.INVISIBLE); seconedCard.button.setVisibility(View.INVISIBLE); } else { //sinon on remet l'image de fond seconedCard.button.setBackgroundColor(backImage); firstCard.button.setBackgroundColor(backImage); } } }
Merci d'avance (je sais je lâche pas l'affaire avec ce truc, mais bon je suis forcé de le finir et ça commence à devenir pressant, donc j'y suis a plein temps)
J'ai un peu du mal à saisir ton concept de bouton lol.
Tes boutons, ils sont affiché sur ton layout?
Et t'as vérifié que tu rentrai bien dans le onClick?
J'ai peut être une idée, mais peut être que je me trompe mais quand tu fais:
Je me dis que tu rend ta view cliquable, au lieu de rendre seulement tes boutons cliquables...
Code : Sélectionner tout - Visualiser dans une fenêtre à part View.OnClickListener firstCard ;
PS: T'as raison de pas lâcher l'affaire, c'est toujours mieux de finir totalement une application =)
Oui j'ai mes boutons sur mon layout.
Je ne sais pas si je rentre dans le OnClik, mais les points d’arrêts ou le debug ne m'a donné aucune info supplémentaires ...
Ce qui est sur c'est qu'il ne détecte pas que je clique sur le bouton. Alors que je pense avoir le code pour.
Pour rendre seulement le bouton cliquable que dois je faire ? Et de plus cela ne vas pas en me limiter à un seul bouton ? Alors que normalement tous les boutons devraient être en attente d'un clic ...
Bonjour,
Quand as tu défini que tes bouton était clickable dans ton code et avec quel listener . Car de ce que je vois il n'y a rien ?.
Juste les deux listener first and second, mais à aucun moment tes boutons sont associé à ces deux listener ainsi que ces listener ne sont associé à aucune vue ?
Normalement tu devrais avoir quelque part un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 View.OnClickListener firstCard ; firstCard = new View.OnClickListener() { @Override public void onClick(View v) {
Enfin je suis un peu perdu dans ton code . Pourquoi avoir créer deux listener au lieu d'un seul ( par exemple utiliser celui de base de ton activity).
Code : Sélectionner tout - Visualiser dans une fenêtre à part button1.setOnClickListener(firstcard);// ou second card d'ailleurs ce qui t'imposerait d'avoir ces listener comme menbre de ta classe.
Responsable Android de Developpez.com (Twitter et Facebook)
Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.
J'ai crée deux listener afin de pouvoir sélectionner une première carte puis une seconde, chacune ayant des paramètres.
Si je comprend ce que tu as dis il faudrait faire qq chose comme cela :
mais auquel cas, firstCard est une erreur.
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 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.jeux1); } public void turn(){ //premier clic on recupere l'image de la carte et l'idpaire View.OnClickListener firstCard ; firstCard = new View.OnClickListener() { @Override public void onClick(View v) { if (button1.setOnClickListener()==((Button)v).getId()) { Card t = tableaufinal.get(1); u = t.IDpaire; backImage = t.image; button1.setBackgroundColor(backImage); }
C'est pas ce que j'ai voulais dire , en fait il faut que tu initialises le listener des boutons sur ta variable firstcard ou secondcard.
Car comme cela tes variables firstcard et secondcard ne sont associé à aucune UI, donc elle ne seront jamais utilisé .
Plus un truc du genre
Par contre tu ne pourras pas associé deux listener à la même UI, donc soit ton bouton appartient à firstcard soit il appartient à second card, mais il ne peut en aucun cas appartenir au deux .
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 public void turn(){ //premier clic on recupere l'image de la carte et l'idpaire View.OnClickListener firstCard ; firstCard = new View.OnClickListener() { @Override public void onClick(View v) { if (button1.getId()==((Button)v).getId()) { Card t = tableaufinal.get(1); u = t.IDpaire; backImage = t.image; button1.setBackgroundColor(backImage); } } }; button1.setOnClickListener(firstcard); button2.setOnClickListener(firstcard); button3.setOnClickListener(firstcard);
Edit : Vraiment si tu as un peu de temps tu devrais revoir toutes cette procédure , car elle n'est vraiment pas propre. (soit les listener deviennent membres de ton acitivity , soit tu centralises tout dans celle de base de l'activity ).
Responsable Android de Developpez.com (Twitter et Facebook)
Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.
Dans ce cas je suis eu, le but étant que l'utilisateur puisse sélectionner deux cartes et qu'ensuite je fasse mes magouilles pour savoir si l'IDpaire correspond.
Avec ta méthode je ne peux, si j'ai bien compris (et ce serait une prouesse lol), m'occuper que de la première carte sélectionné ?
Ce que je n'arrive pas à comprendre c'est comment tu peux associer un bouton pour deux cartes , car c'est bel et bien ce que tu es en train de faire non ?
Attends j'avais pas fais gaffe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part private Card firstCard; // dans les membres de ton activityEuh elles ont le même nom ? , si j'image bien tu voulais avoir un listener sur ta card ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part View.OnClickListener firstCard ; // dans la procédure turn
De plus tu as une procédure creationcard qui construis 32 card avec le même bouton ? Est ce normal ? Cette procédure tu l'appeles ou d'ailleurs ?
Juste un conseil :
Essaye de reposer ton algorithme sur papier et voie les interactions entres tes class et évènements. Cela te permettra d'avoir une vue d'ensemble de ton programme .
Responsable Android de Developpez.com (Twitter et Facebook)
Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.
Hum, moi j'aurai dis que ma classe implément setOnClickListener et mis chaque bouton qui s'écoutent, et une seule fonction qui récupère et qui traite selon le cas:
Et du coup implémentation de la fonciton onClick
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 button1.setOnClickListener(this); button2.setOnClickListener(this);
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 public void onClick (View monBouton) { if( monBouton == bouton1) { // code } else { if (monBouton == bouton2) { // code } } }
Bon cette solution parait longue à coder mais à mon avis ca serai efficace
Feanorin : En fait non c'est l'inverse, j'associe une IDpaire pour deux boutons.
Je vais suivre ton conseil et remettre tout cela au clair
Malgache : Ta classe setOnClickListener tu la mettrais ou ? dans le OnCreate ou pas du tout ?
Si tu utilise bien Eclipse, au niveau de la déclaration de ta classe tu rajoute l'implement
Et ca te provoquera des erreurs, tu devrai avoir OnClickListener de souligné en rouge si t'as pas encore fait l'import de OnClickListener, du coup tu te met dessus et tu fais l'import, puis après tu aura Jeu qui sera souligné en rouge, et tu met dessus et tu choisi add implement methods, et ca te mettra automatiquement la fonction (en dehors du onCreate, c'est une fonction à part) et t'as plus qu'à coder
Code : Sélectionner tout - Visualiser dans une fenêtre à part public class Jeu extends Activity implements OnClickListener
Donc je fais quelque chose comme cela ? :
Sachant que cela ne change rien je ne pense pas avoir fait ce qu'il fallait.
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
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546 package com.aviy.memory; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Timer; import java.util.TimerTask; import com.aviy.memory.Jeu1.UpdateCardsHandler; import android.os.Handler; import android.app.Activity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class Jeu extends Activity implements OnClickListener{ public int largeur; public int longueur; int u; int p; private Card firstCard; private Card seconedCard; private Card carte1; private Card carte2; private Card carte3; private Card carte4; private Card carte5; private Card carte6; private Card carte7; private Card carte8; private Card carte9; private Card carte10; private Card carte11; private Card carte12; private Card carte13; private Card carte14; private Card carte15; private Card carte16; private Card carte17; private Card carte18; private Card carte19; private Card carte20; private Card carte21; private Card carte22; private Card carte23; private Card carte24; private Card carte25; private Card carte26; private Card carte27; private Card carte28; private Card carte29; private Card carte30; private Card carte31; private Card carte32; private Card carte33; private int backImage; private List<Card> tableaudepart; private List<Card> tableaufinal; private List<Button> boutton; Button button1; Button button2; Button button3; Button button4; Button button5; Button button6; Button button7; Button button8; Button button9; Button button10; Button button11; Button button12; Button button13; Button button14; Button button15; Button button16; private UpdateCardsHandler handler; private static Object lock = new Object(); //debut menu public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater =getMenuInflater(); inflater.inflate(R.menu.monmenu, menu); return true; } public boolean onMenuItemSelected(int featureId,MenuItem item){ switch (item.getItemId()){ case R.id.Regles: Toast.makeText(this,"Sélectionnez un niveau de difficulté",Toast.LENGTH_SHORT).show(); return true; case R.id.Quitter: finish(); return true; case R.id.Auteur: Toast.makeText(this,"EcoCO2",Toast.LENGTH_SHORT).show(); } return super.onMenuItemSelected(featureId, item); } //fin menu public void creationcarte(Button button,int IDpaire, int y, int x, int image){ //on crée les cartes carte1=new Card(button,x,y,IDpaire=1 ,image = R.drawable.card1); carte2=new Card(button,x,y,IDpaire=1 ,image = R.drawable.card2); carte3=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card3); carte4=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card4); carte5=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card5); carte6=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card6); carte7=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card7); carte8=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card8); carte9=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card9); carte10=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card10); carte11=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card11); carte12=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card12); carte13=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card13); carte14=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card14); carte15=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card15); carte16=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card16); carte18=new Card(button,x,y,IDpaire=1 ,image = R.drawable.card18); carte19=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card19); carte20=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card20); carte21=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card21); carte22=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card22); carte23=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card29); carte24=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card24); carte25=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card25); carte26=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card26); carte27=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card27); carte28=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card28); carte29=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card29); carte30=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card30); carte31=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card31); carte32=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card32); carte33=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card33); //tableau pour les ranger dans l'ordre tableaudepart = new ArrayList<Card>(); tableaudepart.add(carte1); tableaudepart.add(carte2); tableaudepart.add(carte3); tableaudepart.add(carte4); tableaudepart.add(carte5); tableaudepart.add(carte6); tableaudepart.add(carte7); tableaudepart.add(carte8); tableaudepart.add(carte9); tableaudepart.add(carte10); tableaudepart.add(carte11); tableaudepart.add(carte12); tableaudepart.add(carte13); tableaudepart.add(carte14); tableaudepart.add(carte15); tableaudepart.add(carte16); tableaudepart.add(carte17); tableaudepart.add(carte18); tableaudepart.add(carte19); tableaudepart.add(carte20); tableaudepart.add(carte21); tableaudepart.add(carte22); tableaudepart.add(carte23); tableaudepart.add(carte24); tableaudepart.add(carte25); tableaudepart.add(carte26); tableaudepart.add(carte27); tableaudepart.add(carte28); tableaudepart.add(carte29); tableaudepart.add(carte30); tableaudepart.add(carte31); tableaudepart.add(carte32); tableaudepart.add(carte33); } public void placement(){ //on choisit une place aléatoire dans le tableau pour chaque carte en mélangeant le premier tableau setContentView(R.layout.jeux1); for (int i=33; i>0; i--){ int a =1; int b=i; int random = (int)(Math.random() * (b-a)); tableaufinal.add(tableaudepart.get(random)); tableaudepart.remove(random); } } public void booton(){ //tableau de bouton pour faire le lien avec celui des cartes boutton = new ArrayList<Button>(); boutton.add(button1); boutton.add(button2); boutton.add(button3); boutton.add(button4); boutton.add(button5); boutton.add(button6); boutton.add(button7); boutton.add(button8); boutton.add(button9); boutton.add(button10); boutton.add(button11); boutton.add(button12); boutton.add(button13); boutton.add(button14); boutton.add(button15); boutton.add(button16); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.jeux1); } public void turn(){ placement(); booton(); //premier clic on recupere l'image de la carte et l'idpaire final View.OnClickListener firstCard ; firstCard = new View.OnClickListener() { @Override public void onClick(View v) { if (v == button1) { Card t = tableaufinal.get(1); u = t.IDpaire; backImage = t.image; button1.setBackgroundColor(backImage); } else if (v == button2) { Card t = tableaufinal.get(2); u = t.IDpaire; backImage = t.image; button2.setBackgroundColor(backImage); } else if (v == button3) { Card t = tableaufinal.get(3); u = t.IDpaire; backImage = t.image; button3.setBackgroundColor(backImage); } else if (v == button4) { Card t = tableaufinal.get(4); u = t.IDpaire; backImage = t.image; button4.setBackgroundColor(backImage); } else if (button5.getId()==((Button)v).getId()) { Card t = tableaufinal.get(5); u = t.IDpaire; backImage = t.image; button5.setBackgroundColor(backImage); } else if (button6.getId()==((Button)v).getId()) { Card t = tableaufinal.get(6); u = t.IDpaire; backImage = t.image; button6.setBackgroundColor(backImage); } else if (button7.getId()==((Button)v).getId()) { Card t = tableaufinal.get(7); u = t.IDpaire; backImage = t.image; button7.setBackgroundColor(backImage); } else if (button8.getId()==((Button)v).getId()) { Card t = tableaufinal.get(8); u = t.IDpaire; backImage = t.image; button8.setBackgroundColor(backImage); } else if (button9.getId()==((Button)v).getId()) { Card t = tableaufinal.get(9); u = t.IDpaire; backImage = t.image; button9.setBackgroundColor(backImage); } else if (button10.getId()==((Button)v).getId()) { Card t = tableaufinal.get(10); u = t.IDpaire; backImage = t.image; button10.setBackgroundColor(backImage); } else if (button11.getId()==((Button)v).getId()) { Card t = tableaufinal.get(11); u = t.IDpaire; backImage = t.image; button11.setBackgroundColor(backImage); } else if (button12.getId()==((Button)v).getId()) { Card t = tableaufinal.get(12); u = t.IDpaire; backImage = t.image; button12.setBackgroundColor(backImage); } else if (button13.getId()==((Button)v).getId()) { Card t = tableaufinal.get(13); u = t.IDpaire; backImage = t.image; button13.setBackgroundColor(backImage); } else if (button14.getId()==((Button)v).getId()) { Card t = tableaufinal.get(14); u = t.IDpaire; backImage = t.image; button14.setBackgroundColor(backImage); } else if (button15.getId()==((Button)v).getId()) { Card t = tableaufinal.get(15); u = t.IDpaire; backImage = t.image; button15.setBackgroundColor(backImage); } else if (button16.getId()==((Button)v).getId()) { Card t = tableaufinal.get(16); u = t.IDpaire; backImage = t.image; button16.setBackgroundColor(backImage); } //deuxieme clic on recupere l'image de la carte et l'idpaire View.OnClickListener seconedCard ; seconedCard = new View.OnClickListener() { @Override public void onClick(View v) { if (button1.getId()==((Button)v).getId()) { Card t = tableaufinal.get(1); p = t.IDpaire; backImage = t.image; button1.setBackgroundColor(backImage); } else if (button2.getId()==((Button)v).getId()) { Card t = tableaufinal.get(2); p = t.IDpaire; backImage = t.image; button2.setBackgroundColor(backImage); } else if (button3.getId()==((Button)v).getId()) { Card t = tableaufinal.get(3); p = t.IDpaire; backImage = t.image; button3.setBackgroundColor(backImage); } else if (button4.getId()==((Button)v).getId()) { Card t = tableaufinal.get(4); p = t.IDpaire; backImage = t.image; button4.setBackgroundColor(backImage); } else if (button5.getId()==((Button)v).getId()) { Card t = tableaufinal.get(5); p = t.IDpaire; backImage = t.image; button5.setBackgroundColor(backImage); } else if (button6.getId()==((Button)v).getId()) { Card t = tableaufinal.get(6); p = t.IDpaire; backImage = t.image; button6.setBackgroundColor(backImage); } else if (button7.getId()==((Button)v).getId()) { Card t = tableaufinal.get(7); p = t.IDpaire; backImage = t.image; button7.setBackgroundColor(backImage); } else if (button8.getId()==((Button)v).getId()) { Card t = tableaufinal.get(8); p = t.IDpaire; backImage = t.image; button8.setBackgroundColor(backImage); } else if (button9.getId()==((Button)v).getId()) { Card t = tableaufinal.get(9); p = t.IDpaire; backImage = t.image; button9.setBackgroundColor(backImage); } else if (button10.getId()==((Button)v).getId()) { Card t = tableaufinal.get(10); p = t.IDpaire; backImage = t.image; button10.setBackgroundColor(backImage); } else if (button11.getId()==((Button)v).getId()) { Card t = tableaufinal.get(11); p = t.IDpaire; backImage = t.image; button11.setBackgroundColor(backImage); } else if (button12.getId()==((Button)v).getId()) { Card t = tableaufinal.get(12); p = t.IDpaire; backImage = t.image; button12.setBackgroundColor(backImage); } else if (button13.getId()==((Button)v).getId()) { Card t = tableaufinal.get(13); p = t.IDpaire; backImage = t.image; button13.setBackgroundColor(backImage); } else if (button14.getId()==((Button)v).getId()) { Card t = tableaufinal.get(14); p = t.IDpaire; backImage = t.image; button14.setBackgroundColor(backImage); } else if (button15.getId()==((Button)v).getId()) { Card t = tableaufinal.get(15); p = t.IDpaire; backImage = t.image; button15.setBackgroundColor(backImage); } else if (button16.getId()==((Button)v).getId()) { Card t = tableaufinal.get(16); p = t.IDpaire; backImage = t.image; button16.setBackgroundColor(backImage); } System.out.println("u = "+u+" p = "+p); }; }; } }; }; public void chek(){ turn(); //timer TimerTask tt = new TimerTask() { @Override public void run() { try{ synchronized (lock) { handler.sendEmptyMessage(0); } } catch (Exception e) { Log.e("E1", e.getMessage()); } } }; Timer t = new Timer(false); t.schedule(tt, 1300); //on verifie les idpaires if(p == u){ firstCard.button.setVisibility(View.INVISIBLE); seconedCard.button.setVisibility(View.INVISIBLE); } else { //sinon on remet l'image de fond seconedCard.button.setBackgroundColor(backImage); firstCard.button.setBackgroundColor(backImage); } } @Override public void onClick(View v) { button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); button4.setOnClickListener(this); button5.setOnClickListener(this); button6.setOnClickListener(this); button7.setOnClickListener(this); button8.setOnClickListener(this); button9.setOnClickListener(this); button10.setOnClickListener(this); button11.setOnClickListener(this); button12.setOnClickListener(this); button13.setOnClickListener(this); button14.setOnClickListener(this); button15.setOnClickListener(this); button16.setOnClickListener(this); } }
Pour suivre le conseil précédent :
-turn() appelle placement() et boutton()
Non, en faite quand tu fais
En gros tu lui dit qu'il va s'écouter, et du coup quand on clique dessus, on va allé voir la fonction onClick, du coup tu dois pas le mettre dedans.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Button.setOnClickListener(this)
Tu pourrai les mettre en même temps que tu rajoute tes boutons aux listes
Moi je le verrai comme ca...
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 public void booton(){ //tableau de bouton pour faire le lien avec celui des cartes boutton = new ArrayList<Button>(); boutton.add(button1); boutton.add(button2); boutton.add(button3); boutton.add(button4); boutton.add(button5); boutton.add(button6); boutton.add(button7); boutton.add(button8); boutton.add(button9); boutton.add(button10); boutton.add(button11); boutton.add(button12); boutton.add(button13); boutton.add(button14); boutton.add(button15); boutton.add(button16); button1.setOnClickListener(this); button2.setOnClickListener(this); ... button3.setOnClickListener(this); button4.setOnClickListener(this); } public void OnClick(View myButton) { if (premierClic) { if (myButton == button1) { Card t = tableaufinal.get(1); idPaire = t.IDpaire; backImage = t.image; button1.setBackgroundColor(backImage); } else { if (myButton == button2) { Card t = tableaufinal.get(2); idPaire = t.IDpaire; backImage = t.image; button1.setBackgroundColor(backImage); } .... } } else { if (myButton == button1) { Card t = tableaufinal.get(1); if(idPaire == t.IDpaire) { // Cacher les cartes ou les suppimer selon ta façon de faire } else { // Remettre la première carte et l'idPaire à zéro } } } }
D'accord je comprend mieux
J'ai cependant deux questions :
-qu'appelles tu "idpaire" , if(idPaire == t.IDpaire)
-comment puis je dire "premierclic" ?
De plus cela implique un gros code pour chaque bouton pour le coup, du style :
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 if (premierclic){ if (v == button1) { Card a = tableaufinal.get(1); u = a.IDpaire; backImage = a.image; button1.setBackgroundColor(backImage); } else if (v == button2) { Card a = tableaufinal.get(2); u = a.IDpaire; backImage = a.image; button2.setBackgroundColor(backImage); } ... else { if(v==button1){ Card a = tableaufinal.get(1); if(IDPaire == a.IDpaire) { // Cacher les cartes //timer TimerTask tt = new TimerTask() { @Override public void run() { try{ synchronized (lock) { handler.sendEmptyMessage(0); } } catch (Exception e) { Log.e("E1", e.getMessage()); } } }; Timer t = new Timer(false); t.schedule(tt, 1300); //on verifie les idpaires if(p == u){ firstCard.button.setVisibility(View.INVISIBLE); seconedCard.button.setVisibility(View.INVISIBLE); } } } else { Card a=null; IDpaire=null; } }
idPaire c'est un int dans lequel on stock l'IDPaire de la première carte (sur deux) sur laquelle on aura cliqué.
Pour premierClic je me prendrai pas la tête, un booléen que j'initialise à true,
donc la première fois que tu va cliquer sur une carte il sera à true, ca rentre dedans, et à la fin du if (juste avant le else) tu fais premierClic = false, et à la fin du else, tu met un premierClic = true;
Après ca implique quand même pas mal de code, mais dans ce que tu montre il y a des choses pas bonne, par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if(p == u)
Tu n'en a pas besoin, la vérification de la paire est faite la
La méthode check tu l'as programmer toi même, c'est pas une méthode que tu implémente toi même?
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(IDPaire == a.IDpaire)
Edit: Et en faite quand je te dis de remettre à zéro c'est pas de remettre à null mais de remettre en image de fond ^^
Je me retrouve donc avec ceci.
Je n'ai fais que les else des 3 premiers mais cela ne change rien.
Le problème est que je ne peux toujours pas cliqué sur mes boutons ... cela ne fait rien ... Je comprend pas, c'est plus haut qu'il y a un problème ???
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
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483 package com.aviy.memory; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Timer; import java.util.TimerTask; import com.aviy.memory.Jeu1.UpdateCardsHandler; import android.os.Handler; import android.app.Activity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class Jeu extends Activity implements OnClickListener{ public int largeur; public int longueur; int u; int p; private Card firstCard; private Card seconedCard; private Card carte1; private Card carte2; private Card carte3; private Card carte4; private Card carte5; private Card carte6; private Card carte7; private Card carte8; private Card carte9; private Card carte10; private Card carte11; private Card carte12; private Card carte13; private Card carte14; private Card carte15; private Card carte16; private Card carte17; private Card carte18; private Card carte19; private Card carte20; private Card carte21; private Card carte22; private Card carte23; private Card carte24; private Card carte25; private Card carte26; private Card carte27; private Card carte28; private Card carte29; private Card carte30; private Card carte31; private Card carte32; private Card carte33; private int backImage; private List<Card> tableaudepart; private List<Card> tableaufinal; private List<Button> boutton; Button button1; Button button2; Button button3; Button button4; Button button5; Button button6; Button button7; Button button8; Button button9; Button button10; Button button11; Button button12; Button button13; Button button14; Button button15; Button button16; private UpdateCardsHandler handler; private static Object lock = new Object(); public boolean premierClic = true; //debut menu public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater =getMenuInflater(); inflater.inflate(R.menu.monmenu, menu); return true; } public boolean onMenuItemSelected(int featureId,MenuItem item){ switch (item.getItemId()){ case R.id.Regles: Toast.makeText(this,"Sélectionnez un niveau de difficulté",Toast.LENGTH_SHORT).show(); return true; case R.id.Quitter: finish(); return true; case R.id.Auteur: Toast.makeText(this,"EcoCO2",Toast.LENGTH_SHORT).show(); } return super.onMenuItemSelected(featureId, item); } //fin menu public void creationcarte(Button button,int IDpaire, int y, int x, int image){ //on crée les cartes carte1=new Card(button,x,y,IDpaire=1 ,image = R.drawable.card1); carte2=new Card(button,x,y,IDpaire=1 ,image = R.drawable.card2); carte3=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card3); carte4=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card4); carte5=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card5); carte6=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card6); carte7=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card7); carte8=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card8); carte9=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card9); carte10=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card10); carte11=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card11); carte12=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card12); carte13=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card13); carte14=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card14); carte15=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card15); carte16=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card16); carte18=new Card(button,x,y,IDpaire=1 ,image = R.drawable.card18); carte19=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card19); carte20=new Card(button,x,y,IDpaire=2 ,image = R.drawable.card20); carte21=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card21); carte22=new Card(button,x,y,IDpaire=3 ,image = R.drawable.card22); carte23=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card29); carte24=new Card(button,x,y,IDpaire=4 ,image = R.drawable.card24); carte25=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card25); carte26=new Card(button,x,y,IDpaire=5 ,image = R.drawable.card26); carte27=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card27); carte28=new Card(button,x,y,IDpaire=6 ,image = R.drawable.card28); carte29=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card29); carte30=new Card(button,x,y,IDpaire=7 ,image = R.drawable.card30); carte31=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card31); carte32=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card32); carte33=new Card(button,x,y,IDpaire=8 ,image = R.drawable.card33); //tableau pour les ranger dans l'ordre tableaudepart = new ArrayList<Card>(); tableaudepart.add(carte1); tableaudepart.add(carte2); tableaudepart.add(carte3); tableaudepart.add(carte4); tableaudepart.add(carte5); tableaudepart.add(carte6); tableaudepart.add(carte7); tableaudepart.add(carte8); tableaudepart.add(carte9); tableaudepart.add(carte10); tableaudepart.add(carte11); tableaudepart.add(carte12); tableaudepart.add(carte13); tableaudepart.add(carte14); tableaudepart.add(carte15); tableaudepart.add(carte16); tableaudepart.add(carte17); tableaudepart.add(carte18); tableaudepart.add(carte19); tableaudepart.add(carte20); tableaudepart.add(carte21); tableaudepart.add(carte22); tableaudepart.add(carte23); tableaudepart.add(carte24); tableaudepart.add(carte25); tableaudepart.add(carte26); tableaudepart.add(carte27); tableaudepart.add(carte28); tableaudepart.add(carte29); tableaudepart.add(carte30); tableaudepart.add(carte31); tableaudepart.add(carte32); tableaudepart.add(carte33); } public void placement(){ //on choisit une place aléatoire dans le tableau pour chaque carte en mélangeant le premier tableau setContentView(R.layout.jeux1); for (int i=33; i>0; i--){ int a =1; int b=i; int random = (int)(Math.random() * (b-a)); tableaufinal.add(tableaudepart.get(random)); tableaudepart.remove(random); } } public void booton(){ //tableau de bouton pour faire le lien avec celui des cartes boutton = new ArrayList<Button>(); boutton.add(button1); boutton.add(button2); boutton.add(button3); boutton.add(button4); boutton.add(button5); boutton.add(button6); boutton.add(button7); boutton.add(button8); boutton.add(button9); boutton.add(button10); boutton.add(button11); boutton.add(button12); boutton.add(button13); boutton.add(button14); boutton.add(button15); boutton.add(button16); button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); button4.setOnClickListener(this); button5.setOnClickListener(this); button6.setOnClickListener(this); button7.setOnClickListener(this); button8.setOnClickListener(this); button9.setOnClickListener(this); button10.setOnClickListener(this); button11.setOnClickListener(this); button12.setOnClickListener(this); button13.setOnClickListener(this); button14.setOnClickListener(this); button15.setOnClickListener(this); button16.setOnClickListener(this); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.jeux1); } @Override public void onClick(View v) { if (premierClic){ if (v == button1) { Card a = tableaufinal.get(1); u = a.IDpaire; backImage = a.image; button1.setBackgroundColor(backImage); } else if (v == button2) { Card a = tableaufinal.get(2); u = a.IDpaire; backImage = a.image; button2.setBackgroundColor(backImage); } else if (v == button3) { Card a = tableaufinal.get(3); u = a.IDpaire; backImage = a.image; button3.setBackgroundColor(backImage); } else if (v == button4) { Card a = tableaufinal.get(4); u = a.IDpaire; backImage = a.image; button4.setBackgroundColor(backImage); } else if (button5.getId()==((Button)v).getId()) { Card a = tableaufinal.get(5); u = a.IDpaire; backImage = a.image; button5.setBackgroundColor(backImage); } else if (button6.getId()==((Button)v).getId()) { Card a = tableaufinal.get(6); u = a.IDpaire; backImage = a.image; button6.setBackgroundColor(backImage); } else if (button7.getId()==((Button)v).getId()) { Card a = tableaufinal.get(7); u = a.IDpaire; backImage = a.image; button7.setBackgroundColor(backImage); } else if (button8.getId()==((Button)v).getId()) { Card a = tableaufinal.get(8); u = a.IDpaire; backImage = a.image; button8.setBackgroundColor(backImage); } else if (button9.getId()==((Button)v).getId()) { Card a = tableaufinal.get(9); u = a.IDpaire; backImage = a.image; button9.setBackgroundColor(backImage); } else if (button10.getId()==((Button)v).getId()) { Card a = tableaufinal.get(10); u = a.IDpaire; backImage = a.image; button10.setBackgroundColor(backImage); } else if (button11.getId()==((Button)v).getId()) { Card a = tableaufinal.get(11); u = a.IDpaire; backImage = a.image; button11.setBackgroundColor(backImage); } else if (button12.getId()==((Button)v).getId()) { Card a = tableaufinal.get(12); u = a.IDpaire; backImage = a.image; button12.setBackgroundColor(backImage); } else if (button13.getId()==((Button)v).getId()) { Card a = tableaufinal.get(13); u = a.IDpaire; backImage = a.image; button13.setBackgroundColor(backImage); } else if (button14.getId()==((Button)v).getId()) { Card a = tableaufinal.get(14); u = a.IDpaire; backImage = a.image; button14.setBackgroundColor(backImage); } else if (button15.getId()==((Button)v).getId()) { Card a = tableaufinal.get(15); u = a.IDpaire; backImage = a.image; button15.setBackgroundColor(backImage); } else if (button16.getId()==((Button)v).getId()) { Card a = tableaufinal.get(16); u = a.IDpaire; backImage = a.image; button16.setBackgroundColor(backImage); } premierClic = false; } else { if(v==button1){ Card a = tableaufinal.get(1); if(u == a.IDpaire) { // Cacher les cartes //timer TimerTask tt = new TimerTask() { @Override public void run() { try{ synchronized (lock) { handler.sendEmptyMessage(0); } } catch (Exception e) { Log.e("E1", e.getMessage()); } } }; Timer t = new Timer(false); t.schedule(tt, 1300); //on verifie les idpaires firstCard.button.setVisibility(View.INVISIBLE); seconedCard.button.setVisibility(View.INVISIBLE); } } else { Card a=null; u=0; } if(v==button2){ Card a = tableaufinal.get(2); if(u == a.IDpaire) { // Cacher les cartes //timer TimerTask tt = new TimerTask() { @Override public void run() { try{ synchronized (lock) { handler.sendEmptyMessage(0); } } catch (Exception e) { Log.e("E1", e.getMessage()); } } }; Timer t = new Timer(false); t.schedule(tt, 1300); //on verifie les idpaires firstCard.button.setVisibility(View.INVISIBLE); seconedCard.button.setVisibility(View.INVISIBLE); } } else { Card a=null; u=0; } if(v==button3){ Card a = tableaufinal.get(3); if(u == a.IDpaire) { // Cacher les cartes //timer TimerTask tt = new TimerTask() { @Override public void run() { try{ synchronized (lock) { handler.sendEmptyMessage(0); } } catch (Exception e) { Log.e("E1", e.getMessage()); } } }; Timer t = new Timer(false); t.schedule(tt, 1300); //on verifie les idpaires firstCard.button.setVisibility(View.INVISIBLE); seconedCard.button.setVisibility(View.INVISIBLE); } } else { Card a=null; u=0; } premierClic = true; } } };
Le premier clic n'est même pas repérer?
Essaie de placer des point d'arrets (breakpoint) ou des Log pour voir si tu passe bien dans ton onClick
Re bonjour,
Je n'ai rien fait depuis un moment car y a eu le pont :p
Alors j'ai mis les points d’arrêts à différents endroits mais quelque soient leurs emplacements, le logcat ne m'affiche rien du tout. Je ne peux donc pas cliquer sur mes boutons.
J'en conclus que je ne rentre pas dans la boucle, et je ne comprends pas pourquoi...
Cela m’embête de plus en plus, car cela commence à devenir urgent au vu du temps que je prends...
Si tu met des points d'arrêts tu dois lancer en mode debug (le petit scarabé vert lol). Et ton appli, quoi le compilateur s'arrêtera à chaque point d'arrêts, tu peux vérifier les variables si t'en a envie, puis pour continue t'as une fleche verte (resume F8) et ca s'arretera au futur point d'arrêt si il existe
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