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-16
Revision:
6:9882809b0694
Parent:
5:84dfbfb17ef2
Child:
7:5d9b9d0bc6e7

File content as of revision 6:9882809b0694:

#include "Operator.h"

Operator::Operator()
{

}

Operator::~Operator()
{

}


void Operator::init()
{
}


int Operator::random_instruction(Display &display, N5110 &lcd)
{
    int ran = rand() % 7 + 1;
    printf("OPP ran = %d\n", ran);
    display.display_instruction(lcd, ran);
    return ran;
}

void Operator::Correct(Controller &pad)
{
    score++; 
    printf("OPP score = %d\n", score);
    pad.led(1,1);
    pad.led(2,1);
    pad.led(3,1);
    pad.sound(100.0,0.2);
}

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

void Operator::Assessment(N5110 &lcd, int score)
{
    printf("OPP.ASSESSMENT score = %d\n", 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("Expert",15,4);
    } else if (score < 40) {
        sprintf(buffer,"%2d",score);
        lcd.printString("Professional",14,4);
    } else if (score < 50) {
        sprintf(buffer,"%2d",score);
        lcd.printString("Legendary",16,4);
    } else {
        sprintf(buffer,"%2d",score);
        lcd.printString("World Class",15,4);
    }
    lcd.printString(buffer,37,2);
    lcd.drawCircle(42,20,10,FILL_TRANSPARENT);
    lcd.refresh();
}