Snake game for a 5x5 LED matrix
main.cpp
- 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 "ledCube.h"
#include "snake.h"
#include "main.h"
snake mySnake(snakeStartRow,snakeStartCol);
food myFood(foodStartRow, foodStartCol);
ledCube cube;
AnalogIn joyVer(p19);
AnalogIn joyHor(p18);
DigitalIn select(p17);
int main()
{
printf("Start\n");
int snakeUpdateCounter = 0;
cube.turnOnLed(snakeStartRow, snakeStartCol, 0);
updateFoodLed();
printf("Setup Complete\n");
while(1) {
// Update snake position if we are greater than the set movement speed
if(snakeUpdateCounter++ >= mySnake.movementSpeed) {
snakeUpdateCounter = 0;
if(mySnake.moveSnake(cube)) {
cube.blink();
}
if(checkForSnakeEating()) {
myFood.moveFood(rand() % 5, rand() % 5);
updateFoodLed();
}
}
updateDirectionInput();
wait(.1);
}
}
bool checkForSnakeEating()
{
return mySnake.isEating(myFood.currRow, myFood.currCol);
}
void updateFoodLed()
{
cube.turnOnLed(myFood.currRow, myFood.currCol, 0);
}
void updateDirectionInput(){
float verValue, horValue;
int pushed;
select.mode(PullUp);
verValue = joyVer;
horValue = joyHor;
pushed = select;
if(horValue < .4){
mySnake.movementDirection = Left;
printf("Left\n");
}
else if(horValue > .6){
mySnake.movementDirection = Right;
printf("Right\n");
}
if(verValue < .4){
mySnake.movementDirection = Down;
printf("Down\n");
}
else if(verValue > .6){
mySnake.movementDirection = Up;
printf("Up\n");
}
}