@@ -177,6 +177,7 @@ <h3 id="results-accuracy"></h3>
177
177
178
178
let words = [ ]
179
179
let currentTime = INITIAL_TIME
180
+ let playing
180
181
181
182
initGame ( )
182
183
initEvents ( )
@@ -186,6 +187,8 @@ <h3 id="results-accuracy"></h3>
186
187
$results . style . display = 'none'
187
188
$input . value = ''
188
189
190
+ playing = false
191
+
189
192
words = INITIAL_WORDS . toSorted (
190
193
( ) => Math . random ( ) - 0.5
191
194
) . slice ( 0 , 50 )
@@ -208,25 +211,28 @@ <h3 id="results-accuracy"></h3>
208
211
const $firstWord = $paragraph . querySelector ( 'word' )
209
212
$firstWord . classList . add ( 'active' )
210
213
$firstWord . querySelector ( 'letter' ) . classList . add ( 'active' )
211
-
212
- const intervalId = setInterval ( ( ) => {
213
- currentTime --
214
- $time . textContent = currentTime
215
-
216
- if ( currentTime === 0 ) {
217
- clearInterval ( intervalId )
218
- gameOver ( )
219
- }
220
- } , 1000 )
221
214
}
222
215
223
216
function initEvents ( ) {
224
217
document . addEventListener ( 'keydown' , ( ) => {
225
218
$input . focus ( )
219
+ if ( ! playing ) {
220
+ playing = true
221
+ const intervalId = setInterval ( ( ) => {
222
+ currentTime --
223
+ $time . textContent = currentTime
224
+
225
+ if ( currentTime === 0 ) {
226
+ clearInterval ( intervalId )
227
+ gameOver ( )
228
+ }
229
+ } , 1000 )
230
+ }
226
231
} )
227
232
$input . addEventListener ( 'keydown' , onKeyDown )
228
233
$input . addEventListener ( 'keyup' , onKeyUp )
229
234
$button . addEventListener ( 'click' , initGame )
235
+
230
236
}
231
237
232
238
function onKeyDown ( event ) {
0 commit comments