Workshop › Breakout › Step 27 of 39

Three lives

What we are doing

Each lost ball costs one of three lives. With lives left, the ball goes back to the paddle; with none, the game is 'lost' and the ball stops.

```js
let lives = 3

  if (state !== 'playing') return

  if (ball.y - BALL_R > canvas.height) {
    lives -= 1
    if (lives === 0) state = 'lost'
    else resetBall()
  }
```

What it means

Your turn

  1. Above let state write let lives = 3.
  2. In update, right under the serve block's }, write if (state !== 'playing') return.
  3. Replace the last line of update with the new if block.

Skills: Game states

All steps

  1. The field and the paddle
  2. Draw again and again
  3. Keep a number inside limits
  4. Follow the mouse
  5. A canvas shown at another size
  6. A ball with a velocity
  7. Draw a round ball
  8. Move the ball
  9. Bounce off the side walls
  10. Bounce off the ceiling
  11. The open floor
  12. Bounce off the paddle
  13. Aim with the paddle
  14. A row of bricks
  15. Draw the bricks
  16. A whole wall: a loop inside a loop
  17. A color for every row
  18. Circle meets box
  19. Break a brick
  20. Hitting the side of a brick
  21. Wait on the paddle
  22. Ride along with the paddle
  23. Launch the ball
  24. Click or press Space
  25. Remember which keys are held
  26. Steer with the arrow keys
  27. Three lives
  28. Lives and a hint on screen
  29. Game over
  30. Keep score
  31. Show the score
  32. Win the game
  33. One function for a new game
  34. Play again
  35. A burst of particles
  36. Break into sparks
  37. Move, fall and disappear
  38. Fade out
  39. Build it yourself: tough bricks