Snake vs Block Game to be run upon K64F.

Dependencies:   mbed

Committer:
AhmedPlaymaker
Date:
Wed Apr 03 17:51:19 2019 +0000
Revision:
13:9785f2404045
Parent:
12:1e601b176437
Child:
16:7b474f873683
Tried to make the snake such that it does not go through the blocks once it is sideways, succeeded mostly but still has some minor glitches in doing so

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 12:1e601b176437 53 int srn;
AhmedPlaymaker 12:1e601b176437 54 int send; //makes sure that the block number is only updated when send is activated.
AhmedPlaymaker 13:9785f2404045 55 int speed; //makes sure that snake only moves if not colliding to block walls
AhmedPlaymaker 12:1e601b176437 56 //int memory; //this remembers the previous y pos of the block.
AhmedPlaymaker 12:1e601b176437 57 //int blocknumt; // this is also a memeory number to make sure length doesnt't keep decreasing by itself
AhmedPlaymaker 7:48ba87cd79b5 58
AhmedPlaymaker 7:48ba87cd79b5 59 private:
AhmedPlaymaker 7:48ba87cd79b5 60
AhmedPlaymaker 7:48ba87cd79b5 61 Snake _s;
AhmedPlaymaker 9:d1d79d4ee673 62 SnakeFood _f;
AhmedPlaymaker 9:d1d79d4ee673 63 SnakeFood _ff;
AhmedPlaymaker 9:d1d79d4ee673 64 SnakeFood _fff;
AhmedPlaymaker 10:751bd953fa27 65 Blocks _b;
AhmedPlaymaker 7:48ba87cd79b5 66 int _speed;
AhmedPlaymaker 7:48ba87cd79b5 67 Direction _d;
AhmedPlaymaker 7:48ba87cd79b5 68 float _mag;
AhmedPlaymaker 7:48ba87cd79b5 69 int n;
AhmedPlaymaker 7:48ba87cd79b5 70
AhmedPlaymaker 9:d1d79d4ee673 71 /** Check for Snake and Food collision
AhmedPlaymaker 9:d1d79d4ee673 72 *
AhmedPlaymaker 9:d1d79d4ee673 73 * This function checks if the Snake has come into contact with it's food.
AhmedPlaymaker 9:d1d79d4ee673 74 */
AhmedPlaymaker 9:d1d79d4ee673 75 void CheckSnakeFoodCollision(Gamepad &pad);
AhmedPlaymaker 9:d1d79d4ee673 76
AhmedPlaymaker 12:1e601b176437 77 /** Check for Snake and Block collision
AhmedPlaymaker 12:1e601b176437 78 *
AhmedPlaymaker 12:1e601b176437 79 * This function checks if the Snake has come into contact with any Block.
AhmedPlaymaker 12:1e601b176437 80 */
AhmedPlaymaker 12:1e601b176437 81 void CheckSnakeBlockCollision(Gamepad &pad);
AhmedPlaymaker 13:9785f2404045 82
AhmedPlaymaker 13:9785f2404045 83 /** Check for Snake and Block Sides collision
AhmedPlaymaker 13:9785f2404045 84 *
AhmedPlaymaker 13:9785f2404045 85 * This function checks if the Snake has come into contact with any the sides of the block and stops it moving.
AhmedPlaymaker 13:9785f2404045 86 */
AhmedPlaymaker 13:9785f2404045 87 void CheckSnakeBlockSidesCollision(Gamepad &pad, Direction d);
AhmedPlaymaker 7:48ba87cd79b5 88 };
AhmedPlaymaker 7:48ba87cd79b5 89 #endif