Mateo Morales
/
Tetris_3
Tetris funcionando al 80%
Movimiento.h@1:b327db3eb9ce, 2018-11-23 (annotated)
- 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?
User | Revision | Line number | New 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 |