Final Submission. I have read and agreed with Statement of Academic Integrity.

Dependencies:   mbed Gamepad N5110 Joystick

Committer:
el16dlc
Date:
Thu May 09 13:52:41 2019 +0000
Revision:
10:aedca0082855
Parent:
9:a7ea33e6bd82
Final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el16dlc 1:b9f3b7d869d8 1 #ifndef GAME_ENGINE_H
el16dlc 1:b9f3b7d869d8 2 #define GAME_ENGINE_H
el16dlc 1:b9f3b7d869d8 3
el16dlc 1:b9f3b7d869d8 4 #include "mbed.h"
el16dlc 1:b9f3b7d869d8 5 #include "N5110.h"
el16dlc 1:b9f3b7d869d8 6 #include "main.h"
el16dlc 1:b9f3b7d869d8 7 #include "Gamepad.h"
el16dlc 1:b9f3b7d869d8 8 #include "Game_engine.h"
el16dlc 2:0bd6711eae26 9 #include "Snake.h"
el16dlc 2:0bd6711eae26 10
el16dlc 3:660de4311976 11
el16dlc 10:aedca0082855 12 /** GameEngine Class
el16dlc 10:aedca0082855 13 * @brief The game engine for snake game
el16dlc 10:aedca0082855 14 * @author Daniel Crockford 201039580
el16dlc 10:aedca0082855 15 * @date 09 May 2019
el16dlc 10:aedca0082855 16 */
el16dlc 1:b9f3b7d869d8 17 class GameEngine {
el16dlc 1:b9f3b7d869d8 18
el16dlc 1:b9f3b7d869d8 19 public:
el16dlc 10:aedca0082855 20 /** Constructor */
el16dlc 1:b9f3b7d869d8 21 GameEngine();
el16dlc 10:aedca0082855 22
el16dlc 10:aedca0082855 23 /** DeConstructor */
el16dlc 1:b9f3b7d869d8 24 ~GameEngine();
el16dlc 10:aedca0082855 25
el16dlc 10:aedca0082855 26 /** resets direction */
el16dlc 8:264398d3c610 27 void direction_reset();
el16dlc 10:aedca0082855 28
el16dlc 10:aedca0082855 29 /** initialises engine */
el16dlc 2:0bd6711eae26 30 void init();
el16dlc 10:aedca0082855 31
el16dlc 10:aedca0082855 32 /** draws all objects
el16dlc 10:aedca0082855 33 * @param N5110 class for controlling lcd screen */
el16dlc 1:b9f3b7d869d8 34 void draw(N5110 &lcd);
el16dlc 10:aedca0082855 35
el16dlc 10:aedca0082855 36 /** get directions from gamepad
el16dlc 10:aedca0082855 37 * param Gamepad class for accessing gamepad controls */
el16dlc 2:0bd6711eae26 38 void get_dir(Gamepad &gamepad);
el16dlc 10:aedca0082855 39
el16dlc 10:aedca0082855 40 /** moves snake */
el16dlc 2:0bd6711eae26 41 void snake_move();
el16dlc 10:aedca0082855 42
el16dlc 10:aedca0082855 43 /** moves food */
el16dlc 3:660de4311976 44 void food_move();
el16dlc 10:aedca0082855 45
el16dlc 10:aedca0082855 46 /** draws snake body
el16dlc 10:aedca0082855 47 * @param N5110 class for controlling lcd screen*/
el16dlc 4:0fc3441556e1 48 void snake_body(N5110 &lcd);
el16dlc 10:aedca0082855 49
el16dlc 10:aedca0082855 50 /** checks for collisions with wall and creates flag */
el16dlc 5:23a85b16ee54 51 void check_wall_collision();
el16dlc 10:aedca0082855 52
el16dlc 10:aedca0082855 53 /** checks for collision with snake body and creates flag */
el16dlc 5:23a85b16ee54 54 void check_snake_collision();
el16dlc 10:aedca0082855 55
el16dlc 10:aedca0082855 56 /** get game continue flag */
el16dlc 5:23a85b16ee54 57 bool get_game_cont();
el16dlc 10:aedca0082855 58
el16dlc 10:aedca0082855 59 /** get direction value */
el16dlc 8:264398d3c610 60 int get_direction();
el16dlc 10:aedca0082855 61
el16dlc 10:aedca0082855 62 /** get score */
el16dlc 9:a7ea33e6bd82 63 int get_score();
el16dlc 2:0bd6711eae26 64
el16dlc 2:0bd6711eae26 65 private:
el16dlc 2:0bd6711eae26 66 int _direction;
el16dlc 4:0fc3441556e1 67 int _body_posX[100];
el16dlc 4:0fc3441556e1 68 int _body_posY[100];
el16dlc 4:0fc3441556e1 69 int _body_seg;
el16dlc 5:23a85b16ee54 70 bool _game_cont;
el16dlc 8:264398d3c610 71 bool _food_reset;
el16dlc 9:a7ea33e6bd82 72 int _score;
el16dlc 1:b9f3b7d869d8 73 };
el16dlc 1:b9f3b7d869d8 74
el16dlc 1:b9f3b7d869d8 75 #endif