Zeyu Feng 201377605

Dependencies:   mbed

On Minerva

Interface/Interface.h

Committer:
el19zf
Date:
2020-05-15
Revision:
14:42b8a91e463c
Parent:
13:eb60628db8bf
Child:
16:cf2bfada3adf

File content as of revision 14:42b8a91e463c:

#ifndef INTERFACE_H
#define INTERFACE_H

#include "mbed.h"
#include "Gamepad.h"
#include "N5110.h"
#include  "SoundData.h"

/** Interface class
*@welcome,meun,pause interface
*@author Zeyu Feng
*@10 MAY 2020
*/
/**struct of fsm for menu option*/
struct State{
    int option;
    int next_state[2];
};

class Interface {
    
public:
    
    /**Constructor*/
    Interface();
    
    /**Destructor*/
    ~Interface();
        
    void init();
        
    /** set a welcome interface for my game*/
    void Welcome(N5110 &lcd,Gamepad &pad);
        
    /** set an option menu*/
    int menu(N5110 &lcd,Gamepad &pad,int option_flag);
        
    /** if health of people is zero, game over~*/
    void game_over(N5110 &lcd,Gamepad &pad);
        
    /** check pause for start botton*/
    int check_pause(N5110 &lcd,Gamepad &pad,int paused_flag);
        
    /** count down and draw in lcd*/
    int count_down(N5110 &lcd,int count_flag);
    
    /** Exit interface*/
    void exit(N5110 &lcd,Gamepad &pad);
        
    /** Victory interface*/
    void victory(N5110 &lcd,Gamepad &pad);
    
    /** make the game simple*/
    void simple_game(N5110 &lcd,Gamepad &pad);
    
    int get_sim_flag();
    
    int get_gameover_flag();
    
    int get_victory_flag();
        
private:
        
    Timer _timer;
    Direction _d;
    int _sim_flag;
    int _gameover_flag;
    int _victory_flag;
        
};
#endif