-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtiempo.cpp
118 lines (112 loc) · 2.37 KB
/
tiempo.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include "tiempo.h"
#include "menu.h"
#include <iostream>
#include <unistd.h>
#ifdef _WIN32
#include<windows.h>
#include <conio.h>
#include <stdio.h>
#else
#include "keys.h"
#endif
using namespace std;
Tiempo::Tiempo(){
this -> hora = 23;
}
Tiempo::~Tiempo(){}
void Tiempo::correTiempo(){
ocultarCursor();
Menu menu;
menu.limpiarPantalla();
int teclaEnter;
int kbh;
do{
menu.limpiarPantalla();
menu.pantallaInicial();
//menu.gotoxy(1,1);
//cout<<getch();;
teclaEnter = menu.comprobar();
}while(teclaEnter!=13);
menu.limpiarPantalla();
int suma= 0;
int horaActual= 8;
Estado instanciaEstado;
menu.gotoxy(20, 5);
if (hora<10){
cout<<"0";
}
cout<<hora<<":"<<0;
cout<<0<<"\n";
menu.salida(instanciaEstado);
menu.salidaMenu();
while(true){
menu.gotoxy(20, 3);
cout<<"Casa";
menu.gotoxy(20, 5);
if(horaActual<10){
cout<<"0" ;
}
cout<<horaActual<<":" ;
if (suma<10){
cout<<"0" ;
}
cout<<suma<<"\n" ;
if(suma>59){
horaActual+=1;
suma=0;
menu.limpiarPantalla();
instanciaEstado.aumentaHambre();
instanciaEstado.aumentaSuciedad();
instanciaEstado.aumentaCansancio();
menu.salida(instanciaEstado);
menu.salidaMenu();
}
else{
suma+=1;
}
if(horaActual>23){
horaActual=0;
}
_sleep();
#ifdef _WIN32
kbh = kbhit();
#else
kbh = _kbhit();
#endif
vector <string> estadoJuego;
estadoJuego.push_back("NA");
estadoJuego.push_back("continuar");
if(kbh){
menu.accion(menu.comprobar(), instanciaEstado);
}
estadoJuego = menu.estadoJuego();
if(estadoJuego [0]!="NA" && estadoJuego [1]!="terminar"){
instanciaEstado.mejorarEstado( estadoJuego [0]);
if(estadoJuego [0]!="NA"){
menu.salida(instanciaEstado);
}
}
else if(estadoJuego [1]=="terminar"){
break;
}
}
}
void Tiempo::_sleep(){
#ifdef _WIN32
Sleep(3);
#else
this_thread::sleep_for(chrono::milliseconds(8));
#endif
}
void Tiempo::ocultarCursor(){
#ifdef _WIN32
HANDLE consola;
consola = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
cci.dwSize = 1;
cci.bVisible = FALSE;
SetConsoleCursorInfo(consola, &cci);
#else
system("tput civis");
#endif
}