Tetris funcionando al 80%

Dependencies:   mbed

Committer:
Mateom0104
Date:
Fri Nov 23 01:00:30 2018 +0000
Revision:
1:b327db3eb9ce
Parent:
0:1006a6a7855b
Tetris sin 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 int mascarax;
Mateom0104 0:1006a6a7855b 4 int limited=0;
Mateom0104 0:1006a6a7855b 5 int limitei=0;
Mateom0104 0:1006a6a7855b 6 void borrarfantasma (void)
Mateom0104 0:1006a6a7855b 7 {
Mateom0104 0:1006a6a7855b 8 int i;
Mateom0104 0:1006a6a7855b 9 for(i=0;i<tamano;i++)
Mateom0104 0:1006a6a7855b 10 screen[posicion-i]=screen[posicion-i] & ((mascara)-1);
Mateom0104 0:1006a6a7855b 11 }
Mateom0104 0:1006a6a7855b 12
Mateom0104 0:1006a6a7855b 13
Mateom0104 0:1006a6a7855b 14 void pmenos(void)
Mateom0104 0:1006a6a7855b 15 {
Mateom0104 0:1006a6a7855b 16
Mateom0104 0:1006a6a7855b 17 if(limitei==0)
Mateom0104 0:1006a6a7855b 18 {
Mateom0104 0:1006a6a7855b 19 posicion_original=posicion_original-1;// determina hasta donde se mueve si chocar en la pared// cambiar en derecha
Mateom0104 0:1006a6a7855b 20 pc.printf("Posicion original %d\n",posicion_original);
Mateom0104 0:1006a6a7855b 21 }
Mateom0104 0:1006a6a7855b 22
Mateom0104 0:1006a6a7855b 23
Mateom0104 0:1006a6a7855b 24 if(((posicion_original+tamano) <= 8 && (posicion_original-1) >= -1 ) && ((screen[posicion+1] & (~(mascara-1))) == 0))
Mateom0104 0:1006a6a7855b 25 {
Mateom0104 0:1006a6a7855b 26 verificacion=1;
Mateom0104 0:1006a6a7855b 27 pc.printf("Verificacion %d\n",verificacion);
Mateom0104 0:1006a6a7855b 28
Mateom0104 0:1006a6a7855b 29 }
Mateom0104 0:1006a6a7855b 30 else
Mateom0104 0:1006a6a7855b 31 {
Mateom0104 0:1006a6a7855b 32 verificacion=0;
Mateom0104 1:b327db3eb9ce 33 velocidad= rapido;
Mateom0104 0:1006a6a7855b 34 pc.printf("Verificacion %d\n",verificacion);
Mateom0104 0:1006a6a7855b 35 limitei=1;
Mateom0104 0:1006a6a7855b 36 }
Mateom0104 0:1006a6a7855b 37
Mateom0104 0:1006a6a7855b 38 if (verificacion==1)
Mateom0104 0:1006a6a7855b 39 {
Mateom0104 0:1006a6a7855b 40 borrarfantasma();
Mateom0104 0:1006a6a7855b 41 mascarax=mascara;
Mateom0104 0:1006a6a7855b 42 velocidad= 0;
Mateom0104 0:1006a6a7855b 43 limitei=0;
Mateom0104 0:1006a6a7855b 44 }
Mateom0104 0:1006a6a7855b 45 }
Mateom0104 0:1006a6a7855b 46
Mateom0104 0:1006a6a7855b 47 void pmas(void)
Mateom0104 0:1006a6a7855b 48 {
Mateom0104 0:1006a6a7855b 49
Mateom0104 0:1006a6a7855b 50 if(limited==0)
Mateom0104 0:1006a6a7855b 51 {
Mateom0104 0:1006a6a7855b 52 posicion_original=posicion_original+1;// determina hasta donde se mueve si chocar en la pared
Mateom0104 0:1006a6a7855b 53 pc.printf("Posicion original %d\n",posicion_original);
Mateom0104 0:1006a6a7855b 54 pc.printf("Tamano %d\n",tamano);
Mateom0104 0:1006a6a7855b 55 }
Mateom0104 0:1006a6a7855b 56
Mateom0104 0:1006a6a7855b 57 if(((posicion_original+tamano) <= 8 && (posicion_original-1) >= -1 ) && ((screen[posicion-(tamano)] & (~(mascara-1))) == 0))
Mateom0104 0:1006a6a7855b 58 {
Mateom0104 0:1006a6a7855b 59 verificacion=1;
Mateom0104 0:1006a6a7855b 60 pc.printf("Verificacion %d\n",verificacion);
Mateom0104 0:1006a6a7855b 61 }
Mateom0104 0:1006a6a7855b 62 else
Mateom0104 0:1006a6a7855b 63 {
Mateom0104 0:1006a6a7855b 64 verificacion=0;
Mateom0104 1:b327db3eb9ce 65 velocidad= rapido;
Mateom0104 0:1006a6a7855b 66 pc.printf("Verificacion %d\n",verificacion);
Mateom0104 0:1006a6a7855b 67 limited=1;
Mateom0104 0:1006a6a7855b 68 }
Mateom0104 0:1006a6a7855b 69 pc.printf("Screen en -1 %d\n",screen[posicion-(tamano)]);
Mateom0104 0:1006a6a7855b 70
Mateom0104 0:1006a6a7855b 71 if (verificacion==1)
Mateom0104 0:1006a6a7855b 72 {
Mateom0104 0:1006a6a7855b 73 borrarfantasma();
Mateom0104 0:1006a6a7855b 74 mascarax=mascara;
Mateom0104 0:1006a6a7855b 75 velocidad= 0;
Mateom0104 0:1006a6a7855b 76 limited=0;
Mateom0104 0:1006a6a7855b 77 }
Mateom0104 0:1006a6a7855b 78
Mateom0104 0:1006a6a7855b 79 }
Mateom0104 0:1006a6a7855b 80
Mateom0104 0:1006a6a7855b 81
Mateom0104 0:1006a6a7855b 82
Mateom0104 0:1006a6a7855b 83
Mateom0104 0:1006a6a7855b 84 void giro90(void)
Mateom0104 0:1006a6a7855b 85 {
Mateom0104 0:1006a6a7855b 86 giro=giro+1;
Mateom0104 0:1006a6a7855b 87
Mateom0104 0:1006a6a7855b 88 if(giro>3)
Mateom0104 0:1006a6a7855b 89 giro=0;
Mateom0104 0:1006a6a7855b 90
Mateom0104 0:1006a6a7855b 91
Mateom0104 0:1006a6a7855b 92 }
Mateom0104 0:1006a6a7855b 93
Mateom0104 0:1006a6a7855b 94
Mateom0104 0:1006a6a7855b 95
Mateom0104 0:1006a6a7855b 96
Mateom0104 0:1006a6a7855b 97
Mateom0104 0:1006a6a7855b 98 void giros(void)
Mateom0104 0:1006a6a7855b 99 {
Mateom0104 0:1006a6a7855b 100 int i;
Mateom0104 0:1006a6a7855b 101
Mateom0104 0:1006a6a7855b 102 if(tamano>tamano2)
Mateom0104 0:1006a6a7855b 103 {
Mateom0104 0:1006a6a7855b 104 borrarfantasma();
Mateom0104 0:1006a6a7855b 105 verificacion=1;
Mateom0104 0:1006a6a7855b 106 tamano=tamano2;
Mateom0104 1:b327db3eb9ce 107 mascarax=mascara;
Mateom0104 0:1006a6a7855b 108 velocidad= 0;
Mateom0104 0:1006a6a7855b 109 giro90();
Mateom0104 0:1006a6a7855b 110 }
Mateom0104 0:1006a6a7855b 111 else if (tamano<tamano2)
Mateom0104 0:1006a6a7855b 112 {
Mateom0104 0:1006a6a7855b 113 for(i=(tamano+1);i<=tamano2;i++)
Mateom0104 0:1006a6a7855b 114 {
Mateom0104 0:1006a6a7855b 115
Mateom0104 1:b327db3eb9ce 116 if (((posicion_original+tamano2) <= 8 ) && ((screen[posicion-(i)] & (~(mascara-1))) == 0))
Mateom0104 0:1006a6a7855b 117 {
Mateom0104 0:1006a6a7855b 118 verificacion=1;
Mateom0104 0:1006a6a7855b 119 tamano=tamano2;
Mateom0104 0:1006a6a7855b 120 borrarfantasma();
Mateom0104 0:1006a6a7855b 121 velocidad= 0;
Mateom0104 0:1006a6a7855b 122 giro90();
Mateom0104 0:1006a6a7855b 123 mascarax=mascara;
Mateom0104 0:1006a6a7855b 124 break;
Mateom0104 0:1006a6a7855b 125 }
Mateom0104 0:1006a6a7855b 126 else
Mateom0104 0:1006a6a7855b 127 {
Mateom0104 0:1006a6a7855b 128 verificacion=0;
Mateom0104 0:1006a6a7855b 129 }
Mateom0104 0:1006a6a7855b 130
Mateom0104 0:1006a6a7855b 131
Mateom0104 0:1006a6a7855b 132 }
Mateom0104 0:1006a6a7855b 133 }
Mateom0104 0:1006a6a7855b 134 else // miden lo mismo
Mateom0104 0:1006a6a7855b 135 {
Mateom0104 0:1006a6a7855b 136 verificacion=1;
Mateom0104 0:1006a6a7855b 137 tamano=tamano2;
Mateom0104 0:1006a6a7855b 138 borrarfantasma();
Mateom0104 0:1006a6a7855b 139 velocidad= 0;
Mateom0104 0:1006a6a7855b 140 mascarax=mascara;
Mateom0104 0:1006a6a7855b 141 giro90();
Mateom0104 0:1006a6a7855b 142 }
Mateom0104 0:1006a6a7855b 143
Mateom0104 0:1006a6a7855b 144
Mateom0104 0:1006a6a7855b 145
Mateom0104 0:1006a6a7855b 146
Mateom0104 0:1006a6a7855b 147 }
Mateom0104 0:1006a6a7855b 148
Mateom0104 0:1006a6a7855b 149