This class is the engine of the program. It encapsulates all the methods to do with managing scores, commands and player states(dead/alive).

Operator.h

Committer:
domkay97
Date:
2017-04-23
Revision:
9:54c620f7d736
Parent:
8:93f18f1c1241
Child:
11:48190450b7e5

File content as of revision 9:54c620f7d736:

#ifndef OPERATOR_H
#define OPERATOR_H

#include "mbed.h"
#include "N5110.h"
#include "Display.h" 
#include "Controller.h"  


struct Player {
    float wait;  /**< float for wair time */
    bool status; /**< true/flase alive or dead */
    int score; /**< score */
};

class Operator
{

public: 
    
    /**Contructor*/
    Operator();
    
    /**Destructor*/
    ~Operator();


 /**
     * @brief generates a random interger to be used in the display class to represent an instruction
     * @param Display, N5110
     * @return void random interger
     */
    int random_instruction(Display &display, N5110 &lcd);  

/** 
    *  @brief Method to test the player 
    *  @param the player to test, Controller, Display, N5110
    *  @return true/false on Success
    */
    bool test_player(int nextplayer, Controller &ctrl, Display &display, N5110 &lcd);

/** 
    *  @brief Method to check if both players are dead 
    *  @return true/false
    */
    bool check_dead();

/** Method performed when the user performs the RIGHT instruction on time, score is increased, lighting and sound performed.
    *  @param the player, Controller
    */
    void Correct(int next_player, Controller &ctrl);  

/** Method performed when the user performs the WRONG instruction on time 
    *  @param the player, Controller
    */
    void InCorrect(int next_player, Controller &ctrl);  

/** Method to set up array of Player strut 
    *  @param the number of players to set up
    */
    void setup_players(int num_players);
            
/** Method performed when the user is too slow or performs the wrong instruction, score is displayed, game ends 
    *  @param the player, Controller
    */
    void Game_Over(Controller &ctrl, N5110 &lcd);
    
/** Method performed to chech which user it is and to swap after exch ten*/
    int check_next_player(int next_player, N5110 &lcd, Controller &ctrl, Display display);
    
private:  
    /** This methord displays and assesses score and display a performace rating for user to see.
    *  @param N5110, score
    */    
    void Assessment(N5110 &lcd, int score); 
 
    /** This methord displays and assesses scores when multi-player
    *  @param N5110
    */
   void MultiResults(N5110 &lcd);
  
    /** This method counts down the next player 
    *  @param Controller, N5110, the player to display next turn
    */ 
   void DisplayNextPlayer(Controller &ctrl, N5110 &lcd, int thenext_player);
   
       
    float freq_change;
    int score; // <score to indentify users progress through game
    Player myplayers[1]; //setup players 
    int _num_players;    //set num_players
    
};

#endif