![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
TP1 Ej 3 Bomba Cobas, Montero
main.cpp@1:d99665a519ed, 2019-06-06 (annotated)
- Committer:
- cobasjuan
- Date:
- Thu Jun 06 13:58:23 2019 +0000
- Revision:
- 1:d99665a519ed
- Parent:
- 0:9d8c86972a9d
TP 1 Ej 3 Bomba
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cobasjuan | 0:9d8c86972a9d | 1 | #include "mbed.h" |
cobasjuan | 0:9d8c86972a9d | 2 | #include "tsi_sensor.h" |
cobasjuan | 0:9d8c86972a9d | 3 | |
cobasjuan | 0:9d8c86972a9d | 4 | /* This defines will be replaced by PinNames soon */ |
cobasjuan | 0:9d8c86972a9d | 5 | #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z) |
cobasjuan | 0:9d8c86972a9d | 6 | #define ELEC0 9 |
cobasjuan | 0:9d8c86972a9d | 7 | #define ELEC1 10 |
cobasjuan | 0:9d8c86972a9d | 8 | #elif defined (TARGET_KL05Z) |
cobasjuan | 0:9d8c86972a9d | 9 | #define ELEC0 9 |
cobasjuan | 0:9d8c86972a9d | 10 | #define ELEC1 8 |
cobasjuan | 0:9d8c86972a9d | 11 | #else |
cobasjuan | 0:9d8c86972a9d | 12 | #error TARGET NOT DEFINED |
cobasjuan | 0:9d8c86972a9d | 13 | #endif |
cobasjuan | 0:9d8c86972a9d | 14 | |
cobasjuan | 0:9d8c86972a9d | 15 | #define ESPERO_ARRANQUE 0 |
cobasjuan | 0:9d8c86972a9d | 16 | #define COMPARO_CABLES 1 |
cobasjuan | 0:9d8c86972a9d | 17 | #define GANA 2 |
cobasjuan | 0:9d8c86972a9d | 18 | #define PIERDE 3 |
cobasjuan | 0:9d8c86972a9d | 19 | #define ESPERO_CABLES 4 |
cobasjuan | 0:9d8c86972a9d | 20 | #define COMPARACION 5 |
cobasjuan | 1:d99665a519ed | 21 | #define GEN_SEC 6 |
cobasjuan | 0:9d8c86972a9d | 22 | |
cobasjuan | 0:9d8c86972a9d | 23 | // Funciones |
cobasjuan | 0:9d8c86972a9d | 24 | void CABLES(); |
cobasjuan | 0:9d8c86972a9d | 25 | void MAQUINA_GENERAL(); |
cobasjuan | 1:d99665a519ed | 26 | void CONTADOR(); |
cobasjuan | 1:d99665a519ed | 27 | void displays(); |
cobasjuan | 1:d99665a519ed | 28 | void t(); |
cobasjuan | 1:d99665a519ed | 29 | |
cobasjuan | 0:9d8c86972a9d | 30 | //Timer |
cobasjuan | 0:9d8c86972a9d | 31 | Ticker timer; |
cobasjuan | 1:d99665a519ed | 32 | |
cobasjuan | 0:9d8c86972a9d | 33 | //Salidas |
cobasjuan | 0:9d8c86972a9d | 34 | DigitalOut ledr(LED1); |
cobasjuan | 0:9d8c86972a9d | 35 | DigitalOut ledg(LED2); |
cobasjuan | 0:9d8c86972a9d | 36 | DigitalOut ledb(LED3); |
cobasjuan | 1:d99665a519ed | 37 | BusOut Unidades (PTE5,PTE4,PTE3,PTE2); |
cobasjuan | 1:d99665a519ed | 38 | BusOut Decenas (PTB11,PTB10,PTB9,PTB8); |
cobasjuan | 1:d99665a519ed | 39 | |
cobasjuan | 1:d99665a519ed | 40 | //Entradas |
cobasjuan | 0:9d8c86972a9d | 41 | TSIAnalogSlider tsi(ELEC0, ELEC1, 40); |
cobasjuan | 1:d99665a519ed | 42 | DigitalIn C1(A1); |
cobasjuan | 1:d99665a519ed | 43 | DigitalIn C2(A2); |
cobasjuan | 1:d99665a519ed | 44 | DigitalIn C3(A3); |
cobasjuan | 1:d99665a519ed | 45 | DigitalIn C4(A4); |
cobasjuan | 0:9d8c86972a9d | 46 | |
cobasjuan | 0:9d8c86972a9d | 47 | // Variables |
cobasjuan | 1:d99665a519ed | 48 | volatile unsigned int tiempo=0; |
cobasjuan | 1:d99665a519ed | 49 | unsigned int n=0, habcables=0, gen=0, perdiste=0, finsec=0, reed_time=0, segundos=20, fin_tiempo=0; |
cobasjuan | 1:d99665a519ed | 50 | unsigned int variacion=0; |
cobasjuan | 1:d99665a519ed | 51 | unsigned int uni=0, dec=0; |
cobasjuan | 1:d99665a519ed | 52 | int vector[4]; |
cobasjuan | 1:d99665a519ed | 53 | int jugador[4]; |
cobasjuan | 1:d99665a519ed | 54 | |
cobasjuan | 0:9d8c86972a9d | 55 | int main(void) |
cobasjuan | 0:9d8c86972a9d | 56 | { |
cobasjuan | 1:d99665a519ed | 57 | C1.mode(PullUp); // Le seteo PullUp a las entradas de los cables para que cuando esten al aire detecte un 1 |
cobasjuan | 1:d99665a519ed | 58 | C2.mode(PullUp); |
cobasjuan | 1:d99665a519ed | 59 | C3.mode(PullUp); |
cobasjuan | 1:d99665a519ed | 60 | C4.mode(PullUp); |
cobasjuan | 0:9d8c86972a9d | 61 | ledg=1; |
cobasjuan | 0:9d8c86972a9d | 62 | ledr=1; |
cobasjuan | 0:9d8c86972a9d | 63 | ledb=1; |
cobasjuan | 0:9d8c86972a9d | 64 | timer.attach(&t,0.01); |
cobasjuan | 0:9d8c86972a9d | 65 | while (true) { |
cobasjuan | 1:d99665a519ed | 66 | gen++; // SEMILLA |
cobasjuan | 0:9d8c86972a9d | 67 | CABLES(); |
cobasjuan | 0:9d8c86972a9d | 68 | MAQUINA_GENERAL(); |
cobasjuan | 1:d99665a519ed | 69 | CONTADOR(); |
cobasjuan | 1:d99665a519ed | 70 | displays(); |
cobasjuan | 0:9d8c86972a9d | 71 | } |
cobasjuan | 0:9d8c86972a9d | 72 | } |
cobasjuan | 0:9d8c86972a9d | 73 | |
cobasjuan | 0:9d8c86972a9d | 74 | |
cobasjuan | 1:d99665a519ed | 75 | void MAQUINA_GENERAL() // Maquina de estados: funcionamiento general del programa |
cobasjuan | 0:9d8c86972a9d | 76 | { |
cobasjuan | 0:9d8c86972a9d | 77 | static unsigned int paso_general=ESPERO_ARRANQUE; |
cobasjuan | 1:d99665a519ed | 78 | unsigned int num=0; |
cobasjuan | 0:9d8c86972a9d | 79 | switch(paso_general) { |
cobasjuan | 1:d99665a519ed | 80 | case ESPERO_ARRANQUE: // RESET |
cobasjuan | 0:9d8c86972a9d | 81 | n=0; |
cobasjuan | 0:9d8c86972a9d | 82 | tiempo=0; |
cobasjuan | 1:d99665a519ed | 83 | num=0; |
cobasjuan | 1:d99665a519ed | 84 | variacion=0; |
cobasjuan | 0:9d8c86972a9d | 85 | perdiste=0; |
cobasjuan | 0:9d8c86972a9d | 86 | if(tsi.readPercentage() != 0) { |
cobasjuan | 1:d99665a519ed | 87 | paso_general=GEN_SEC; |
cobasjuan | 1:d99665a519ed | 88 | printf("Comienzo\n\r"); |
cobasjuan | 0:9d8c86972a9d | 89 | } |
cobasjuan | 0:9d8c86972a9d | 90 | break; |
cobasjuan | 1:d99665a519ed | 91 | case GEN_SEC: // Genero una secuencia aleatoria encargandome de que no se repitan |
cobasjuan | 1:d99665a519ed | 92 | for(num=0; num<4; num++) { |
cobasjuan | 1:d99665a519ed | 93 | srand(++gen); |
cobasjuan | 1:d99665a519ed | 94 | vector[num]=1+rand()%4; |
cobasjuan | 1:d99665a519ed | 95 | if(num==1) { |
cobasjuan | 1:d99665a519ed | 96 | while(vector[1]==vector[0]) { |
cobasjuan | 1:d99665a519ed | 97 | srand(++gen); |
cobasjuan | 1:d99665a519ed | 98 | vector[1]=1+rand()%4; |
cobasjuan | 1:d99665a519ed | 99 | } |
cobasjuan | 1:d99665a519ed | 100 | } else if(num==2) { |
cobasjuan | 1:d99665a519ed | 101 | while(vector[2]==vector[1]|| vector[2]==vector[0]) { |
cobasjuan | 1:d99665a519ed | 102 | srand(++gen); |
cobasjuan | 1:d99665a519ed | 103 | vector[2]=1+rand()%4; |
cobasjuan | 1:d99665a519ed | 104 | } |
cobasjuan | 1:d99665a519ed | 105 | } else if(num==3) { |
cobasjuan | 1:d99665a519ed | 106 | while(vector[3]==vector[2]|| vector[3]==vector[1] || vector[3]==vector[0]) { |
cobasjuan | 1:d99665a519ed | 107 | srand(++gen); |
cobasjuan | 1:d99665a519ed | 108 | vector[3]=1+rand()%4; |
cobasjuan | 1:d99665a519ed | 109 | } |
cobasjuan | 1:d99665a519ed | 110 | } |
cobasjuan | 1:d99665a519ed | 111 | printf("%d\r\n", vector[num]); |
cobasjuan | 1:d99665a519ed | 112 | } |
cobasjuan | 1:d99665a519ed | 113 | paso_general=COMPARO_CABLES; |
cobasjuan | 1:d99665a519ed | 114 | break; |
cobasjuan | 1:d99665a519ed | 115 | case COMPARO_CABLES: // Habilito la maquina de estados de comparacion de cables con secuencia |
cobasjuan | 0:9d8c86972a9d | 116 | habcables=1; |
cobasjuan | 1:d99665a519ed | 117 | if(perdiste == 1 || fin_tiempo==1) { //Si se levanta el flag de perdida paso al caso "PIERDE" |
cobasjuan | 1:d99665a519ed | 118 | perdiste=0; |
cobasjuan | 1:d99665a519ed | 119 | printf("Perdiste\r\n"); |
cobasjuan | 1:d99665a519ed | 120 | tiempo=150; |
cobasjuan | 0:9d8c86972a9d | 121 | paso_general=PIERDE; |
cobasjuan | 0:9d8c86972a9d | 122 | } |
cobasjuan | 1:d99665a519ed | 123 | if(finsec == 1) { //Si se levanta el flag de perdida paso al caso "GANA" |
cobasjuan | 1:d99665a519ed | 124 | finsec=0; |
cobasjuan | 1:d99665a519ed | 125 | printf("Ganaste\r\n"); |
cobasjuan | 1:d99665a519ed | 126 | tiempo=150; |
cobasjuan | 0:9d8c86972a9d | 127 | paso_general=GANA; |
cobasjuan | 0:9d8c86972a9d | 128 | } |
cobasjuan | 0:9d8c86972a9d | 129 | break; |
cobasjuan | 1:d99665a519ed | 130 | case GANA: // Enciendo el led verde y titilo displays hasta reiniciar el juego |
cobasjuan | 1:d99665a519ed | 131 | ledg=0; |
cobasjuan | 1:d99665a519ed | 132 | if(tiempo == 100) { |
cobasjuan | 1:d99665a519ed | 133 | Unidades=uni; |
cobasjuan | 1:d99665a519ed | 134 | Decenas=dec; |
cobasjuan | 1:d99665a519ed | 135 | } |
cobasjuan | 1:d99665a519ed | 136 | if(tiempo == 50) { |
cobasjuan | 1:d99665a519ed | 137 | Unidades=15; |
cobasjuan | 1:d99665a519ed | 138 | Decenas=15; |
cobasjuan | 1:d99665a519ed | 139 | } |
cobasjuan | 1:d99665a519ed | 140 | if(tiempo == 0) { |
cobasjuan | 1:d99665a519ed | 141 | tiempo=120; |
cobasjuan | 1:d99665a519ed | 142 | } |
cobasjuan | 1:d99665a519ed | 143 | if(tsi.readPercentage() != 0 && C1 == 0 && C2 == 0 && C3 == 0 && C4 == 0 ) { |
cobasjuan | 1:d99665a519ed | 144 | n=0; |
cobasjuan | 0:9d8c86972a9d | 145 | ledg=1; |
cobasjuan | 1:d99665a519ed | 146 | tiempo=0; |
cobasjuan | 1:d99665a519ed | 147 | perdiste=0; |
cobasjuan | 1:d99665a519ed | 148 | finsec=0; |
cobasjuan | 1:d99665a519ed | 149 | fin_tiempo=0; |
cobasjuan | 1:d99665a519ed | 150 | segundos=20; |
cobasjuan | 1:d99665a519ed | 151 | num=0; |
cobasjuan | 1:d99665a519ed | 152 | variacion=0; |
cobasjuan | 1:d99665a519ed | 153 | paso_general=GEN_SEC; |
cobasjuan | 1:d99665a519ed | 154 | printf("Comienzo\n\r"); |
cobasjuan | 0:9d8c86972a9d | 155 | } |
cobasjuan | 0:9d8c86972a9d | 156 | break; |
cobasjuan | 1:d99665a519ed | 157 | case PIERDE: // Titilo el led rojo y los displays hasta reiniciar el juego |
cobasjuan | 1:d99665a519ed | 158 | if(tiempo == 100) { |
cobasjuan | 1:d99665a519ed | 159 | ledr=0; |
cobasjuan | 1:d99665a519ed | 160 | Unidades=uni; |
cobasjuan | 1:d99665a519ed | 161 | Decenas=dec; |
cobasjuan | 1:d99665a519ed | 162 | } |
cobasjuan | 1:d99665a519ed | 163 | if(tiempo == 50) { |
cobasjuan | 1:d99665a519ed | 164 | ledr=1; |
cobasjuan | 1:d99665a519ed | 165 | Unidades=15; |
cobasjuan | 1:d99665a519ed | 166 | Decenas=15; |
cobasjuan | 1:d99665a519ed | 167 | } |
cobasjuan | 1:d99665a519ed | 168 | if(tiempo == 0) { |
cobasjuan | 1:d99665a519ed | 169 | tiempo=120; |
cobasjuan | 1:d99665a519ed | 170 | } |
cobasjuan | 1:d99665a519ed | 171 | if(tsi.readPercentage() != 0 && C1 == 0 && C2 == 0 && C3 == 0 && C4 == 0 ) { |
cobasjuan | 1:d99665a519ed | 172 | n=0; |
cobasjuan | 1:d99665a519ed | 173 | ledg=1; |
cobasjuan | 1:d99665a519ed | 174 | ledr=1; |
cobasjuan | 1:d99665a519ed | 175 | tiempo=0; |
cobasjuan | 1:d99665a519ed | 176 | perdiste=0; |
cobasjuan | 1:d99665a519ed | 177 | finsec=0; |
cobasjuan | 1:d99665a519ed | 178 | fin_tiempo=0; |
cobasjuan | 1:d99665a519ed | 179 | segundos=20; |
cobasjuan | 1:d99665a519ed | 180 | num=0; |
cobasjuan | 1:d99665a519ed | 181 | variacion=0; |
cobasjuan | 1:d99665a519ed | 182 | paso_general=GEN_SEC; |
cobasjuan | 1:d99665a519ed | 183 | printf("Comienzo\n\r"); |
cobasjuan | 1:d99665a519ed | 184 | } |
cobasjuan | 0:9d8c86972a9d | 185 | break; |
cobasjuan | 0:9d8c86972a9d | 186 | } |
cobasjuan | 0:9d8c86972a9d | 187 | } |
cobasjuan | 0:9d8c86972a9d | 188 | |
cobasjuan | 0:9d8c86972a9d | 189 | |
cobasjuan | 1:d99665a519ed | 190 | void CABLES() // Maquina de estados: comparo la secuencia generada con el cable desconectado |
cobasjuan | 0:9d8c86972a9d | 191 | { |
cobasjuan | 0:9d8c86972a9d | 192 | static unsigned int paso_cables=ESPERO_CABLES; |
cobasjuan | 1:d99665a519ed | 193 | static unsigned int fail=0, bloqueo_cable1=0, bloqueo_cable2=0, bloqueo_cable3=0, bloqueo_cable4=0; |
cobasjuan | 0:9d8c86972a9d | 194 | switch(paso_cables) { |
cobasjuan | 0:9d8c86972a9d | 195 | case ESPERO_CABLES: |
cobasjuan | 0:9d8c86972a9d | 196 | if(habcables == 1) { |
cobasjuan | 0:9d8c86972a9d | 197 | paso_cables=COMPARACION; |
cobasjuan | 0:9d8c86972a9d | 198 | } |
cobasjuan | 0:9d8c86972a9d | 199 | break; |
cobasjuan | 1:d99665a519ed | 200 | case COMPARACION: // Si se desconecta un cable se levanta un flag de variacion y se bloquea ese cable para que no se vuelva a detectar |
cobasjuan | 1:d99665a519ed | 201 | if(C1 == 1 && bloqueo_cable1 == 0) { |
cobasjuan | 1:d99665a519ed | 202 | bloqueo_cable1=1; |
cobasjuan | 1:d99665a519ed | 203 | variacion=1; |
cobasjuan | 1:d99665a519ed | 204 | jugador[n]=1; |
cobasjuan | 1:d99665a519ed | 205 | } else if(C2 == 1 && bloqueo_cable2 == 0) { |
cobasjuan | 1:d99665a519ed | 206 | bloqueo_cable2=1; |
cobasjuan | 1:d99665a519ed | 207 | variacion=1; |
cobasjuan | 1:d99665a519ed | 208 | jugador[n]=2; |
cobasjuan | 1:d99665a519ed | 209 | } else if(C3 == 1 && bloqueo_cable3 == 0) { |
cobasjuan | 1:d99665a519ed | 210 | bloqueo_cable3=1; |
cobasjuan | 1:d99665a519ed | 211 | variacion=1; |
cobasjuan | 1:d99665a519ed | 212 | jugador[n]=3; |
cobasjuan | 1:d99665a519ed | 213 | } else if(C4 == 1 && bloqueo_cable4 == 0) { |
cobasjuan | 1:d99665a519ed | 214 | bloqueo_cable4=1; |
cobasjuan | 1:d99665a519ed | 215 | variacion=1; |
cobasjuan | 1:d99665a519ed | 216 | jugador[n]=4; |
cobasjuan | 0:9d8c86972a9d | 217 | } |
cobasjuan | 1:d99665a519ed | 218 | if(variacion == 1) { // Si se levanta el flag de variacion comparo el cable con la secuencia |
cobasjuan | 1:d99665a519ed | 219 | if(jugador[n] == vector[n]) { |
cobasjuan | 1:d99665a519ed | 220 | printf("Bien hecho!\n\r"); // Si coincide pasa de nivel |
cobasjuan | 1:d99665a519ed | 221 | n++; |
cobasjuan | 1:d99665a519ed | 222 | } else fail=1; // Si difiere levanto el flag de partida perdida |
cobasjuan | 1:d99665a519ed | 223 | variacion=0; |
cobasjuan | 1:d99665a519ed | 224 | } |
cobasjuan | 1:d99665a519ed | 225 | if(fail == 1) { //reinicio las variables y levanto el flag de perdida |
cobasjuan | 0:9d8c86972a9d | 226 | perdiste=1; |
cobasjuan | 0:9d8c86972a9d | 227 | habcables=0; |
cobasjuan | 1:d99665a519ed | 228 | bloqueo_cable1=0; |
cobasjuan | 1:d99665a519ed | 229 | bloqueo_cable2=0; |
cobasjuan | 1:d99665a519ed | 230 | bloqueo_cable3=0; |
cobasjuan | 1:d99665a519ed | 231 | bloqueo_cable4=0; |
cobasjuan | 1:d99665a519ed | 232 | fail=0; |
cobasjuan | 1:d99665a519ed | 233 | paso_cables=ESPERO_CABLES; |
cobasjuan | 1:d99665a519ed | 234 | } else if(n == 4) { // Si llego al nivel 4 quiere decir que termino el juego y ganaste. Levanto el flag de victoria |
cobasjuan | 1:d99665a519ed | 235 | finsec=1; |
cobasjuan | 1:d99665a519ed | 236 | bloqueo_cable1=0; |
cobasjuan | 1:d99665a519ed | 237 | bloqueo_cable2=0; |
cobasjuan | 1:d99665a519ed | 238 | bloqueo_cable3=0; |
cobasjuan | 1:d99665a519ed | 239 | bloqueo_cable4=0; |
cobasjuan | 1:d99665a519ed | 240 | variacion=0; |
cobasjuan | 1:d99665a519ed | 241 | habcables=0; |
cobasjuan | 0:9d8c86972a9d | 242 | paso_cables=ESPERO_CABLES; |
cobasjuan | 0:9d8c86972a9d | 243 | } |
cobasjuan | 0:9d8c86972a9d | 244 | break; |
cobasjuan | 0:9d8c86972a9d | 245 | } |
cobasjuan | 0:9d8c86972a9d | 246 | } |
cobasjuan | 0:9d8c86972a9d | 247 | |
cobasjuan | 1:d99665a519ed | 248 | void CONTADOR() // Decremento una variable cada 1 segundo que corresponde al tiempo de juego. La variable comienza en 30 |
cobasjuan | 1:d99665a519ed | 249 | { |
cobasjuan | 1:d99665a519ed | 250 | static unsigned int comienzo=0; |
cobasjuan | 1:d99665a519ed | 251 | if(habcables == 1) { |
cobasjuan | 1:d99665a519ed | 252 | if(comienzo == 0) { |
cobasjuan | 1:d99665a519ed | 253 | tiempo=0; |
cobasjuan | 1:d99665a519ed | 254 | comienzo=1; |
cobasjuan | 1:d99665a519ed | 255 | } |
cobasjuan | 1:d99665a519ed | 256 | if(tiempo == 0 && fin_tiempo == 0) { |
cobasjuan | 1:d99665a519ed | 257 | segundos--; |
cobasjuan | 1:d99665a519ed | 258 | reed_time=0; |
cobasjuan | 1:d99665a519ed | 259 | tiempo=100; |
cobasjuan | 1:d99665a519ed | 260 | } |
cobasjuan | 1:d99665a519ed | 261 | if(segundos == -1 && fin_tiempo == 0) { |
cobasjuan | 1:d99665a519ed | 262 | fin_tiempo=1; |
cobasjuan | 1:d99665a519ed | 263 | segundos++; |
cobasjuan | 1:d99665a519ed | 264 | printf("Se acabo el tiempo!\n\r"); |
cobasjuan | 1:d99665a519ed | 265 | } |
cobasjuan | 1:d99665a519ed | 266 | } |
cobasjuan | 1:d99665a519ed | 267 | } |
cobasjuan | 1:d99665a519ed | 268 | |
cobasjuan | 1:d99665a519ed | 269 | void displays() // Envio de informacion de tiempo de juego a displays |
cobasjuan | 1:d99665a519ed | 270 | { |
cobasjuan | 1:d99665a519ed | 271 | dec=segundos/10; |
cobasjuan | 1:d99665a519ed | 272 | uni=segundos%10; |
cobasjuan | 1:d99665a519ed | 273 | if(reed_time == 0 && fin_tiempo == 0) { |
cobasjuan | 1:d99665a519ed | 274 | Unidades=uni; |
cobasjuan | 1:d99665a519ed | 275 | Decenas=dec; |
cobasjuan | 1:d99665a519ed | 276 | reed_time=1; |
cobasjuan | 1:d99665a519ed | 277 | } |
cobasjuan | 1:d99665a519ed | 278 | } |
cobasjuan | 1:d99665a519ed | 279 | |
cobasjuan | 1:d99665a519ed | 280 | |
cobasjuan | 1:d99665a519ed | 281 | |
cobasjuan | 0:9d8c86972a9d | 282 | void t() |
cobasjuan | 0:9d8c86972a9d | 283 | { |
cobasjuan | 0:9d8c86972a9d | 284 | if (tiempo > 0) |
cobasjuan | 0:9d8c86972a9d | 285 | tiempo--; |
cobasjuan | 0:9d8c86972a9d | 286 | } |