#include "Lampe.h"
#include <stdlib.h>
#include <iostream>
#include <time.h>

using namespace std;
Lampe::Lampe()
{
    istDefekt = false;
    eingeschaltet = 0;
    leuchtet = false;
    defektWahrscheinlichkeit = 0;
}

bool Lampe::Einschalten()
{
    if(istDefekt)
        return false;

    if(leuchtet)
        return true;


    //leuchtet = true;
    this->eingeschaltet++;

    istDefekt = lampeBrenntDurch();
    leuchtet = !istDefekt;

    return leuchtet;
}

void Lampe::Ausschalten()
{
    leuchtet = false;
}

bool Lampe::lampeBrenntDurch()
{
    if(istDefekt)
        return true;
    else if(eingeschaltet < 21)
        return false;

    if(eingeschaltet == 21)
        defektWahrscheinlichkeit = 1;
    else
        defektWahrscheinlichkeit += 0.5;

    int r = rand() % 100 + 1; // 1 - 100

    istDefekt = defektWahrscheinlichkeit >=  r;
    return istDefekt;
}


bool Lampe::getLeuchtet()
{
    return leuchtet;
}
