Snake vs Block Game to be run upon K64F.

Dependencies:   mbed

Committer:
AhmedPlaymaker
Date:
Fri Apr 05 05:46:11 2019 +0000
Revision:
16:7b474f873683
Parent:
13:9785f2404045
Child:
18:b391caa5754c
Added speed controls and end condition

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AhmedPlaymaker 7:48ba87cd79b5 1 #ifndef SNAKEVSBLOCK_H
AhmedPlaymaker 7:48ba87cd79b5 2 #define SNAKEVSBLOCK_H
AhmedPlaymaker 7:48ba87cd79b5 3
AhmedPlaymaker 7:48ba87cd79b5 4 #include "mbed.h"
AhmedPlaymaker 7:48ba87cd79b5 5 #include "N5110.h"
AhmedPlaymaker 7:48ba87cd79b5 6 #include "Gamepad.h"
AhmedPlaymaker 7:48ba87cd79b5 7 #include "Snake.h"
AhmedPlaymaker 9:d1d79d4ee673 8 #include "SnakeFood.h"
AhmedPlaymaker 10:751bd953fa27 9 #include "Blocks.h"
AhmedPlaymaker 7:48ba87cd79b5 10
AhmedPlaymaker 7:48ba87cd79b5 11 class SnakevsBlock
AhmedPlaymaker 7:48ba87cd79b5 12 {
AhmedPlaymaker 7:48ba87cd79b5 13 public:
AhmedPlaymaker 7:48ba87cd79b5 14 SnakevsBlock();
AhmedPlaymaker 7:48ba87cd79b5 15 ~SnakevsBlock();
AhmedPlaymaker 7:48ba87cd79b5 16
AhmedPlaymaker 7:48ba87cd79b5 17 /** Initialise Game Machine
AhmedPlaymaker 7:48ba87cd79b5 18 *
AhmedPlaymaker 7:48ba87cd79b5 19 * This function initialises the game machine.
AhmedPlaymaker 7:48ba87cd79b5 20 */
AhmedPlaymaker 7:48ba87cd79b5 21 void init( );
AhmedPlaymaker 7:48ba87cd79b5 22
AhmedPlaymaker 7:48ba87cd79b5 23 /** Read Input
AhmedPlaymaker 7:48ba87cd79b5 24 *
AhmedPlaymaker 7:48ba87cd79b5 25 * This function obtains numeric data from the gamepads joystick.
AhmedPlaymaker 7:48ba87cd79b5 26 */
AhmedPlaymaker 7:48ba87cd79b5 27 void read_input(Gamepad &pad);
AhmedPlaymaker 7:48ba87cd79b5 28
AhmedPlaymaker 7:48ba87cd79b5 29 /** Update
AhmedPlaymaker 7:48ba87cd79b5 30 *
AhmedPlaymaker 7:48ba87cd79b5 31 * This function contains the update functions of the other libraries used in the game.
AhmedPlaymaker 7:48ba87cd79b5 32 */
AhmedPlaymaker 7:48ba87cd79b5 33 void update(Gamepad &pad);
AhmedPlaymaker 7:48ba87cd79b5 34
AhmedPlaymaker 7:48ba87cd79b5 35 /** Draw
AhmedPlaymaker 7:48ba87cd79b5 36 *
AhmedPlaymaker 7:48ba87cd79b5 37 * This function contains the draw functions of the other libraries used in the game.
AhmedPlaymaker 7:48ba87cd79b5 38 */
AhmedPlaymaker 7:48ba87cd79b5 39 void draw(N5110 &lcd, Gamepad &pad);
AhmedPlaymaker 7:48ba87cd79b5 40
AhmedPlaymaker 7:48ba87cd79b5 41 /** Get Position
AhmedPlaymaker 7:48ba87cd79b5 42 *
AhmedPlaymaker 7:48ba87cd79b5 43 * This function contains the Get Position functions of the otehr libraries used in the game.
AhmedPlaymaker 7:48ba87cd79b5 44 */
AhmedPlaymaker 7:48ba87cd79b5 45 void get_pos();
AhmedPlaymaker 7:48ba87cd79b5 46
AhmedPlaymaker 7:48ba87cd79b5 47
AhmedPlaymaker 7:48ba87cd79b5 48 int snakex;
AhmedPlaymaker 7:48ba87cd79b5 49 int snakey;
AhmedPlaymaker 7:48ba87cd79b5 50 int length;
AhmedPlaymaker 9:d1d79d4ee673 51 int foodbuff; //this makes food 1,2,and 3 come at seperate times
AhmedPlaymaker 12:1e601b176437 52 int blocknum;
AhmedPlaymaker 16:7b474f873683 53 int blockgap;
AhmedPlaymaker 12:1e601b176437 54 int srn;
AhmedPlaymaker 12:1e601b176437 55 int send; //makes sure that the block number is only updated when send is activated.
AhmedPlaymaker 13:9785f2404045 56 int speed; //makes sure that snake only moves if not colliding to block walls
AhmedPlaymaker 12:1e601b176437 57 //int memory; //this remembers the previous y pos of the block.
AhmedPlaymaker 12:1e601b176437 58 //int blocknumt; // this is also a memeory number to make sure length doesnt't keep decreasing by itself
AhmedPlaymaker 7:48ba87cd79b5 59
AhmedPlaymaker 7:48ba87cd79b5 60 private:
AhmedPlaymaker 7:48ba87cd79b5 61
AhmedPlaymaker 7:48ba87cd79b5 62 Snake _s;
AhmedPlaymaker 9:d1d79d4ee673 63 SnakeFood _f;
AhmedPlaymaker 9:d1d79d4ee673 64 SnakeFood _ff;
AhmedPlaymaker 9:d1d79d4ee673 65 SnakeFood _fff;
AhmedPlaymaker 10:751bd953fa27 66 Blocks _b;
AhmedPlaymaker 7:48ba87cd79b5 67 int _speed;
AhmedPlaymaker 7:48ba87cd79b5 68 Direction _d;
AhmedPlaymaker 7:48ba87cd79b5 69 float _mag;
AhmedPlaymaker 7:48ba87cd79b5 70 int n;
AhmedPlaymaker 7:48ba87cd79b5 71
AhmedPlaymaker 9:d1d79d4ee673 72 /** Check for Snake and Food collision
AhmedPlaymaker 9:d1d79d4ee673 73 *
AhmedPlaymaker 9:d1d79d4ee673 74 * This function checks if the Snake has come into contact with it's food.
AhmedPlaymaker 9:d1d79d4ee673 75 */
AhmedPlaymaker 9:d1d79d4ee673 76 void CheckSnakeFoodCollision(Gamepad &pad);
AhmedPlaymaker 9:d1d79d4ee673 77
AhmedPlaymaker 12:1e601b176437 78 /** Check for Snake and Block collision
AhmedPlaymaker 12:1e601b176437 79 *
AhmedPlaymaker 12:1e601b176437 80 * This function checks if the Snake has come into contact with any Block.
AhmedPlaymaker 12:1e601b176437 81 */
AhmedPlaymaker 12:1e601b176437 82 void CheckSnakeBlockCollision(Gamepad &pad);
AhmedPlaymaker 13:9785f2404045 83
AhmedPlaymaker 13:9785f2404045 84 /** Check for Snake and Block Sides collision
AhmedPlaymaker 13:9785f2404045 85 *
AhmedPlaymaker 13:9785f2404045 86 * This function checks if the Snake has come into contact with any the sides of the block and stops it moving.
AhmedPlaymaker 13:9785f2404045 87 */
AhmedPlaymaker 13:9785f2404045 88 void CheckSnakeBlockSidesCollision(Gamepad &pad, Direction d);
AhmedPlaymaker 7:48ba87cd79b5 89 };
AhmedPlaymaker 7:48ba87cd79b5 90 #endif