A simple two button snake.

Dependencies:   microbit

A Snake Game with animation, score and continuous play

Steps:

  • Switch On.
  • Snake animation plays.
  • Game starts.
  • Press buttons to move the snake left, right, up and down.
  • Food appears as a dot on the display.
  • Try eating the food by manoeuvring Snake to run over it.
  • Snake grows as it eats food.
  • As it grows it becomes hard to avoid snake biting itself.
  • Game Over.
  • Snake is flashed and then score is scrolled.
  • Game restarts after replaying animation.

Controls:

  • Left Button (A)
    • If snake moving UP/DOWN moves snake to LEFT.
    • If snake moving LEFT moves snake to DOWN.
    • If snake moving RIGHT moves snake to UP.
  • Right Button (B)
    • If snake moving UP/DOWN moves snake to RIGHT.
    • If snake moving LEFT moves snake to UP.
    • If snake moving RIGHT moves snake to DOWN.

How it looks:

https://www.youtube.com/watch?v=unEs3NOvIKA

Binary to play with

/media/uploads/mazimkhan/microbit_snake_nrf51_microbit.hex

Files at this revision

API Documentation at this revision

Comitter:
mazimkhan
Date:
Wed Apr 13 15:03:44 2016 +0000
Parent:
4:9fd9402eca3d
Commit message:
Changed random max to 5 to allow value between 0-4 for x,y coordinates. Otherwise we are stuck in an endless loop trying find good snake food!

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Tue Apr 12 12:08:38 2016 +0000
+++ b/main.cpp	Wed Apr 13 15:03:44 2016 +0000
@@ -403,8 +403,8 @@
             // Put food
             if (foodx == -1 && foody == -1){
                 while (true){
-                    int x = uBit.random(4);
-                    int y = uBit.random(4);
+                    int x = uBit.random(5);
+                    int y = uBit.random(5);
                     
                     if (isGoodFood(x, y)){
                         foodx = x;