Zeyu Feng 201377605

Dependencies:   mbed

On Minerva

Committer:
el19zf
Date:
Fri May 22 16:07:02 2020 +0000
Revision:
22:cded0cd8e1c9
Parent:
21:e3866e4fe5fb
Final Submission. I have read and agreed with Statement of Academic Integrity.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el19zf 11:494cc44777fe 1 #ifndef INTERFACE_H
el19zf 11:494cc44777fe 2 #define INTERFACE_H
el19zf 11:494cc44777fe 3
el19zf 11:494cc44777fe 4 #include "mbed.h"
el19zf 11:494cc44777fe 5 #include "Gamepad.h"
el19zf 11:494cc44777fe 6 #include "N5110.h"
el19zf 16:cf2bfada3adf 7 #include "Sound.h"
el19zf 11:494cc44777fe 8
el19zf 13:eb60628db8bf 9 /**struct of fsm for menu option*/
el19zf 11:494cc44777fe 10 struct State{
el19zf 11:494cc44777fe 11 int option;
el19zf 11:494cc44777fe 12 int next_state[2];
el19zf 11:494cc44777fe 13 };
el19zf 11:494cc44777fe 14
el19zf 21:e3866e4fe5fb 15 /** Interface class
el19zf 21:e3866e4fe5fb 16 *@brief welcome,meun,pause interface
el19zf 21:e3866e4fe5fb 17 *@author Zeyu Feng
el19zf 21:e3866e4fe5fb 18 *@10 MAY 2020
el19zf 21:e3866e4fe5fb 19 */
el19zf 11:494cc44777fe 20 class Interface {
el19zf 11:494cc44777fe 21
el19zf 11:494cc44777fe 22 public:
el19zf 11:494cc44777fe 23
el19zf 13:eb60628db8bf 24 /**Constructor*/
el19zf 13:eb60628db8bf 25 Interface();
el19zf 13:eb60628db8bf 26
el19zf 13:eb60628db8bf 27 /**Destructor*/
el19zf 13:eb60628db8bf 28 ~Interface();
el19zf 20:a36ab1560e73 29
el19zf 20:a36ab1560e73 30 /** initalises the flag varibales*/
el19zf 11:494cc44777fe 31 void init();
el19zf 11:494cc44777fe 32
el19zf 13:eb60628db8bf 33 /** set a welcome interface for my game*/
el19zf 11:494cc44777fe 34 void Welcome(N5110 &lcd,Gamepad &pad);
el19zf 11:494cc44777fe 35
el19zf 13:eb60628db8bf 36 /** set an option menu*/
el19zf 19:5083339b55e8 37 void menu(N5110 &lcd,Gamepad &pad);
el19zf 17:ba4d9cd1e347 38
el19zf 17:ba4d9cd1e347 39 /** set an user-defined menu*/
el19zf 19:5083339b55e8 40 void undefined_rate(N5110 &lcd,Gamepad &pad);
el19zf 17:ba4d9cd1e347 41
el19zf 17:ba4d9cd1e347 42 /** set an user-defined menu*/
el19zf 19:5083339b55e8 43 void undefined_max(N5110 &lcd,Gamepad &pad);
el19zf 11:494cc44777fe 44
el19zf 13:eb60628db8bf 45 /** if health of people is zero, game over~*/
el19zf 11:494cc44777fe 46 void game_over(N5110 &lcd,Gamepad &pad);
el19zf 11:494cc44777fe 47
el19zf 13:eb60628db8bf 48 /** check pause for start botton*/
el19zf 16:cf2bfada3adf 49 int check_pause(N5110 &lcd,Gamepad &pad,int paused_flag,float increment,int max);
el19zf 11:494cc44777fe 50
el19zf 13:eb60628db8bf 51 /** count down and draw in lcd*/
el19zf 19:5083339b55e8 52 void count_down(N5110 &lcd);
el19zf 11:494cc44777fe 53
el19zf 22:cded0cd8e1c9 54 /** update record*/
el19zf 22:cded0cd8e1c9 55 void update_record(float increment,int max);
el19zf 22:cded0cd8e1c9 56
el19zf 22:cded0cd8e1c9 57 /** Record interface*/
el19zf 22:cded0cd8e1c9 58 void record(N5110 &lcd,Gamepad &pad);
el19zf 11:494cc44777fe 59
el19zf 13:eb60628db8bf 60 /** Victory interface*/
el19zf 11:494cc44777fe 61 void victory(N5110 &lcd,Gamepad &pad);
el19zf 12:009895f6b6e4 62
el19zf 20:a36ab1560e73 63 /** simple game interface*/
el19zf 12:009895f6b6e4 64 void simple_game(N5110 &lcd,Gamepad &pad);
el19zf 12:009895f6b6e4 65
el19zf 20:a36ab1560e73 66 /**accessors set the count_down flag
el19zf 20:a36ab1560e73 67 *@param count_down(int)
el19zf 20:a36ab1560e73 68 */
el19zf 19:5083339b55e8 69 void set_count_down(int count_down);
el19zf 19:5083339b55e8 70
el19zf 20:a36ab1560e73 71 //mutators---------------------------
el19zf 20:a36ab1560e73 72
el19zf 19:5083339b55e8 73 int get_menu_flag();
el19zf 19:5083339b55e8 74
el19zf 19:5083339b55e8 75 int get_rate_flag();
el19zf 19:5083339b55e8 76
el19zf 19:5083339b55e8 77 int get_max_flag();
el19zf 19:5083339b55e8 78
el19zf 12:009895f6b6e4 79 int get_sim_flag();
el19zf 12:009895f6b6e4 80
el19zf 12:009895f6b6e4 81 int get_gameover_flag();
el19zf 12:009895f6b6e4 82
el19zf 12:009895f6b6e4 83 int get_victory_flag();
el19zf 19:5083339b55e8 84
el19zf 11:494cc44777fe 85 private:
el19zf 16:cf2bfada3adf 86
el19zf 16:cf2bfada3adf 87 Sound _sound;
el19zf 11:494cc44777fe 88 Timer _timer;
el19zf 11:494cc44777fe 89 Direction _d;
el19zf 19:5083339b55e8 90 int _menu_flag;
el19zf 19:5083339b55e8 91 int _defined_rate_flag;
el19zf 19:5083339b55e8 92 int _defined_max_flag;
el19zf 12:009895f6b6e4 93 int _sim_flag;
el19zf 12:009895f6b6e4 94 int _gameover_flag;
el19zf 19:5083339b55e8 95 int _count_down;
el19zf 12:009895f6b6e4 96 int _victory_flag;
el19zf 16:cf2bfada3adf 97 char _buffer1[14];
el19zf 22:cded0cd8e1c9 98 char _buffer2[14];
el19zf 22:cded0cd8e1c9 99 Vector2D _record;
el19zf 20:a36ab1560e73 100
el19zf 11:494cc44777fe 101 };
el19zf 11:494cc44777fe 102 #endif