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.cpp

Committer:
domkay97
Date:
2017-04-15
Revision:
5:84dfbfb17ef2
Parent:
4:62dcc005f7a7
Child:
6:9882809b0694

File content as of revision 5:84dfbfb17ef2:

#include "Operator.h"

Operator::Operator()
{

}

Operator::~Operator()
{

}


void Operator::init()
{ 
} 

int Operator::read_input(Controller &pad) {
  
    return(pad.check_for_buttons()); 
} 


int Operator::random_instruction(Display &display, N5110 &lcd) { 
    int ran = rand() % 7 + 1;  
    display.display_instruction(lcd, ran); 
    return ran; 
    }   
    
void Operator::Correct(Controller &pad) {
        score++;
        pad.led(1,1); 
        pad.led(2,1); 
        pad.led(3,1); 
        pad.tone(100.0,0.2);  
}  

void Operator::Game_Over(Controller &pad, N5110 &lcd) {
        pad.tone(700.0,1);
            while(pad.check_event(Controller::BACK_PRESSED) == false) { 
                Assessment(lcd, score);
                    pad.leds_off();
                    pad.led(4,1); 
                    pad.led(5,1); 
                    pad.led(6,1);      
}   
    score = 0;
} 

void Operator::Assessment(N5110 &lcd, int score) {
                lcd.printString("Game Over",16,0);
                char buffer[14];
                    if (score < 10) { 
                        sprintf(buffer,"0%d",score);
                        lcd.printString("Newbie",26,4); } 
                    else if (score < 20) {  
                        sprintf(buffer,"%2d",score);  
                        lcd.printString("Amuteur",25,4); }
                    else if (score < 30) {  
                        sprintf(buffer,"%2d",score);  
                        lcd.printString("Semi-Pro",24,4); }
                    else if (score < 30) {  
                        sprintf(buffer,"%2d",score);  
                        lcd.printString("Professional",20,4);  } 
                    else if (score < 40) {  
                        sprintf(buffer,"%2d",score);  
                        lcd.printString("Expert",26,4);  }
                    else if (score < 50) {  
                        sprintf(buffer,"%2d",score);  
                        lcd.printString("Legendary",20,4); } 
                    else {  
                        sprintf(buffer,"%2d",score);  
                lcd.printString("World Class",18,4); }
                lcd.printString(buffer,37,2);
                lcd.drawCircle(42,20,10,FILL_TRANSPARENT);
                lcd.refresh();  
}