Tetris funcionando al 80%

Dependencies:   mbed

Committer:
Mateom0104
Date:
Fri Nov 23 03:27:09 2018 +0000
Revision:
2:751ddd7c6936
Parent:
1:b327db3eb9ce
Tetris con sensor de color

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mateom0104 0:1006a6a7855b 1 #include "mbed.h"
Mateom0104 0:1006a6a7855b 2
Mateom0104 0:1006a6a7855b 3 uint8_t start[8]={0,0,0,0,0,0,0,0};
Mateom0104 0:1006a6a7855b 4 int tamano;
Mateom0104 0:1006a6a7855b 5 int posicion;
Mateom0104 0:1006a6a7855b 6 int posicion_original;
Mateom0104 0:1006a6a7855b 7 int verificar2;
Mateom0104 0:1006a6a7855b 8 int tamano2;
Mateom0104 0:1006a6a7855b 9 int giro;
Mateom0104 0:1006a6a7855b 10 void start0()
Mateom0104 0:1006a6a7855b 11 {
Mateom0104 0:1006a6a7855b 12 int i;
Mateom0104 0:1006a6a7855b 13 for (i=0;i<7;i++)
Mateom0104 0:1006a6a7855b 14 {
Mateom0104 0:1006a6a7855b 15 start[i]=0;
Mateom0104 0:1006a6a7855b 16 }
Mateom0104 0:1006a6a7855b 17 }
Mateom0104 0:1006a6a7855b 18
Mateom0104 0:1006a6a7855b 19 void a(uint8_t giro)
Mateom0104 0:1006a6a7855b 20 {
Mateom0104 0:1006a6a7855b 21 start0();
Mateom0104 0:1006a6a7855b 22 posicion_original=posicion;
Mateom0104 0:1006a6a7855b 23 posicion=7-posicion;
Mateom0104 0:1006a6a7855b 24 switch(giro)
Mateom0104 0:1006a6a7855b 25 {
Mateom0104 0:1006a6a7855b 26 case 0:
Mateom0104 0:1006a6a7855b 27 start[posicion-2]=0b10000000;
Mateom0104 0:1006a6a7855b 28 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 29 start[posicion-0]=0b10000000;
Mateom0104 0:1006a6a7855b 30 tamano=3;
Mateom0104 0:1006a6a7855b 31 tamano2=2;
Mateom0104 1:b327db3eb9ce 32 verificar2=0;
Mateom0104 0:1006a6a7855b 33 break;
Mateom0104 0:1006a6a7855b 34
Mateom0104 0:1006a6a7855b 35
Mateom0104 0:1006a6a7855b 36 case 1:
Mateom0104 0:1006a6a7855b 37 start[posicion-1]=0b01000000;
Mateom0104 0:1006a6a7855b 38 start[posicion-0]=0b11100000;
Mateom0104 0:1006a6a7855b 39 tamano=2;
Mateom0104 0:1006a6a7855b 40 tamano2=3;
Mateom0104 1:b327db3eb9ce 41 verificar2=0;
Mateom0104 0:1006a6a7855b 42 break;
Mateom0104 0:1006a6a7855b 43
Mateom0104 0:1006a6a7855b 44
Mateom0104 0:1006a6a7855b 45 case 2:
Mateom0104 0:1006a6a7855b 46 start[posicion-2]=0b01000000;
Mateom0104 0:1006a6a7855b 47 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 48 start[posicion-0]=0b01000000;
Mateom0104 0:1006a6a7855b 49 tamano=3;
Mateom0104 0:1006a6a7855b 50 tamano2=2;
Mateom0104 1:b327db3eb9ce 51 verificar2=0;
Mateom0104 0:1006a6a7855b 52 break;
Mateom0104 0:1006a6a7855b 53
Mateom0104 0:1006a6a7855b 54
Mateom0104 0:1006a6a7855b 55 case 3:
Mateom0104 0:1006a6a7855b 56 start[posicion-1]=0b11100000;
Mateom0104 0:1006a6a7855b 57 start[posicion-0]=0b01000000;
Mateom0104 0:1006a6a7855b 58 tamano=2;
Mateom0104 0:1006a6a7855b 59 tamano2=3;
Mateom0104 1:b327db3eb9ce 60 verificar2=0;
Mateom0104 0:1006a6a7855b 61 break;
Mateom0104 0:1006a6a7855b 62
Mateom0104 0:1006a6a7855b 63 default: posicion_original=20;
Mateom0104 0:1006a6a7855b 64
Mateom0104 0:1006a6a7855b 65 }
Mateom0104 0:1006a6a7855b 66
Mateom0104 0:1006a6a7855b 67
Mateom0104 0:1006a6a7855b 68 }
Mateom0104 0:1006a6a7855b 69 void b(uint8_t giro)
Mateom0104 0:1006a6a7855b 70 {
Mateom0104 0:1006a6a7855b 71 start0();
Mateom0104 0:1006a6a7855b 72 posicion_original=posicion;
Mateom0104 0:1006a6a7855b 73 posicion=7-posicion;
Mateom0104 0:1006a6a7855b 74
Mateom0104 0:1006a6a7855b 75 switch(giro)
Mateom0104 0:1006a6a7855b 76 {
Mateom0104 0:1006a6a7855b 77 case 0:
Mateom0104 0:1006a6a7855b 78 start[posicion-0]=0b11100000;
Mateom0104 0:1006a6a7855b 79 tamano=1;
Mateom0104 0:1006a6a7855b 80 tamano2=3;
Mateom0104 1:b327db3eb9ce 81 verificar2=0;
Mateom0104 0:1006a6a7855b 82 break;
Mateom0104 0:1006a6a7855b 83
Mateom0104 0:1006a6a7855b 84
Mateom0104 0:1006a6a7855b 85 case 1:
Mateom0104 0:1006a6a7855b 86
Mateom0104 0:1006a6a7855b 87 start[posicion-2]=0b10000000;
Mateom0104 0:1006a6a7855b 88 start[posicion-1]=0b10000000;
Mateom0104 0:1006a6a7855b 89 start[posicion-0]=0b10000000;
Mateom0104 0:1006a6a7855b 90 tamano=3;
Mateom0104 0:1006a6a7855b 91 tamano2=1;
Mateom0104 1:b327db3eb9ce 92 verificar2=0;
Mateom0104 0:1006a6a7855b 93 break;
Mateom0104 0:1006a6a7855b 94
Mateom0104 0:1006a6a7855b 95
Mateom0104 0:1006a6a7855b 96 case 2:
Mateom0104 0:1006a6a7855b 97 start[posicion-0]=0b11100000;
Mateom0104 0:1006a6a7855b 98 tamano=1;
Mateom0104 0:1006a6a7855b 99 tamano2=3;
Mateom0104 1:b327db3eb9ce 100 verificar2=0;
Mateom0104 0:1006a6a7855b 101 break;
Mateom0104 0:1006a6a7855b 102
Mateom0104 0:1006a6a7855b 103
Mateom0104 0:1006a6a7855b 104 case 3:
Mateom0104 0:1006a6a7855b 105 start[posicion-2]=0b10000000;
Mateom0104 0:1006a6a7855b 106 start[posicion-1]=0b10000000;
Mateom0104 0:1006a6a7855b 107 start[posicion-0]=0b10000000;
Mateom0104 0:1006a6a7855b 108 tamano=3;
Mateom0104 0:1006a6a7855b 109 tamano2=1;
Mateom0104 1:b327db3eb9ce 110 verificar2=0;
Mateom0104 0:1006a6a7855b 111 break;
Mateom0104 0:1006a6a7855b 112
Mateom0104 0:1006a6a7855b 113 default: posicion_original=20;
Mateom0104 0:1006a6a7855b 114
Mateom0104 0:1006a6a7855b 115 }
Mateom0104 0:1006a6a7855b 116
Mateom0104 0:1006a6a7855b 117 }
Mateom0104 0:1006a6a7855b 118
Mateom0104 0:1006a6a7855b 119 void c(uint8_t giro)
Mateom0104 0:1006a6a7855b 120 {
Mateom0104 0:1006a6a7855b 121 start0();
Mateom0104 0:1006a6a7855b 122 posicion_original=posicion;
Mateom0104 0:1006a6a7855b 123 posicion=7-posicion;
Mateom0104 0:1006a6a7855b 124 switch(giro)
Mateom0104 0:1006a6a7855b 125 {
Mateom0104 0:1006a6a7855b 126 case 0:
Mateom0104 0:1006a6a7855b 127 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 128 start[posicion-0]=0b11000000;
Mateom0104 0:1006a6a7855b 129 tamano=2;
Mateom0104 0:1006a6a7855b 130 tamano2=2;
Mateom0104 1:b327db3eb9ce 131 verificar2=0;
Mateom0104 0:1006a6a7855b 132 break;
Mateom0104 0:1006a6a7855b 133
Mateom0104 0:1006a6a7855b 134
Mateom0104 0:1006a6a7855b 135 case 1:
Mateom0104 0:1006a6a7855b 136 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 137 start[posicion-0]=0b11000000;
Mateom0104 0:1006a6a7855b 138 tamano=2;
Mateom0104 0:1006a6a7855b 139 tamano2=2;
Mateom0104 1:b327db3eb9ce 140 verificar2=0;
Mateom0104 0:1006a6a7855b 141 break;
Mateom0104 0:1006a6a7855b 142
Mateom0104 0:1006a6a7855b 143
Mateom0104 0:1006a6a7855b 144 case 2:
Mateom0104 0:1006a6a7855b 145 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 146 start[posicion-0]=0b11000000;
Mateom0104 0:1006a6a7855b 147 tamano=2;
Mateom0104 0:1006a6a7855b 148 tamano2=2;
Mateom0104 1:b327db3eb9ce 149 verificar2=0;
Mateom0104 0:1006a6a7855b 150 break;
Mateom0104 0:1006a6a7855b 151
Mateom0104 0:1006a6a7855b 152
Mateom0104 0:1006a6a7855b 153 case 3:
Mateom0104 0:1006a6a7855b 154 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 155 start[posicion-0]=0b11000000;
Mateom0104 0:1006a6a7855b 156 tamano=2;
Mateom0104 0:1006a6a7855b 157 tamano2=2;
Mateom0104 1:b327db3eb9ce 158 verificar2=0;
Mateom0104 0:1006a6a7855b 159 break;
Mateom0104 0:1006a6a7855b 160
Mateom0104 0:1006a6a7855b 161 default: posicion_original=20;
Mateom0104 0:1006a6a7855b 162
Mateom0104 0:1006a6a7855b 163 }
Mateom0104 0:1006a6a7855b 164
Mateom0104 0:1006a6a7855b 165 }
Mateom0104 0:1006a6a7855b 166
Mateom0104 0:1006a6a7855b 167 void d(uint8_t giro)
Mateom0104 0:1006a6a7855b 168 {
Mateom0104 0:1006a6a7855b 169 start0();
Mateom0104 0:1006a6a7855b 170 posicion_original=posicion;
Mateom0104 0:1006a6a7855b 171 posicion=7-posicion;
Mateom0104 0:1006a6a7855b 172 switch(giro)
Mateom0104 0:1006a6a7855b 173 {
Mateom0104 0:1006a6a7855b 174 case 0:
Mateom0104 0:1006a6a7855b 175 start[posicion-1]=0b11100000;
Mateom0104 0:1006a6a7855b 176 start[posicion-0]=0b10000000;
Mateom0104 0:1006a6a7855b 177 tamano=2;
Mateom0104 0:1006a6a7855b 178 tamano2=3;
Mateom0104 1:b327db3eb9ce 179 verificar2=0;
Mateom0104 0:1006a6a7855b 180 break;
Mateom0104 0:1006a6a7855b 181
Mateom0104 0:1006a6a7855b 182
Mateom0104 0:1006a6a7855b 183 case 1:
Mateom0104 0:1006a6a7855b 184 start[posicion-2]=0b10000000;
Mateom0104 0:1006a6a7855b 185 start[posicion-1]=0b10000000;
Mateom0104 0:1006a6a7855b 186 start[posicion-0]=0b11000000;
Mateom0104 0:1006a6a7855b 187 tamano=3;
Mateom0104 0:1006a6a7855b 188 tamano2=2;
Mateom0104 1:b327db3eb9ce 189 verificar2=0;
Mateom0104 0:1006a6a7855b 190 break;
Mateom0104 0:1006a6a7855b 191
Mateom0104 0:1006a6a7855b 192
Mateom0104 0:1006a6a7855b 193 case 2:
Mateom0104 0:1006a6a7855b 194 start[posicion-1]=0b00100000;
Mateom0104 0:1006a6a7855b 195 start[posicion-0]=0b11100000;
Mateom0104 0:1006a6a7855b 196 tamano=2;
Mateom0104 0:1006a6a7855b 197 verificar2=1;
Mateom0104 0:1006a6a7855b 198 tamano2=3;
Mateom0104 0:1006a6a7855b 199 break;
Mateom0104 0:1006a6a7855b 200
Mateom0104 0:1006a6a7855b 201
Mateom0104 0:1006a6a7855b 202 case 3:
Mateom0104 0:1006a6a7855b 203 start[posicion-2]=0b11000000;
Mateom0104 0:1006a6a7855b 204 start[posicion-1]=0b01000000;
Mateom0104 0:1006a6a7855b 205 start[posicion-0]=0b01000000;
Mateom0104 0:1006a6a7855b 206 tamano=3;
Mateom0104 0:1006a6a7855b 207 tamano2=2;
Mateom0104 1:b327db3eb9ce 208 verificar2=0;
Mateom0104 0:1006a6a7855b 209 break;
Mateom0104 0:1006a6a7855b 210 default: posicion_original=20;
Mateom0104 0:1006a6a7855b 211
Mateom0104 0:1006a6a7855b 212
Mateom0104 0:1006a6a7855b 213 }
Mateom0104 0:1006a6a7855b 214
Mateom0104 0:1006a6a7855b 215 }
Mateom0104 0:1006a6a7855b 216
Mateom0104 0:1006a6a7855b 217 void e(uint8_t giro)
Mateom0104 0:1006a6a7855b 218 {
Mateom0104 0:1006a6a7855b 219 start0();
Mateom0104 0:1006a6a7855b 220 posicion_original=posicion;
Mateom0104 0:1006a6a7855b 221 posicion=7-posicion;
Mateom0104 0:1006a6a7855b 222 switch(giro)
Mateom0104 0:1006a6a7855b 223 {
Mateom0104 0:1006a6a7855b 224 case 0:
Mateom0104 0:1006a6a7855b 225 start[posicion-1]=0b10000000;
Mateom0104 0:1006a6a7855b 226 start[posicion-0]=0b11100000;
Mateom0104 0:1006a6a7855b 227 tamano=2;
Mateom0104 0:1006a6a7855b 228 tamano2=3;
Mateom0104 1:b327db3eb9ce 229 verificar2=0;
Mateom0104 0:1006a6a7855b 230 break;
Mateom0104 0:1006a6a7855b 231
Mateom0104 0:1006a6a7855b 232
Mateom0104 0:1006a6a7855b 233 case 1:
Mateom0104 0:1006a6a7855b 234 start[posicion-2]=0b01000000;
Mateom0104 0:1006a6a7855b 235 start[posicion-1]=0b01000000;
Mateom0104 0:1006a6a7855b 236 start[posicion-0]=0b11000000;
Mateom0104 0:1006a6a7855b 237 tamano=3;
Mateom0104 0:1006a6a7855b 238 tamano2=2;
Mateom0104 1:b327db3eb9ce 239 verificar2=0;
Mateom0104 0:1006a6a7855b 240 break;
Mateom0104 0:1006a6a7855b 241
Mateom0104 0:1006a6a7855b 242
Mateom0104 0:1006a6a7855b 243 case 2:
Mateom0104 0:1006a6a7855b 244 start[posicion-1]=0b11100000;
Mateom0104 0:1006a6a7855b 245 start[posicion-0]=0b00100000;
Mateom0104 0:1006a6a7855b 246 tamano=2;
Mateom0104 0:1006a6a7855b 247 tamano2=3;
Mateom0104 0:1006a6a7855b 248 verificar2=1;
Mateom0104 0:1006a6a7855b 249 break;
Mateom0104 0:1006a6a7855b 250
Mateom0104 0:1006a6a7855b 251
Mateom0104 0:1006a6a7855b 252 case 3:
Mateom0104 0:1006a6a7855b 253 start[posicion-2]=0b11000000;
Mateom0104 0:1006a6a7855b 254 start[posicion-1]=0b10000000;
Mateom0104 0:1006a6a7855b 255 start[posicion-0]=0b10000000;
Mateom0104 0:1006a6a7855b 256 tamano=3;
Mateom0104 0:1006a6a7855b 257 tamano2=2;
Mateom0104 1:b327db3eb9ce 258 verificar2=0;
Mateom0104 0:1006a6a7855b 259 break;
Mateom0104 0:1006a6a7855b 260
Mateom0104 0:1006a6a7855b 261 default: posicion_original=20;
Mateom0104 0:1006a6a7855b 262
Mateom0104 0:1006a6a7855b 263 }
Mateom0104 0:1006a6a7855b 264
Mateom0104 0:1006a6a7855b 265 }
Mateom0104 0:1006a6a7855b 266
Mateom0104 0:1006a6a7855b 267 void f (uint8_t giro)
Mateom0104 0:1006a6a7855b 268 {
Mateom0104 0:1006a6a7855b 269 start0();
Mateom0104 0:1006a6a7855b 270 posicion_original=posicion;
Mateom0104 0:1006a6a7855b 271 posicion=7-posicion;
Mateom0104 0:1006a6a7855b 272 switch(giro)
Mateom0104 0:1006a6a7855b 273 {
Mateom0104 0:1006a6a7855b 274 case 0:
Mateom0104 0:1006a6a7855b 275 start[posicion-2]=0b10000000;
Mateom0104 0:1006a6a7855b 276 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 277 start[posicion-0]=0b01000000;
Mateom0104 0:1006a6a7855b 278 tamano=3;
Mateom0104 0:1006a6a7855b 279 tamano2=2;
Mateom0104 1:b327db3eb9ce 280 verificar2=0;
Mateom0104 0:1006a6a7855b 281 break;
Mateom0104 0:1006a6a7855b 282
Mateom0104 0:1006a6a7855b 283
Mateom0104 0:1006a6a7855b 284 case 1:
Mateom0104 0:1006a6a7855b 285 start[posicion-1]=0b01100000;
Mateom0104 0:1006a6a7855b 286 start[posicion-0]=0b11000000;
Mateom0104 0:1006a6a7855b 287 tamano=2;
Mateom0104 0:1006a6a7855b 288 tamano2=3;
Mateom0104 1:b327db3eb9ce 289 verificar2=0;
Mateom0104 0:1006a6a7855b 290 break;
Mateom0104 0:1006a6a7855b 291
Mateom0104 0:1006a6a7855b 292
Mateom0104 0:1006a6a7855b 293 case 2:
Mateom0104 0:1006a6a7855b 294 start[posicion-2]=0b10000000;
Mateom0104 0:1006a6a7855b 295 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 296 start[posicion-0]=0b01000000;
Mateom0104 0:1006a6a7855b 297 tamano=3;
Mateom0104 0:1006a6a7855b 298 tamano2=2;
Mateom0104 1:b327db3eb9ce 299 verificar2=0;
Mateom0104 0:1006a6a7855b 300 break;
Mateom0104 0:1006a6a7855b 301
Mateom0104 0:1006a6a7855b 302
Mateom0104 0:1006a6a7855b 303 case 3:
Mateom0104 0:1006a6a7855b 304 start[posicion-1]=0b01100000;
Mateom0104 0:1006a6a7855b 305 start[posicion-0]=0b11000000;
Mateom0104 0:1006a6a7855b 306 tamano=2;
Mateom0104 0:1006a6a7855b 307 tamano2=3;
Mateom0104 1:b327db3eb9ce 308 verificar2=0;
Mateom0104 0:1006a6a7855b 309 break;
Mateom0104 0:1006a6a7855b 310
Mateom0104 0:1006a6a7855b 311 default: posicion_original=20;
Mateom0104 0:1006a6a7855b 312
Mateom0104 0:1006a6a7855b 313 }
Mateom0104 0:1006a6a7855b 314
Mateom0104 0:1006a6a7855b 315 }
Mateom0104 0:1006a6a7855b 316
Mateom0104 0:1006a6a7855b 317
Mateom0104 0:1006a6a7855b 318 void g (uint8_t giro)
Mateom0104 0:1006a6a7855b 319 {
Mateom0104 0:1006a6a7855b 320 start0();
Mateom0104 0:1006a6a7855b 321 posicion_original=posicion;
Mateom0104 0:1006a6a7855b 322 posicion=7-posicion;
Mateom0104 0:1006a6a7855b 323 switch(giro)
Mateom0104 0:1006a6a7855b 324 {
Mateom0104 0:1006a6a7855b 325 case 0:
Mateom0104 0:1006a6a7855b 326 start[posicion-2]=0b01000000;
Mateom0104 0:1006a6a7855b 327 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 328 start[posicion-0]=0b10000000;
Mateom0104 0:1006a6a7855b 329 tamano=3;
Mateom0104 0:1006a6a7855b 330 tamano2=2;
Mateom0104 1:b327db3eb9ce 331 verificar2=0;
Mateom0104 0:1006a6a7855b 332 break;
Mateom0104 0:1006a6a7855b 333
Mateom0104 0:1006a6a7855b 334
Mateom0104 0:1006a6a7855b 335 case 1:
Mateom0104 0:1006a6a7855b 336 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 337 start[posicion-0]=0b01100000;
Mateom0104 0:1006a6a7855b 338 tamano=2;
Mateom0104 0:1006a6a7855b 339 tamano2=3;
Mateom0104 1:b327db3eb9ce 340 verificar2=0;
Mateom0104 0:1006a6a7855b 341 break;
Mateom0104 0:1006a6a7855b 342
Mateom0104 0:1006a6a7855b 343
Mateom0104 0:1006a6a7855b 344
Mateom0104 0:1006a6a7855b 345 case 2:
Mateom0104 0:1006a6a7855b 346 start[posicion-2]=0b01000000;
Mateom0104 0:1006a6a7855b 347 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 348 start[posicion-0]=0b10000000;
Mateom0104 0:1006a6a7855b 349 tamano=3;
Mateom0104 0:1006a6a7855b 350 tamano2=2;
Mateom0104 1:b327db3eb9ce 351 verificar2=0;
Mateom0104 0:1006a6a7855b 352 break;
Mateom0104 0:1006a6a7855b 353
Mateom0104 0:1006a6a7855b 354
Mateom0104 0:1006a6a7855b 355 case 3:
Mateom0104 0:1006a6a7855b 356 start[posicion-1]=0b11000000;
Mateom0104 0:1006a6a7855b 357 start[posicion-0]=0b01100000;
Mateom0104 0:1006a6a7855b 358 tamano=2;
Mateom0104 0:1006a6a7855b 359 tamano2=3;
Mateom0104 1:b327db3eb9ce 360 verificar2=0;
Mateom0104 0:1006a6a7855b 361 break;
Mateom0104 0:1006a6a7855b 362
Mateom0104 0:1006a6a7855b 363 default: posicion_original=20;
Mateom0104 0:1006a6a7855b 364
Mateom0104 0:1006a6a7855b 365 }
Mateom0104 0:1006a6a7855b 366
Mateom0104 0:1006a6a7855b 367 }