-
Notifications
You must be signed in to change notification settings - Fork 0
/
Change.cpp
46 lines (44 loc) · 869 Bytes
/
Change.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "Change.h"
using namespace std;
Change::Change(int repeats)
:initialRepeats(repeats)
,actualRepeats(initialRepeats)
,changeCompleted(false){
setSpeed(MAX_SPEED);
}
void Change::setSpeed(int speed){
this->speed = speed;
initialLapse= MAX_SPEED/speed;
actualLapse = initialLapse;
}
bool Change::needUpdate(){
if(!repeatsCompleted()){
if(lapseCompleted()){
restartLapse();
if(changeCompleted){
actualRepeats--;
changeCompleted=false;
return false;
}
return true;
}else{
actualLapse--;
}
}
return false;
}
bool Change::repeatsCompleted(){
return (actualRepeats == 0);
}
void Change::setChangeCompleted(){
changeCompleted = true;
}
void Change::restartLapse(){
actualLapse=initialLapse;
}
void Change::restartRepeats(){
actualRepeats=initialRepeats;
}
bool Change::lapseCompleted(){
return (actualLapse == 0);
}