Snake vs Block Game to be run upon K64F.

Dependencies:   mbed

Committer:
AhmedPlaymaker
Date:
Mon Apr 08 16:46:14 2019 +0000
Revision:
19:05cc9f801468
Parent:
18:b391caa5754c
Child:
22:ee698f66146f
made progressive levels slightly more difficult, will test on people later, have to print levels on screen after each progressive level.

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 19:05cc9f801468 51 int level;
AhmedPlaymaker 9:d1d79d4ee673 52 int foodbuff; //this makes food 1,2,and 3 come at seperate times
AhmedPlaymaker 12:1e601b176437 53 int blocknum;
AhmedPlaymaker 19:05cc9f801468 54 int blockgap; //to change frequency of fall
AhmedPlaymaker 19:05cc9f801468 55 int blockbuff; // to manage the fall of food relative to the blocks
AhmedPlaymaker 12:1e601b176437 56 int srn;
AhmedPlaymaker 12:1e601b176437 57 int send; //makes sure that the block number is only updated when send is activated.
AhmedPlaymaker 13:9785f2404045 58 int speed; //makes sure that snake only moves if not colliding to block walls
AhmedPlaymaker 18:b391caa5754c 59 int b0;
AhmedPlaymaker 18:b391caa5754c 60 int b1;
AhmedPlaymaker 18:b391caa5754c 61 int b2;
AhmedPlaymaker 18:b391caa5754c 62 int b3;
AhmedPlaymaker 18:b391caa5754c 63 int b4;
AhmedPlaymaker 18:b391caa5754c 64 int b5;
AhmedPlaymaker 18:b391caa5754c 65 int b6;
AhmedPlaymaker 18:b391caa5754c 66 int b7;
AhmedPlaymaker 18:b391caa5754c 67 int b8;
AhmedPlaymaker 18:b391caa5754c 68 int b9;
AhmedPlaymaker 18:b391caa5754c 69 int b10;
AhmedPlaymaker 18:b391caa5754c 70 int b11;
AhmedPlaymaker 18:b391caa5754c 71 int b12;
AhmedPlaymaker 18:b391caa5754c 72 int b13;
AhmedPlaymaker 18:b391caa5754c 73 int b14;
AhmedPlaymaker 18:b391caa5754c 74 int b0_to_b14[15];
AhmedPlaymaker 7:48ba87cd79b5 75
AhmedPlaymaker 7:48ba87cd79b5 76 private:
AhmedPlaymaker 7:48ba87cd79b5 77
AhmedPlaymaker 7:48ba87cd79b5 78 Snake _s;
AhmedPlaymaker 9:d1d79d4ee673 79 SnakeFood _f;
AhmedPlaymaker 9:d1d79d4ee673 80 SnakeFood _ff;
AhmedPlaymaker 9:d1d79d4ee673 81 SnakeFood _fff;
AhmedPlaymaker 10:751bd953fa27 82 Blocks _b;
AhmedPlaymaker 7:48ba87cd79b5 83 int _speed;
AhmedPlaymaker 7:48ba87cd79b5 84 Direction _d;
AhmedPlaymaker 7:48ba87cd79b5 85 float _mag;
AhmedPlaymaker 7:48ba87cd79b5 86 int n;
AhmedPlaymaker 7:48ba87cd79b5 87
AhmedPlaymaker 9:d1d79d4ee673 88 /** Check for Snake and Food collision
AhmedPlaymaker 9:d1d79d4ee673 89 *
AhmedPlaymaker 9:d1d79d4ee673 90 * This function checks if the Snake has come into contact with it's food.
AhmedPlaymaker 9:d1d79d4ee673 91 */
AhmedPlaymaker 9:d1d79d4ee673 92 void CheckSnakeFoodCollision(Gamepad &pad);
AhmedPlaymaker 9:d1d79d4ee673 93
AhmedPlaymaker 12:1e601b176437 94 /** Check for Snake and Block collision
AhmedPlaymaker 12:1e601b176437 95 *
AhmedPlaymaker 12:1e601b176437 96 * This function checks if the Snake has come into contact with any Block.
AhmedPlaymaker 12:1e601b176437 97 */
AhmedPlaymaker 12:1e601b176437 98 void CheckSnakeBlockCollision(Gamepad &pad);
AhmedPlaymaker 13:9785f2404045 99
AhmedPlaymaker 13:9785f2404045 100 /** Check for Snake and Block Sides collision
AhmedPlaymaker 13:9785f2404045 101 *
AhmedPlaymaker 13:9785f2404045 102 * This function checks if the Snake has come into contact with any the sides of the block and stops it moving.
AhmedPlaymaker 13:9785f2404045 103 */
AhmedPlaymaker 13:9785f2404045 104 void CheckSnakeBlockSidesCollision(Gamepad &pad, Direction d);
AhmedPlaymaker 7:48ba87cd79b5 105 };
AhmedPlaymaker 7:48ba87cd79b5 106 #endif