Snake game for a 5x5 LED matrix
main.cpp@1:5fcb94bb03db, 2013-10-17 (annotated)
- 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?
User | Revision | Line number | New 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 | } |