Bonjour,
Voici un petit script dans une page HTML qui sert de petit jeu du "plus ou moins".
On tire un nombre aléatoire entre 1 et 10, on le devine, on a un score en nombre de coups et un temps calculé en secondes.
Je dois remplir un tableau des 10 meilleurs joueurs classés selon le temps mis pour trouver le nombre cherché.
Seulement, je ne sais pas comment faire pour le mettre à jour à chaque fois qu'un joueur a joué. (C'est dans le else où il y a le commentaire, "insérer le temps à la position i").
Voici le code:
Chaque case du tableau doit être identifié selon un identifiant unique.
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 <html> <head> <title>Mes premiers pas en Javascript : DOM et Javascript jeu du plus ou moins</title> <meta http-equiv="Content-Type" content="text/html; charset=utf8"> <style type = "text/css"> h2{ color:#000080; text-align:center; } body{ background-color: #778899; } p{ color:#000080; } </style> <script type="text/javascript"> tab = new Array(10); function init() { for(var i=0;i<tab.length;i++){ tab[i] = new Object(); tab[i].Nom="...."; tab[i].Temps=1000; tab[i].Nombre=1000; } } function aleatoire() { x = Math.floor(Math.random()*10); //Donne un nb entier aleatoire entre 1 et 10 alert("X="+x); //Affiche le nombre à deviner cpt = 1; //compteur de coups var t1,t2; t1 = new Date; do{ nbchaine=prompt("Donnez un nombre entier compris entre 1 et 10 ou stop pour terminer"); if (nbchaine == "stop") return; //Si on rentre "stop" la fonction s'arrête nombre = parseInt(nbchaine); //Convertit la chaine en nombre if(nombre > x){ //Si le nombre saisi est supérieur au nombre cherché x cpt++; alert("Raté, c'est plus petit !"); }else{ if(nombre < x) { cpt++; alert("raté, c'est plus grand !"); } } if(nombre == x){ t2 = new Date; alert("Bravo, vous avez trouvé ! Nombre de coups : "+cpt); var temps=((t2.getTime()-t1.getTime())/1000); //Donne le temps ecoule entre t1 et t2 alert("Temps écoulé en secondes :"+temps); } } while (nombre != x); for(var i=0;(i<tab.length)&&(temps>tab[i].Temps);i++){ if (i==tab.length) { alert("Désolé, pas dans le top 10 !"); } else { // inserer temps dans le top 10 a la position i } } } </script> </head> <body onload="init()"> <h2> Bienvenue au "JEU DU PLUS OU MOINS" </h2><br/> <p>Veuillez cliquer sur le bouton pour lancer le jeu : <button onclick="aleatoire()">Jouer</button></p><br/> <table summary="Tableau des joueurs" border=15px width=35% bgcolor=grey> <caption align=bottom>Tableau des meilleurs joueurs</caption> <thead> <!--Description des colonnes--> <tr> <th id="id1">Rang</th> <th id="id2">Nom</th> <th id="id3">Nombre</th> <th id="id4">Temps</th> </tr> </thead> <tbody> <tr> <!--Remplissage des lignes--> <td headers="rang1">1</td> <td headers="nom1"> </td> <td headers="nombre1"> </td> <td headers="temps1"> </td> </tr> <tr> <td headers="rang2">2</td> <td headers="nom2"> </td> <td headers="nombre2"> </td> <td headers="temps2"> </td> </tr> <tr> <td headers="rang3">3</td> <td headers="nom3"> </td> <td headers="nombre3"> </td> <td headers="temps3"> </td> </tr> <tr> <td headers="rang4">4</td> <td headers="nom4"> </td> <td headers="nombre4"> </td> <td headers="temps4"> </td> </tr> <tr> <td headers="rang5">5</td> <td headers="nom5"> </td> <td headers="nombre5"> </td> <td headers="temps5"> </td> </tr> <tr> <td headers="rang6">6</td> <td headers="nom6"> </td> <td headers="nombre6"> </td> <td headers="temps6"> </td> </tr> <tr> <td headers="rang7">7</td> <td headers="nom7"> </td> <td headers="nombre7"> </td> <td headers="temps7"> </td> </tr> <tr> <td headers="rang8">8</td> <td headers="nom8"> </td> <td headers="nombre8"> </td> <td headers="temps8"> </td> </tr> <tr> <td headers="rang9">9</td> <td headers="nom9"> </td> <td headers="nombre9"> </td> <td headers="temps9"> </td> </tr> <tr> <td headers="rang10">10</td> <td headers="nom10"> </td> <td headers="nombre10"> </td> <td headers="temps10"> </td> </tr> </tbody> </table> </body> </html>
Donc pour remplir une case, il faut chercher l'objet possédant cet identifiant dans le DOM et modifier son champ .innerHTML mais je ne sais pas comment on fait ici.
Merci.
Partager