IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

pb jeu memory: débutant


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut pb jeu memory: débutant
    Bonjour à tous!
    Je suis débutante et je dois faire un jeu de memory de 32 cartes en partant un document html, puis xhtml avec des <dv> et ajouter du code javascript ensuite.

    Est ce que quelqu'un a déjà faire un truc de ce genre? et est ce que je pourais regarder comment il a fait? ou est ce que quelqu'un peut m'aider à le faire?

    Je suis plus graphiste que "programmeuse".....J'ai déjà fait la moitié du truc mais je bloque!

    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Est ce que quelqu'un a déjà faire un truc de ce genre? et est ce que je pourais regarder comment il a fait? ou est ce que quelqu'un peut m'aider à le faire?

    Je suis plus graphiste que "programmeuse".....J'ai déjà fait la moitié du truc mais je bloque!

    Merci d'avance!
    peut-on voir ce que tu as fait ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut voici le code
    Tout est là mais dans le désordre et je n'arrive pas à avancer.
    Si vous pouvez me guider... ce serait super!
    Merci d'avance

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <style type="style 20 02/css">
    /*mes styles*/
    </style>
     
     
    <script type="text/javascript" language="javascript">
    // INITIALISATION
    nbFaces=16;// Nombre de faces
    nbCartes=nbFaces*2;// Nombre de cartes
    maDonne=new Array(); // Tableau de la donne
    maDonne[0]=0;// De manière à pouvoir utiliser le tableau maDonne
    mesTiragese=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);// Tableau des tirages effectués
    mesTirages[0]=0; // De manière à pouvoir utiliser le tableau mesTirages
     
    //Tirage aléatoire
    For (i=1; i<nbCartes+1; i++) {
    mesTirages[i]=0; // La face de valeur ‘i’ n’a jamais été tirée
    	carte_trouvee=false;
    	while (!carte_trouvee) {
    tirage=Math.round(Math.random()*16 + 1);
    }
    }
     
     
    if (mesTirages[tirage]<2)
    	maDonne[i]=tirage;
    	mesTirages[tirage]++;
    	carte_trouvee=true;
    }	
     
     
    	function relever() {
    	//Afficher les cartes trouvées
    	for (i=1; i<nbCartes+1; i++) {
    	maFace="carte"+maDonne[i]+".jpg";
    	document.images[i-1].src=maFace;
    	}
    	}
    }
     
    	function montrer(numero) {document.images[numero-1].src="carte"+maDonne[numero]+".jpg";}
     
    tirage=Math.round(Math.random()*16 + 1);
     
     
    highscore=30; expires=Tue, 31-Dec-2002 08:00:00 GMT; path=/;
    domain=localhost; secure;
     
     
    highscore=0;
    // Cookie highscore existant ? (càd contient la sous-chaîne "highscore=")
    // -1 : cookie pas trouvé, sinon position dans la chaîne « cookie »
    highscore_existe=document.cookie.indexOf("highscore=");
    if (highscore_existe!=-1) {
    // Position de fin dans la chaîne « cookie »
    highscore_fin=document.cookie.indexOf(";", highscore_existe+10);
    // Extraction du cookie : substring(position_debut, position_fin)
    highscore=document.cookie.substring(highscore_existe+10, highscore_fin);
    }
     
     
    //changer image
    document.nom_image.src="uri_source_image.jpg";
    document.images[indice_image].src="uri.jpg";
     
    liste des cartes retirées : mesCartesRetirees[]
    • nombre de cartes retournées : nbCartesRetournees
    • numéros cartes retournées : mesCartesRetournees[1-2]
    • indicateur de fin de partie : jeu_fini
     
     
    function action_clic(carte) {
    if (!jeu_fini) {
    if (nbCartesRetournees<2) {
    // Clic sur carte pas déjà enlevée
    if (!mesCartesRetirees[carte]) {
    // Clic sur carte pas déjà retournée
    if ((mesCartesRetournees[1]!=carte) AND
    (mesCartesRetournees[2]!=carte)) {
    // Retourner la carte
    document.images[carte-1].src="carte 01"+maDonne[carte]+".gif";
    // Incrémenter cartes retournées
    nbCartesRetournees++;
    mesCartesRetournees[nbCartesRetournees]=carte;
    // Incrémenter le compteur de coups … A COMPLETER
    // 2 cartes retournées = pause + vérifications
    if (nbCartesRetournees==2) {
    // Lancer timer 3 secondes : DEFINIR FONCTION
    setTimeout("verifier_paire()", 3000);
    }
    }
    }
    }
    }
    }
     
    function action_rollover(carte) {
    if (!jeu_fini) {
    if (!mesCartesRetirees[carte]) {
    if ((mesCartesRetournees[1]!=carte) AND
    (mesCartesRetournees[2]!=carte)) {
    document.images[carte-1].src="dos-carte-over.jpg";
    }
    }
    }
    }
    function action_rollout(carte) {
    if (!jeu_fini) {
    if (!mesCartesRetirees[carte]) {
    if ((mesCartesRetournees[1]!=carte) AND
    (mesCartesRetournees[2]!=carte)) {
    document.images[carte-1].src="dos-carte.jpg";
    }
    }
    }
    }	
     
    function verifier_paire() {
    // Faces identiques ?
    if (maDonne[mesCartesRetournees[1]]==maDonne[mesCartesRetournees[2]]) {
    // Retirer les cartes du jeu
    document.images[mesCartesRetournees[1]-1].src="carte-transparente.gif";
    document.images[mesCartesRetournees[2]-1].src="carte-transparente.gif";
    // Mettre à jour les infos de cartes retournées
    mesCartesRetirees[mesCartesRetournees[1]]=true;
    mesCartesRetirees[mesCartesRetournees[2]]=true;
    nbCartesRestantes-=2;
    // Fin du jeu ?
    if (nbCartesRestantes==0) {
    jeu_fini=true;
    arreter_jeu();
    }
    }
    // Ré-initialisations
    nbCartesRetournees=0;
    mesCartesRetournees[1]=0;
    mesCartesRetournees[2]=0;
    }
     
    function arreter_jeu() {
    // Arrêt compteur
    clearTimeout(dureeJeu);
    jeu_fini=true;
    // Nouveau highscore ?
    if (nbCoupsJoues<highscore) {
    alert("Nouveau meilleur score!");
    // Ecriture cookie : A COMPLETER
    }
    else if (nbCoupsJoues==highscore) {
    if (dureeEcoule<dureeHighscore) {
    alert("Nouveau meilleur score!");
    // Ecriture cookie …
    }
    }
    }
     
    document.cookie="highscore=" + escape(highscore)
    + "; expires=" + escape(date_expiration)
    + "; path=" + escape(path)
    + "; domain=" + escape(domain);
     
    document.forms[0].coups.value=nbCoupsJoues;
    function afficher_duree() {
    if (!jeu_fini) {
    document.forms[0].duree.value=temps_ecoule;
    setTimeout("afficher_duree()", 1000);
    }
    }
     
     
    <!--mes actions javascript
    </script>
     
    <title>jeu memory</title>
    </head>
     
    <body>
    <div id="global">
     
     
    	<div id="cartes">
    		<table id="Tableau_01" width="801" height="601" border="0" cellpadding="0" cellspacing="0">
    	<tr>
    		<td colspan="22">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="24" alt=""></td>
    	</tr>
    	<tr>
    		<td rowspan="27">&nbsp;</td>
    		<td rowspan="5">
    			<img src="images/plateau-de-jeu-pour-voir-04.gif" width="1" height="70" alt=""></td>
    		<td colspan="2" rowspan="3">
    			<img src="images exportees/carte 01.gif" width="38" height="58" alt=""></td>
    		<td rowspan="27">&nbsp;</td>
    		<td rowspan="16">
    			<img src="images/plateau-de-jeu-pour-voir-07.gif" width="1" height="280" alt=""></td>
    		<td colspan="3" rowspan="3">
    			<img src="images exportees/carte 09.gif" width="39" height="58" alt=""></td>
    		<td rowspan="27">&nbsp;</td>
    		<td rowspan="3">
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td rowspan="26">&nbsp;</td>
    		<td rowspan="3">
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td rowspan="28">&nbsp;</td>
    		<td colspan="7">&nbsp;</td>
    		<td rowspan="28">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="9" alt=""></td>
    	</tr>
    	<tr>
    		<td rowspan="6">&nbsp;</td>
    		<td colspan="3">&nbsp;</td>
    		<td colspan="2" rowspan="3">
    			<img src="images exportees/hight score.gif" width="125" height="66" alt=""></td>
    		<td rowspan="3">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="6" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="2">
    			<img src="images/plateau-de-jeu-pour-voir-20.gif" width="111" height="45" alt=""></td>
    		<td rowspan="5">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="45" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="2" rowspan="2">&nbsp;</td>
    		<td colspan="3" rowspan="2">&nbsp;</td>
    		<td rowspan="3">&nbsp;</td>
    		<td rowspan="3">&nbsp;</td>
    		<td colspan="2" rowspan="4">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="9" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="3" rowspan="3">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="1" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="3" rowspan="4">
    			<img src="images exportees/carte 02.gif" width="38" height="58" alt=""></td>
    		<td colspan="3" rowspan="4">
    			<img src="images exportees/carte 10.gif" width="39" height="58" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="2" alt=""></td>
    	</tr>
    	<tr>
    		<td rowspan="3">
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td rowspan="3">
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="7" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="7">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="23" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="7" rowspan="13">
    			<div id="règles">
    		Les règles de jeu de Memory sont assez simples.
     
     Un jeu de Memory est composé d'un nombre donné 
    de paires indentiques de cartes imagées.
    Toutes les cartes partagent un dos et des 
    dimensions identiques qui empêchent qu'elles
     puissent être reconnues une fois retournées. 
     
    Au début d'une partie, les cartes sont mélangées puis
     sont disposées retournées et chaque joueur, 
    à tour de rôle, retourne deux cartes. Si les deux
     cartes retournées sont identiques, leurs deux faces
     imagées étant les mêmes, le joueur empoche les
     deux cartes et continue de jouer, c'est à dire 
    de retourner deux nouvelles cartes.
     Si les deux cartes retournées diffèrent, 
    les deux cartes sont retournées à nouveau, 
    faces cachées, et c'est au joueur suivant de jouer. 
    Le but du jeu est de collectionner le plus 
    grand nombre de cartes possibles, ce qui est obtenu 
    en mémorisant au mieux l'emplacement de chaque
     carte qui a été précédemment retournée de telle 
    sorte que sa carte jumelle retournée, les joueurs
     puissent reformer la paire, en devinant, 
    face cachée, son emplacement dans le jeu. 
     
    		 </div></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="28" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="3">&nbsp;</td>
    		<td colspan="3" rowspan="2">&nbsp;</td>
    		<td>&nbsp;</td>
    		<td rowspan="2">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="10" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="3" rowspan="3">
    			<img src="images exportees/carte 03.gif" width="40" height="60" alt=""></td>
    		<td rowspan="2">
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="1" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="3" rowspan="2">
    			<img src="images exportees/carte 11.gif" width="38" height="58" alt=""></td>
    		<td rowspan="2">
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="59" alt=""></td>
    	</tr>
    	<tr>
    		<td rowspan="2">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="1" alt=""></td>
    	</tr>
    	<tr>
    		<td>
    			<img src="images/plateau-de-jeu-pour-voir-43.gif" width="1" height="9" alt=""></td>
    		<td>&nbsp;</td>
    		<td>
    			<img src="images/plateau-de-jeu-pour-voir-45.gif" width="1" height="9" alt=""></td>
    		<td colspan="3">&nbsp;</td>
    		<td>&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="9" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="3">
    			<img src="images exportees/carte 04.gif" width="39" height="58" alt=""></td>
    		<td colspan="3">
    			<img src="images exportees/carte 12.gif" width="38" height="58" alt=""></td>
    		<td>
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="60" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="3">&nbsp;</td>
    		<td>&nbsp;</td>
    		<td colspan="2">
    			<img src="images/plateau-de-jeu-pour-voir-54.gif" width="2" height="10" alt=""></td>
    		<td>&nbsp;</td>
    		<td>&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="10" alt=""></td>
    	</tr>
    	<tr>
    		<td rowspan="3">
    			<img src="images/plateau-de-jeu-pour-voir-57.gif" width="1" height="130" alt=""></td>
    		<td colspan="2">
    			<img src="images exportees/carte 05.gif" width="39" height="58" alt=""></td>
    		<td colspan="4">
    			<img src="images exportees/carte 13.gif" width="38" height="58" alt=""></td>
    		<td>
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="61" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="2">&nbsp;</td>
    		<td rowspan="3">
    			<img src="images/plateau-de-jeu-pour-voir-63.gif" width="1" height="79" alt=""></td>
    		<td colspan="3">&nbsp;</td>
    		<td>&nbsp;</td>
    		<td>&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="9" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="2">
    			<img src="images exportees/carte 06.gif" width="39" height="58" alt=""></td>
    		<td colspan="3">
    			<img src="images exportees/carte 14.gif" width="38" height="58" alt=""></td>
    		<td>
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="60" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="3">&nbsp;</td>
    		<td colspan="3">&nbsp;</td>
    		<td>&nbsp;</td>
    		<td>&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="10" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="2" rowspan="2"><img src="images exportees/carte 07.gif" width="39" height="58" alt=""></td>
    		<td rowspan="2">
    			<img src="images/plateau-de-jeu-pour-voir-76.gif" width="1" height="60" alt=""></td>
    		<td colspan="3" rowspan="2">
    			<img src="images exportees/carte 15.gif" width="38" height="58" alt=""></td>
    		<td rowspan="7">
    			<img src="images/plateau-de-jeu-pour-voir-78.gif" width="1" height="131" alt=""></td>
    		<td rowspan="2">
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td rowspan="2">
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="34" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="7">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="26" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="3" rowspan="2">&nbsp;</td>
    		<td colspan="3">&nbsp;</td>
    		<td>&nbsp;</td>
    		<td>&nbsp;</td>
    		<td colspan="2" rowspan="6">&nbsp;</td>
    		<td colspan="3" rowspan="3">
    			<img src="images exportees/rejouer.gif" width="164" height="51" alt=""></td>
    		<td colspan="2" rowspan="3">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="10" alt=""></td>
    	</tr>
    	<tr>
    		<td>
    			<img src="images/plateau-de-jeu-pour-voir-89.gif" width="1" height="1" alt=""></td>
    		<td colspan="2" rowspan="4">
    			<img src="images exportees/carte 16.gif" width="38" height="58" alt=""></td>
    		<td rowspan="3">
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td rowspan="4">
    			<img src="images exportees/dos.gif" width="42" height="62" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="1" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="3" rowspan="3">
    			<img src="images exportees/carte 08.gif" width="38" height="58" alt=""></td>
    		<td rowspan="3">
    			<img src="images/plateau-de-jeu-pour-voir-94.gif" width="1" height="60" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="37" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="5" rowspan="3">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="22" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="2">
    			<img src="images/plateau-de-jeu-pour-voir-96.gif" width="64" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="1" alt=""></td>
    	</tr>
    	<tr>
    		<td colspan="13">&nbsp;</td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="25" alt=""></td>
    	</tr>
    	<tr>
    		<td>
    			<img src="images/spacer.gif" width="59" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="40" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="24" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="39" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="1" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="24" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="39" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="25" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="40" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="124" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="21" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="72" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="39" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="57" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="63" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="56" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="14" height="1" alt=""></td>
    		<td>
    			<img src="images/spacer.gif" width="59" height="1" alt=""></td>
    		<td></td>
    	</tr>
    </table>
      </div>
     
     
     
    		<div id="infos">
    		<div id="score"></div>
     
     
     
    		<div id="action"></div>
    	</div>
    </div>
     
     
     
     
     
     
     
    </body>
    </html>

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Tout est là mais dans le désordre
    je confirme...


    En regardant ton code je me suis posé plusieurs questions :
    • puisque tu débutes en HTML / CSS et Javascript pourquoi commences-tu par ce genre de projet ?
    • à plusieurs reprises, je me suis demandé si le code javascript était de toi.... (ou alors tu ne l'as pas fait seule)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut ben non!
    Je suis étudiante et le prof nous a donné des bouts. Mais comme tu l'as sans doute deviné je ne suis pas dans les meilleurs de la classe.

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Si ça ne te dérange pas on va faire autrement.

    Bon..... on va commencer avec 8 cartes :

    Voilà un début :

    Code html : 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
     
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    body{
     margin: 10px;
    }
     
    .gauche{
     width: 47%;
     float: left;
     margin: 5px;
     border: 1px solid #AAAAAA;
     padding: 5px;
    }
     
    .carte{
     float: left;
     border: 2px ridge #AAAAAA;
     width: 50px;
     height: 50px;
     margin: 2px;
     cursor: pointer;
    }
     
    .droite{
     width: 43%;
     float: right;
     margin: 5px;
     border: 1px solid #AAAAAA;
     padding: 5px;
    }
     
    //-->
    </style>
     
    <script type="text/javascript">
    <!--
     
    var cartes = new Array();
    cartes[0] = "images/i1.gif";    cartes[1] = "images/i2.gif";
    cartes[2] = "images/i3.gif";    cartes[3] = "images/i4.gif";
     
    var nbCartes = cartes.length*2;
     
    /****************** Script ************************/
    /** Variables globales **/
    var cartesMelangees = new Array();
    var carte1 = null;
    var carte2 = null;
     
    /** Fonction pour melanger les 32 cartes **/
    function melangerCartes()
    {
     var i, x, m;
     
     m = nbCartes;
     
     for (i=0; i<m; i++)
       cartesMelangees[i] = -1; //initilisation du tableau
     
     i = 0;
     while (i<m)
     {
       x = Math.round(Math.random()*m);     //on tire un nombre entre 0 et 32
     
       while (cartesMelangees[x]!=-1 && x>0)
          x--;
     
       if (x<m && x>=0)
       {
          if (cartesMelangees[x]==-1)
          {
            cartesMelangees[x] = i;
            i++;
          }
       }
     }
     alert(cartesMelangees);
    }
     
     
    function clicCartes(carte)
    {
      var n1, n2, i1, i2;
     
      if (carte1==null)
      {
         carte1 = carte;
         alert("Vous avez cliquez sur "+carte1.id);
      }
      else
      {
          carte2 = carte;
     
          if (carte1==carte2)
          {
             alert("vous avez cliquez deux fois sur la même carte !");
          }
          else
          {
             alert("Vous avez cliquez sur "+carte1.id+" et "+carte2.id);
     
             n1 = parseInt(carte1.id.replace("carte",""));
             n2 = parseInt(carte2.id.replace("carte",""));
     
             i1 = cartesMelangees[n1];
             if (i1>=cartes.length)
                i1 = i1-cartes.length;
     
             i2 = cartesMelangees[n2];
             if (i2>=cartes.length)
                i2 = i2-cartes.length;
                
             alert("Images correspondantes: "+cartes[i1]+" "+cartes[i2]);
          }
          /* Remise à zéro */
          carte1 = null;
          carte2 = null;
      }
    }
     
    //-->
    </script>
     
    </head>
     
    <body onload="melangerCartes()">
    <div class="gauche">
         <img class="carte" src="dosCarte.gif" alt="" id="carte00" onclick="clicCartes(this)"/>
         <img class="carte" src="dosCarte.gif" alt="" id="carte01" onclick="clicCartes(this)"/>
         <img class="carte" src="dosCarte.gif" alt="" id="carte02" onclick="clicCartes(this)"/>
         <img class="carte" src="dosCarte.gif" alt="" id="carte03" onclick="clicCartes(this)"/>
         <img class="carte" src="dosCarte.gif" alt="" id="carte04" onclick="clicCartes(this)"/>
         <img class="carte" src="dosCarte.gif" alt="" id="carte05" onclick="clicCartes(this)"/>
         <img class="carte" src="dosCarte.gif" alt="" id="carte06" onclick="clicCartes(this)"/>
         <img class="carte" src="dosCarte.gif" alt="" id="carte07" onclick="clicCartes(this)"/>
    </div>
     
     
    <div class="droite">
    Les règles de jeu de Memory sont assez simples.
    <br /><br />
    Un jeu de Memory est composé d'un nombre donné de paires indentiques de cartes imagées.
    Toutes les cartes partagent un dos et des dimensions identiques qui empêchent qu'elles
    puissent être reconnues une fois retournées.
    <br /><br />
    Au début d'une partie, les cartes sont mélangées puis sont disposées retournées et chaque joueur,
    à tour de rôle, retourne deux cartes. Si les deux cartes retournées sont identiques, leurs deux faces
    imagées étant les mêmes, le joueur empoche les deux cartes et continue de jouer, c'est à dire
    de retourner deux nouvelles cartes. Si les deux cartes retournées diffèrent,
    les deux cartes sont retournées à nouveau, faces cachées, et c'est au joueur suivant de jouer.
    Le but du jeu est de collectionner le plus grand nombre de cartes possibles, ce qui est obtenu
    en mémorisant au mieux l'emplacement de chaque  carte qui a été précédemment retournée de telle
    sorte que sa carte jumelle retournée, les joueurs puissent reformer la paire, en devinant,
    face cachée, son emplacement dans le jeu.
    </div>
     
     
    </body>
     
    </html>

    Pour être sûr que tu comprends : explique moi les fonctions melangerCartes() et clicCartes()
    Et indique moi, ce que tu ne comprends pas.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut voilà ce que je comprend...
    Tout d'abord je te remercie de prendre un peu de ton temps pour me répondre. C'est super sympa!

    Je fais aussi un peu d'actionscript avec Flash et je comprend un peu le javascript grâce à ca. Le prof avait donné le code mais dans le désordre et je ne savais pas trop où le mettre. Donc c'est dans un coin à part avant le html et on ne les "mélange" pas. Mon code ne fonctionnait pas.


    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--

    // tu définis un style css (je l'ai mis dans un autre fichier style.css)

    // corps du document total
    body{
    margin: 10px;
    }
    // partie gauche où il y a les cartes
    .gauche{
    width: 47%;
    float: left;
    margin: 5px;
    border: 1px solid #AAAAAA;
    // ca parle du bord de la carte pourquoi solid?
    padding: 5px;
    }
    // les cartes
    .carte{
    float: left;
    border: 2px ridge #AAAAAA;
    // ca parle du bord de la carte pourquoi ridge?
    width: 50px;
    height: 50px;
    margin: 2px;
    cursor: pointer;
    }


    // là je sais pas ce que c'est: "cursor: pointer;" j'imagine que c'est en rapport avec la souris?

    // côté droit(: où je met les règles du jeu, le hight score, la touche rejouer et effacer)
    .droite{
    width: 43%;
    float: right;
    margin: 5px;
    border: 1px solid #AAAAAA;
    padding: 5px;
    }

    //-->
    </style>
    // début du code javascript
    <script type="text/javascript">
    <!--


    // là tu définis une variable qui contiens 4 cartes


    var cartes = new Array();
    cartes[0] = "images/i1.gif"; cartes[1] = "images/i2.gif";
    cartes[2] = "images/i3.gif"; cartes[3] = "images/i4.gif";

    // Là les cartes sont multipliées par 2 pour en faire 8

    var nbCartes = cartes.length*2;

    /****************** Script ************************/
    /** Variables globales **/
    var cartesMelangees = new Array();
    var carte1 = null;
    var carte2 = null;

    /** Fonction pour melanger les 32 cartes **/
    function melangerCartes()
    {
    var i, x, m;

    m = nbCartes;

    i et x ne sont pas définis?

    // Ca c'est une boucle qui défini le nombre, la fréquence: i++,
    i doit être inférieur à m et augmenter de +1


    for (i=0; i<m; i++)
    cartesMelangees[i] = -1; //initilisation du tableau

    i = 0;
    while (i<m)
    {
    x = Math.round(Math.random()*m); //on tire un nombre entre 0 et 32

    // le code calcule tout seul des valeurs mathématiques, arrondies, pas de virgule

    /* while doit être un test conditionnel? avec 2 conditions -1 && x>0 on mélange les cartes et x doit être compris entre -1 et supérieur à 1 donc doit être 0?*/

    while (cartesMelangees[x]!=-1 && x>0)
    x--;

    /*
    je ne comprend pas pourquoi on parle de valeurs négatives x--;

    Encore des conditions if (x<m && x>=0)*/


    if (x<m && x>=0)
    {
    if (cartesMelangees[x]==-1)
    {
    cartesMelangees[x] = i;
    i++;
    }
    }
    }
    alert(cartesMelangees);

    /* ca c'est un message d'alerte pour le joueur*/
    }


    function clicCartes(carte)
    {
    var n1, n2, i1, i2;

    /* des variables: n et i sur 2 cartes*/

    if (carte1==null)
    /* comprend pas cette ligne: "null"*/
    {
    carte1 = carte;
    alert("Vous avez cliquez sur "+carte1.id);
    }
    else
    {
    carte2 = carte;

    if (carte1==carte2)
    {
    /* message pour prévenir que le joueur a cliqué 2 fois sur la même carte*/

    alert("vous avez cliquez deux fois sur la même carte !");
    }
    else
    {
    alert("Vous avez cliquez sur "+carte1.id+" et "+carte2.id);

    n1 = parseInt(carte1.id.replace("carte",""));
    n2 = parseInt(carte2.id.replace("carte",""));

    /*n1 et n2 parlent de 2 cartes mais après comprend pas grand chose:carte1.id.replace("carte",""), on remplace la carte par une autre entre les ""?*/

    /* là il y a un rapport fait entre les cartes mélangées et la longueur des cartes(: le nombre total?) surement pour retrouver les paires associées!*/

    i1 = cartesMelangees[n1];
    if (i1>=cartes.length)
    i1 = i1-cartes.length;

    i2 = cartesMelangees[n2];
    if (i2>=cartes.length)
    i2 = i2-cartes.length;

    alert("Images correspondantes: "+cartes[i1]+" "+cartes[i2]);
    }
    /* Remise à zéro */
    carte1 = null;
    carte2 = null;
    }
    }
    // retours au code html
    //-->
    </script>

    </head>

    <body onload="melangerCartes()">
    <div class="gauche">
    <img class="carte" src="dosCarte.gif" alt="" id="carte00" onclick="clicCartes(this)"/>
    <img class="carte" src="dosCarte.gif" alt="" id="carte01" onclick="clicCartes(this)"/>
    <img class="carte" src="dosCarte.gif" alt="" id="carte02" onclick="clicCartes(this)"/>
    <img class="carte" src="dosCarte.gif" alt="" id="carte03" onclick="clicCartes(this)"/>
    <img class="carte" src="dosCarte.gif" alt="" id="carte04" onclick="clicCartes(this)"/>
    <img class="carte" src="dosCarte.gif" alt="" id="carte05" onclick="clicCartes(this)"/>
    <img class="carte" src="dosCarte.gif" alt="" id="carte06" onclick="clicCartes(this)"/>
    <img class="carte" src="dosCarte.gif" alt="" id="carte07" onclick="clicCartes(this)"/>
    </div>


    <div class="droite">
    Les règles de jeu de Memory sont assez simples.
    <br /><br />
    Un jeu de Memory est composé d'un nombre donné de paires indentiques de cartes imagées.
    Toutes les cartes partagent un dos et des dimensions identiques qui empêchent qu'elles
    puissent être reconnues une fois retournées.
    <br /><br />
    Au début d'une partie, les cartes sont mélangées puis sont disposées retournées et chaque joueur,
    à tour de rôle, retourne deux cartes. Si les deux cartes retournées sont identiques, leurs deux faces
    imagées étant les mêmes, le joueur empoche les deux cartes et continue de jouer, c'est à dire
    de retourner deux nouvelles cartes. Si les deux cartes retournées diffèrent,
    les deux cartes sont retournées à nouveau, faces cachées, et c'est au joueur suivant de jouer.
    Le but du jeu est de collectionner le plus grand nombre de cartes possibles, ce qui est obtenu
    en mémorisant au mieux l'emplacement de chaque carte qui a été précédemment retournée de telle
    sorte que sa carte jumelle retournée, les joueurs puissent reformer la paire, en devinant,
    face cachée, son emplacement dans le jeu.
    </div>


    </body>

    </html>

  8. #8
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    as-tu testé ce code que je t'ai précédemment donné ?

    // pourquoi solid?
    //pourquoi ridge?
    j'avais envie d'appliquer ces styles , c'est tout

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cursor: pointer;
    le curseur prend la forme d'une main


    Donc voici des explications plus détaillées :
    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
     
    function melangerCartes()
    {
     var i, x, m; //variables déclarées mais pas initialisées (ne pas confondre les termes)
     
     m = nbCartes;//m = nombre total de carte (ici 8)
     
     for (i=0; i<m; i++)
       cartesMelangees[i] = -1; 
     //initilisation du tableau, toutes les cases contiennent -1
     
     i = 0;  //initialisation de i
     while (i<m)
     {
       x = Math.round(Math.random()*m);     //on tire un nombre entre 0 et 32
     
       //cette boucle c'est dans le cas où on a déjà tiré le numéro x
       //on recherche en décrémentant 1 à x une autre valeur (c'est pour accélérer l'exécution du script)
       while (cartesMelangees[x]!=-1 && x>0)
          x--;
     
       if (x<m && x>=0) // pour être sûr que x soit dans l'intervalle défini [0;32[
       {
          if (cartesMelangees[x]==-1) //si la case x contient -1
          {
            cartesMelangees[x] = i;  //alors on place i dans la case x
            i++;                     //on ajoute 1 à i
          }
       }
     }
     alert(cartesMelangees); 
     //ce n'est pas pour le joueur...
     //c'est pour te montrer dans quel ordre sont les cartes....
     //et te faire comprendre comment fonctionne cette fonction
    }

    Pour comprendre clicCartes(), il faut lire le code HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <img class="carte" src="dosCarte.gif" alt="" id="carte00" onclick="clicCartes(this)"/>
    Regarde les paramètres de la balise img, entre autres le src, l'id et le onclick.
    Lors du clic sur l'image, tu exécutes clicCartes() et tu transmets à cette fonction grâce au mot clef this, le contenu de l'objet (src, id, alt et autres propriétés) qui appelle cette fonction.


    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
     
    function clicCartes(carte)
    {
      var n1, n2, i1, i2;
     
      //carte1 et carte2 sont des variables globales initialisée à null donc si carte1 == null
      //cela veut dire que le joueur n'a pas sélectionné une première carte
      if (carte1==null)
      {
      	carte1 = carte; //à ce moment carte1 contient carte
     
        alert("Vous avez cliquez sur "+carte1.id);
     
        //code à complèter ;)
        //il faut afficher la carte retournée
      }
      else
      {
     	  //si carte1!=null c'est que le joueur a choisi une première carte
          //donc on met dans carte2 le contenu de carte
       	  carte2 = carte;
     
      	  if (carte1==carte2)
          {
             alert("vous avez cliquez deux fois sur la même carte !");
          }
          else
          {
             alert("Vous avez cliquez sur "+carte1.id+" et "+carte2.id);
     
             //replace() s'applique aux chaines de caractères ! cf. google ;)
             //on remplace le mot carte par... rien
             //regarde le code HTML : l'id des images : "carte00", "carte01", "carte02", etc...
             //si je remplace dans l'id le terme "carte" par rien que reste-t-il ? "00", "01","02"...
     
             //parseInt, lui, permet de convertir un nombre sous forme de chaine de cractères en nombre entier
             //donc "00" devient 0, "01" devient 1, "02" devient 2
             //n1 et n2 sont donc des nombres.
     
             n1 = parseInt(carte1.id.replace("carte",""));
             n2 = parseInt(carte2.id.replace("carte",""));
     
             i1 = cartesMelangees[n1];   //on récupère la case n1 de cartesMelangees
             if (i1>=cartes.length)
                 i1 = i1-cartes.length;
     
             i2 = cartesMelangees[n2];  //on récupère la case n2 de cartesMelangees
             if (i2>=cartes.length)
                 i2 = i2-cartes.length;
     
             //i1 et i2 correspond aux indices des images contenues dans le tableau cartes
             alert("Images correspondantes: "+cartes[i1]+" "+cartes[i2]);
     
             //....suite du code
             //que faire si i1==i2 ou si i1!=i2 ??
          }
     
          carte1 = null;   //on redonne à carte1 et carte2 leurs valeurs initiales (null)
          carte2 = null;   //le joueur peut sélectionner deux autres cartes.
      }
    }
    Les messages d'alert que j'ai écrit dans le code c'est pour toi et te faire comprendre comment le code fonctionne.

  9. #9
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut cadeau
    allez cadeau un jeu complet (8 cartes) :
    j'ai ajouté des fonctionnalité à clicCartes.

Discussions similaires

  1. Création d'un jeu Memory en VBA
    Par bandofbrothers dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 15/05/2014, 17h10
  2. Jeu memory en java
    Par baffreux dans le forum Applets
    Réponses: 7
    Dernier message: 21/10/2013, 22h30
  3. Quel langage pour jeu vidéo débutant ?
    Par MedianP dans le forum Débuter
    Réponses: 11
    Dernier message: 08/07/2011, 07h07
  4. Réponses: 1
    Dernier message: 15/03/2007, 20h16
  5. [LG] Jeu mémory : initialisation de tableau
    Par DarkLords dans le forum Langage
    Réponses: 1
    Dernier message: 19/10/2005, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo