Yosef Guevara Salamanca
/
cruzandoCalle
Juego de cruzar las calles, el jugador debe llegar hasta el otro punto para ganar
calle.cpp@6:fae23f72d7f0, 2018-11-13 (annotated)
- Committer:
- djinn77
- Date:
- Tue Nov 13 21:42:08 2018 +0000
- Revision:
- 6:fae23f72d7f0
- Parent:
- 5:3cfdf3e56c8f
- Child:
- 7:73af8e91e691
Organizado por funciones;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
djinn77 | 0:22386e919072 | 1 | #include "mbed.h" |
djinn77 | 0:22386e919072 | 2 | #include "avenidas.h" |
djinn77 | 4:074433a7addc | 3 | |
djinn77 | 0:22386e919072 | 4 | // Definicion de parametros de comunicacion |
djinn77 | 4:074433a7addc | 5 | |
djinn77 | 1:18fff1390131 | 6 | Serial pc(USBTX,USBRX); |
djinn77 | 4:074433a7addc | 7 | SPI deviceM(PB_5, PB_4, PB_3); //D4(gris), Ninguno, D3(azul) |
djinn77 | 4:074433a7addc | 8 | DigitalOut ssel (PA_4); //A2(morado) |
djinn77 | 3:ddb6c620cce7 | 9 | Ticker tp; |
djinn77 | 3:ddb6c620cce7 | 10 | int printjugador =1; |
djinn77 | 4:074433a7addc | 11 | |
djinn77 | 1:18fff1390131 | 12 | // Definiendo Botones |
djinn77 | 4:074433a7addc | 13 | |
djinn77 | 4:074433a7addc | 14 | AnalogIn vry(A3); |
djinn77 | 4:074433a7addc | 15 | AnalogIn vrx(A4); |
djinn77 | 4:074433a7addc | 16 | DigitalIn sw(A5); |
djinn77 | 1:18fff1390131 | 17 | |
djinn77 | 0:22386e919072 | 18 | // Definicion de Funciones |
djinn77 | 0:22386e919072 | 19 | void sendSPI(); |
djinn77 | 0:22386e919072 | 20 | void inicializar_matriz(); |
djinn77 | 3:ddb6c620cce7 | 21 | void printstatus(); |
djinn77 | 6:fae23f72d7f0 | 22 | void desplazar_der(); |
djinn77 | 6:fae23f72d7f0 | 23 | void desplazar_izq(); |
djinn77 | 6:fae23f72d7f0 | 24 | void arriba(); |
djinn77 | 6:fae23f72d7f0 | 25 | |
djinn77 | 0:22386e919072 | 26 | // Definicion de Variables |
djinn77 | 4:074433a7addc | 27 | |
djinn77 | 0:22386e919072 | 28 | uint16_t* nivel; |
djinn77 | 1:18fff1390131 | 29 | uint16_t* jugador; |
djinn77 | 3:ddb6c620cce7 | 30 | float velocidad = 1.0; |
djinn77 | 6:fae23f72d7f0 | 31 | float meas_vx; |
djinn77 | 6:fae23f72d7f0 | 32 | float meas_vy; |
djinn77 | 4:074433a7addc | 33 | |
djinn77 | 0:22386e919072 | 34 | void sendSPI(uint8_t d1, uint8_t d2) |
djinn77 | 0:22386e919072 | 35 | { |
djinn77 | 0:22386e919072 | 36 | deviceM.unlock(); |
djinn77 | 0:22386e919072 | 37 | ssel=0; |
djinn77 | 0:22386e919072 | 38 | deviceM.write(d1); |
djinn77 | 0:22386e919072 | 39 | deviceM.write(d2); |
djinn77 | 0:22386e919072 | 40 | ssel=1; |
djinn77 | 0:22386e919072 | 41 | deviceM.lock(); |
djinn77 | 0:22386e919072 | 42 | }; |
djinn77 | 4:074433a7addc | 43 | |
djinn77 | 4:074433a7addc | 44 | |
djinn77 | 0:22386e919072 | 45 | void inicializar_matriz(){ |
djinn77 | 0:22386e919072 | 46 | sendSPI(0x0c,1); |
djinn77 | 0:22386e919072 | 47 | sendSPI(0x0b,7); |
djinn77 | 0:22386e919072 | 48 | sendSPI(0x09,0); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ |
djinn77 | 0:22386e919072 | 49 | sendSPI(0x0A,0x00); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ |
djinn77 | 0:22386e919072 | 50 | |
djinn77 | 0:22386e919072 | 51 | int i; |
djinn77 | 0:22386e919072 | 52 | for (i=0;i<2;i++){ |
djinn77 | 0:22386e919072 | 53 | sendSPI(0x0F,1); |
djinn77 | 0:22386e919072 | 54 | wait (0.5); |
djinn77 | 0:22386e919072 | 55 | sendSPI(0x0F,0); |
djinn77 | 0:22386e919072 | 56 | wait (0.5); |
djinn77 | 0:22386e919072 | 57 | } |
djinn77 | 0:22386e919072 | 58 | |
djinn77 | 0:22386e919072 | 59 | } |
djinn77 | 4:074433a7addc | 60 | |
djinn77 | 4:074433a7addc | 61 | |
djinn77 | 0:22386e919072 | 62 | int main() { |
djinn77 | 1:18fff1390131 | 63 | pc.baud(38400); |
djinn77 | 0:22386e919072 | 64 | inicializar_matriz(); |
djinn77 | 0:22386e919072 | 65 | nivel= AV_1; |
djinn77 | 1:18fff1390131 | 66 | jugador=player; |
djinn77 | 3:ddb6c620cce7 | 67 | tp.attach(&printstatus,0.2); |
djinn77 | 6:fae23f72d7f0 | 68 | |
djinn77 | 4:074433a7addc | 69 | |
djinn77 | 0:22386e919072 | 70 | while(1){ |
djinn77 | 6:fae23f72d7f0 | 71 | |
djinn77 | 4:074433a7addc | 72 | meas_vx = vrx.read() * 3300; // Convierte el valor de lectura de la entrada entre 0-3300 eje X |
djinn77 | 4:074433a7addc | 73 | meas_vy = vry.read() * 3300; // Convierte el valor de lectura de la entrada entre 0-3300 eje Y |
djinn77 | 1:18fff1390131 | 74 | |
djinn77 | 6:fae23f72d7f0 | 75 | //------ realiza el corriemiento del vector hacia la izq y der respectivamente. |
djinn77 | 6:fae23f72d7f0 | 76 | |
djinn77 | 6:fae23f72d7f0 | 77 | if (meas_vx < 1600) // si se cumple esta condicion el jugador se desplaza a la izq |
djinn77 | 6:fae23f72d7f0 | 78 | desplazar_izq(); |
djinn77 | 6:fae23f72d7f0 | 79 | else if (meas_vx > 1700) // si se cumple esta condicion el jugador se desplaza a la der |
djinn77 | 6:fae23f72d7f0 | 80 | desplazar_der(); |
djinn77 | 6:fae23f72d7f0 | 81 | |
djinn77 | 6:fae23f72d7f0 | 82 | //------ mueve a el jugador hacia arriba en el mapa |
djinn77 | 6:fae23f72d7f0 | 83 | |
djinn77 | 6:fae23f72d7f0 | 84 | if(meas_vy < 1550) |
djinn77 | 6:fae23f72d7f0 | 85 | arriba(); |
djinn77 | 0:22386e919072 | 86 | |
djinn77 | 6:fae23f72d7f0 | 87 | |
djinn77 | 1:18fff1390131 | 88 | |
djinn77 | 4:074433a7addc | 89 | |
djinn77 | 1:18fff1390131 | 90 | // El siguient ciclo realiza el desplazamiento de los vehiculos |
djinn77 | 4:074433a7addc | 91 | |
djinn77 | 0:22386e919072 | 92 | int aux = nivel[0]; |
djinn77 | 0:22386e919072 | 93 | for(int i= 0; i<8;i++){ |
djinn77 | 0:22386e919072 | 94 | nivel[i]=nivel[i+1]; |
djinn77 | 0:22386e919072 | 95 | } |
djinn77 | 0:22386e919072 | 96 | nivel[7] = aux; |
djinn77 | 1:18fff1390131 | 97 | |
djinn77 | 3:ddb6c620cce7 | 98 | wait(velocidad); |
djinn77 | 3:ddb6c620cce7 | 99 | |
djinn77 | 0:22386e919072 | 100 | } |
djinn77 | 3:ddb6c620cce7 | 101 | } |
djinn77 | 6:fae23f72d7f0 | 102 | |
djinn77 | 6:fae23f72d7f0 | 103 | void desplazar_der(){ |
djinn77 | 6:fae23f72d7f0 | 104 | |
djinn77 | 6:fae23f72d7f0 | 105 | int der = jugador[7]; |
djinn77 | 6:fae23f72d7f0 | 106 | for(int i= 7; i>=0;i--){ |
djinn77 | 6:fae23f72d7f0 | 107 | jugador[i]=jugador[i-1]; |
djinn77 | 6:fae23f72d7f0 | 108 | } |
djinn77 | 6:fae23f72d7f0 | 109 | jugador[0] = der; |
djinn77 | 6:fae23f72d7f0 | 110 | |
djinn77 | 6:fae23f72d7f0 | 111 | } |
djinn77 | 6:fae23f72d7f0 | 112 | |
djinn77 | 6:fae23f72d7f0 | 113 | void desplazar_izq(){ |
djinn77 | 6:fae23f72d7f0 | 114 | |
djinn77 | 6:fae23f72d7f0 | 115 | int izq = jugador[0]; |
djinn77 | 6:fae23f72d7f0 | 116 | for(int i= 0; i<8;i++){ |
djinn77 | 6:fae23f72d7f0 | 117 | jugador[i]=jugador[i+1]; |
djinn77 | 6:fae23f72d7f0 | 118 | } |
djinn77 | 6:fae23f72d7f0 | 119 | jugador[7] = izq; |
djinn77 | 6:fae23f72d7f0 | 120 | |
djinn77 | 6:fae23f72d7f0 | 121 | } |
djinn77 | 4:074433a7addc | 122 | |
djinn77 | 6:fae23f72d7f0 | 123 | void arriba(){ |
djinn77 | 6:fae23f72d7f0 | 124 | |
djinn77 | 6:fae23f72d7f0 | 125 | int arb = 1; |
djinn77 | 6:fae23f72d7f0 | 126 | for(int i= 0; i<8;i++){ |
djinn77 | 6:fae23f72d7f0 | 127 | jugador[i]= jugador[i] << arb; |
djinn77 | 6:fae23f72d7f0 | 128 | } |
djinn77 | 6:fae23f72d7f0 | 129 | arb++; |
djinn77 | 6:fae23f72d7f0 | 130 | |
djinn77 | 6:fae23f72d7f0 | 131 | } |
djinn77 | 3:ddb6c620cce7 | 132 | void printstatus() |
djinn77 | 3:ddb6c620cce7 | 133 | { |
djinn77 | 3:ddb6c620cce7 | 134 | for(int j= 1; j<=8;j++) |
djinn77 | 3:ddb6c620cce7 | 135 | if (printjugador) |
djinn77 | 3:ddb6c620cce7 | 136 | sendSPI(j, nivel[j-1]|jugador[j-1]); |
djinn77 | 3:ddb6c620cce7 | 137 | else |
djinn77 | 3:ddb6c620cce7 | 138 | sendSPI(j, nivel[j-1]); |
djinn77 | 3:ddb6c620cce7 | 139 | printjugador =!printjugador; |
djinn77 | 0:22386e919072 | 140 | } |