How to Create a 2D Snake Game in Flutter

Jan 17 2023 · Dart 2.17, Flutter 3.0, Android Studio or VS Code

Part 1: How to Create a 2D Snake Game in Flutter

13. Restarting the Game

Episode complete

Play next episode

Next
About this episode
Leave a rating/review
See forum comments
Cinema mode Mark complete Download course materials
Previous episode: 12. Show Game Over Dialog Next episode: 14. Adding Game Score

Get immediate access to this and 4,000+ other videos and books.

Take your career further with a Kodeco Personal Plan. With unlimited access to over 40+ books and 4,000+ professional videos in a single subscription, it's simply the best investment you can make in your development career.

Learn more Already a subscriber? Sign in.

Notes: 13. Restarting the Game

Reinitialize all the variables in the restart method.

Transcript: 13. Restarting the Game

We have the game-over dialog showing up whenever the Snake collides with the play-area boundaries. However, tapping on the Restart button does not restart the game from scratch.

In this episode, you will be writing the code to reset all the variables back to their original value which will automatically retstart the game.

Let’s begin.

In the restart method, add the following code.

void restart() {
    length = 5;
    positions = [];
    direction = getRandomDirection();
    speed = 1;
    changeSpeed();
}

In the above code, we are

  • reseting the length to 5 so that Snake’s length is reset.
  • clearing the positions list
  • setting the direction to a new random direction using getRandomDirection
  • reseting the speed to 1 so the Snake’s speed is reset.

That was simple, right? Let’s save the changes and restart the app.

Play the game and when you unfortunately collide with any of the play-area boundary, you will see the game-over dialog.

In the dialog, when you tap the Restart button in the dialog, the game should restart from scratch and the Snake should start from a new random position in a new random direction.

One thing that you would notice is that the dialog always shows score as 0. That’s because we have not yet implemented the scoring feature. Let’s do that in the next episode.