Workshop › Simon Says Colors › Step 21 of 27

A function for a new game

What we are doing

A new game means an empty sequence, no light, and a first round. We collect that in one function, reset, and the first game starts through it too.

```js
let sequence // the pads to repeat, growing by one every round

let lit // the pad lit right now, or -1
let litFor

function reset() {
  sequence = []
  lit = -1
  litFor = 0
  nextRound()
}

reset()
requestAnimationFrame(loop)
```

What it means

Your turn

  1. Remove the values from let sequence, let lit and let litFor (keep the comments).
  2. Under let litFor, leave an empty line and write reset.
  3. At the very bottom, replace nextRound() with reset().

Skills: Game states, Functions

All steps

  1. Get the canvas and the pen
  2. A dark board
  3. The first pad
  4. Two colors for every pad
  5. All four pads
  6. A function that draws
  7. Light a pad
  8. Draw again and again
  9. The sequence to remember
  10. Show the round
  11. Light a pad for a while
  12. Go dark again
  13. The computer shows a pad
  14. Show the whole sequence
  15. Watch, then your turn
  16. Check each press
  17. Play with the keyboard
  18. Which pad is at a point?
  19. Play with the mouse
  20. Progress and mistakes
  21. A function for a new game
  22. Click to retry
  23. Light up when pressed
  24. Faster and faster
  25. Save the best score
  26. Show the best score
  27. Build it yourself: no dawdling