Snake away with a .NET Gadgeteer arcade console and Snake game

Description

Hardware Friday's have been pretty .Net Gadgeteer focused lately, I know. Next week I'll dig through my story archive list and find something different, but being a child of the 80's I couldn't resist this project. I've always wanted my own arcade console, and while this isn't an Asteroids or Ms PacMan, the fact that you build the hardware and code it up from the ground floor almost makes it better... (well... almost...

Relive the days of classic arcade games with this gorgeous do-it-yourself miniature arcade console. It’s equipped with a touch screen, joystick and Ethernet port for fun multiplayer action! Pay tribute to your favorite classic game or invent your own!

The Arcade console is an implementation of the Snake video game. There are many versions of this game. In this version the .NET Gadgeteer Display T35 module and .NET Gadgeteer Timer are used to display the snake and a pellet of food and to move them around the display window. A joystick sends user input that controls the movement of the snake. The object of the game is to move the snake into a collision with the food pellet, which makes the snake grow longer.

The code for the Arcade console demonstrates many features of the Display T35 module, the .NET Gadgeteer WPF Window class, and .NET Micro Framework Canvas class. The implementation of the GameEngine, GameCanvas, and Sprite classes illustrates the use of bitmap resources and drawing on the canvas. Two timers are running while the game is in progress. One timer randomly advances the food pellet and another moves the snake as directed by the user from the joystick. Math classes are used in the positioning of the sprites.

The C# program runs on a GHI Electronics Fez Spider mainboard powered by the Dual Power module, which can be used with a battery or USB power. The USB connection must be connected initially to deploy assemblies to the mainboard. An Ethernet module is included to support extensibility for multiple players.