Snake game for a 5x5 LED matrix

Dependencies:   MCP23S17 mbed

snake.h

Committer:
dhamilton31
Date:
2013-10-17
Revision:
1:5fcb94bb03db
Parent:
0:dc906408980e
Child:
2:9c075a0a6d4e

File content as of revision 1:5fcb94bb03db:

#include "mbed.h"
#include "bodyPiece.h"
#include <list>
#include "ledCube.h"

#ifndef SNAKE_H
#define SNAKE_H

// Macros
#define START_DIRECTION Up
#define START_SPEED 10
// Zero indexed number of columns and rows
#define NUM_COLS 4
#define NUM_ROWS 4

typedef enum {
    Up,Down,Left,Right
} Direction;

class snake
{
public:

    // constructor
    snake(char startRow, char startCol);
    
    // public variables
    int movementSpeed; // Speed at which the snake is moving
    Direction movementDirection; // Direction in which the snake is moving
    int bodySize; // Size of the snake's body
    std::list<bodyPiece> snakeBody;
    
    // Function Prototypes
    char moveSnake(ledCube cube); // Moves the snake by one in the direction of movementDirection
                      // Will return 1 if out of bounds or if the head has hit a bodyPiece, 0 if still in the boundaries
    void addPiece(); // Adds a bodyPiece to the tail
    bool isEating(char foodRow, char foodCol);

private:
    char move(char newHeadRow, char newHeadCol, ledCube cube);
};

class food
{
public:
    char currRow, currCol;
    food(char row, char col);
    void moveFood(char row, char col);
};

#endif // SNAKE_H