Snake game for a 5x5 LED matrix

Dependencies:   MCP23S17 mbed

Committer:
dhamilton31
Date:
Thu Oct 17 04:32:58 2013 +0000
Revision:
1:5fcb94bb03db
Parent:
0:dc906408980e
Child:
2:9c075a0a6d4e
Changes to just about everything

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dhamilton31 0:dc906408980e 1 #include "mbed.h"
dhamilton31 0:dc906408980e 2 #include "ledCube.h"
dhamilton31 0:dc906408980e 3 #include "snake.h"
dhamilton31 1:5fcb94bb03db 4 #include "main.h"
dhamilton31 1:5fcb94bb03db 5
dhamilton31 1:5fcb94bb03db 6 snake mySnake(snakeStartRow,snakeStartCol);
dhamilton31 1:5fcb94bb03db 7 food myFood(foodStartRow, foodStartCol);
dhamilton31 1:5fcb94bb03db 8 ledCube cube;
dhamilton31 1:5fcb94bb03db 9 AnalogIn joyVer(p19);
dhamilton31 1:5fcb94bb03db 10 AnalogIn joyHor(p18);
dhamilton31 1:5fcb94bb03db 11 DigitalIn select(p17);
dhamilton31 0:dc906408980e 12
dhamilton31 0:dc906408980e 13 int main()
dhamilton31 0:dc906408980e 14 {
dhamilton31 1:5fcb94bb03db 15 printf("Start\n");
dhamilton31 1:5fcb94bb03db 16 int snakeUpdateCounter = 0;
dhamilton31 1:5fcb94bb03db 17 cube.turnOnLed(snakeStartRow, snakeStartCol, 0);
dhamilton31 1:5fcb94bb03db 18 updateFoodLed();
dhamilton31 1:5fcb94bb03db 19 printf("Setup Complete\n");
dhamilton31 1:5fcb94bb03db 20
dhamilton31 0:dc906408980e 21 while(1) {
dhamilton31 1:5fcb94bb03db 22 // Update snake position if we are greater than the set movement speed
dhamilton31 1:5fcb94bb03db 23 if(snakeUpdateCounter++ >= mySnake.movementSpeed) {
dhamilton31 1:5fcb94bb03db 24 snakeUpdateCounter = 0;
dhamilton31 1:5fcb94bb03db 25 if(mySnake.moveSnake(cube)) {
dhamilton31 1:5fcb94bb03db 26 cube.blink();
dhamilton31 1:5fcb94bb03db 27 }
dhamilton31 1:5fcb94bb03db 28 if(checkForSnakeEating()) {
dhamilton31 1:5fcb94bb03db 29 myFood.moveFood(rand() % 5, rand() % 5);
dhamilton31 1:5fcb94bb03db 30 updateFoodLed();
dhamilton31 1:5fcb94bb03db 31 }
dhamilton31 1:5fcb94bb03db 32 }
dhamilton31 1:5fcb94bb03db 33 updateDirectionInput();
dhamilton31 1:5fcb94bb03db 34 wait(.1);
dhamilton31 0:dc906408980e 35 }
dhamilton31 1:5fcb94bb03db 36
dhamilton31 0:dc906408980e 37 }
dhamilton31 1:5fcb94bb03db 38
dhamilton31 1:5fcb94bb03db 39 bool checkForSnakeEating()
dhamilton31 1:5fcb94bb03db 40 {
dhamilton31 1:5fcb94bb03db 41 return mySnake.isEating(myFood.currRow, myFood.currCol);
dhamilton31 1:5fcb94bb03db 42 }
dhamilton31 1:5fcb94bb03db 43
dhamilton31 1:5fcb94bb03db 44 void updateFoodLed()
dhamilton31 1:5fcb94bb03db 45 {
dhamilton31 1:5fcb94bb03db 46 cube.turnOnLed(myFood.currRow, myFood.currCol, 0);
dhamilton31 1:5fcb94bb03db 47 }
dhamilton31 1:5fcb94bb03db 48
dhamilton31 1:5fcb94bb03db 49 void updateDirectionInput(){
dhamilton31 1:5fcb94bb03db 50 float verValue, horValue;
dhamilton31 1:5fcb94bb03db 51 int pushed;
dhamilton31 1:5fcb94bb03db 52 select.mode(PullUp);
dhamilton31 1:5fcb94bb03db 53 verValue = joyVer;
dhamilton31 1:5fcb94bb03db 54 horValue = joyHor;
dhamilton31 1:5fcb94bb03db 55 pushed = select;
dhamilton31 1:5fcb94bb03db 56 if(horValue < .4){
dhamilton31 1:5fcb94bb03db 57 mySnake.movementDirection = Left;
dhamilton31 1:5fcb94bb03db 58 printf("Left\n");
dhamilton31 1:5fcb94bb03db 59 }
dhamilton31 1:5fcb94bb03db 60 else if(horValue > .6){
dhamilton31 1:5fcb94bb03db 61 mySnake.movementDirection = Right;
dhamilton31 1:5fcb94bb03db 62 printf("Right\n");
dhamilton31 1:5fcb94bb03db 63 }
dhamilton31 1:5fcb94bb03db 64 if(verValue < .4){
dhamilton31 1:5fcb94bb03db 65 mySnake.movementDirection = Down;
dhamilton31 1:5fcb94bb03db 66 printf("Down\n");
dhamilton31 1:5fcb94bb03db 67 }
dhamilton31 1:5fcb94bb03db 68 else if(verValue > .6){
dhamilton31 1:5fcb94bb03db 69 mySnake.movementDirection = Up;
dhamilton31 1:5fcb94bb03db 70 printf("Up\n");
dhamilton31 1:5fcb94bb03db 71 }
dhamilton31 1:5fcb94bb03db 72 }