Juego de cruzar las calles, el jugador debe llegar hasta el otro punto para ganar

Dependencies:   mbed

Committer:
djinn77
Date:
Tue Nov 13 20:42:42 2018 +0000
Revision:
5:3cfdf3e56c8f
Parent:
4:074433a7addc
Child:
6:fae23f72d7f0
Cambios segun perpectiva del tetris

Who changed what in which revision?

UserRevisionLine numberNew 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 0:22386e919072 22 // Definicion de Variables
djinn77 4:074433a7addc 23
djinn77 0:22386e919072 24 uint16_t* nivel;
djinn77 1:18fff1390131 25 uint16_t* jugador;
djinn77 3:ddb6c620cce7 26 float velocidad = 1.0;
djinn77 4:074433a7addc 27
djinn77 4:074433a7addc 28
djinn77 0:22386e919072 29 void sendSPI(uint8_t d1, uint8_t d2)
djinn77 0:22386e919072 30 {
djinn77 0:22386e919072 31 deviceM.unlock();
djinn77 0:22386e919072 32 ssel=0;
djinn77 0:22386e919072 33 deviceM.write(d1);
djinn77 0:22386e919072 34 deviceM.write(d2);
djinn77 0:22386e919072 35 ssel=1;
djinn77 0:22386e919072 36 deviceM.lock();
djinn77 0:22386e919072 37 };
djinn77 4:074433a7addc 38
djinn77 4:074433a7addc 39
djinn77 0:22386e919072 40 void inicializar_matriz(){
djinn77 0:22386e919072 41 sendSPI(0x0c,1);
djinn77 0:22386e919072 42 sendSPI(0x0b,7);
djinn77 0:22386e919072 43 sendSPI(0x09,0); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
djinn77 0:22386e919072 44 sendSPI(0x0A,0x00); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
djinn77 0:22386e919072 45
djinn77 0:22386e919072 46 int i;
djinn77 0:22386e919072 47 for (i=0;i<2;i++){
djinn77 0:22386e919072 48 sendSPI(0x0F,1);
djinn77 0:22386e919072 49 wait (0.5);
djinn77 0:22386e919072 50 sendSPI(0x0F,0);
djinn77 0:22386e919072 51 wait (0.5);
djinn77 0:22386e919072 52 }
djinn77 0:22386e919072 53
djinn77 0:22386e919072 54 }
djinn77 4:074433a7addc 55
djinn77 4:074433a7addc 56
djinn77 0:22386e919072 57 int main() {
djinn77 1:18fff1390131 58 pc.baud(38400);
djinn77 0:22386e919072 59 inicializar_matriz();
djinn77 0:22386e919072 60 nivel= AV_1;
djinn77 1:18fff1390131 61 jugador=player;
djinn77 3:ddb6c620cce7 62 tp.attach(&printstatus,0.2);
djinn77 4:074433a7addc 63 float meas_vx;
djinn77 4:074433a7addc 64 float meas_vy;
djinn77 4:074433a7addc 65
djinn77 0:22386e919072 66 while(1){
djinn77 4:074433a7addc 67 meas_vx = vrx.read() * 3300; // Convierte el valor de lectura de la entrada entre 0-3300 eje X
djinn77 4:074433a7addc 68 meas_vy = vry.read() * 3300; // Convierte el valor de lectura de la entrada entre 0-3300 eje Y
djinn77 1:18fff1390131 69 // realiza el corriemiento del vector hacia la izq.
djinn77 5:3cfdf3e56c8f 70 if(meas_vx < 1600){
djinn77 0:22386e919072 71
djinn77 1:18fff1390131 72 int izq = jugador[0];
djinn77 1:18fff1390131 73 for(int i= 0; i<8;i++){
djinn77 1:18fff1390131 74 jugador[i]=jugador[i+1];
djinn77 1:18fff1390131 75 }
djinn77 1:18fff1390131 76 jugador[7] = izq;
djinn77 1:18fff1390131 77 }
djinn77 1:18fff1390131 78
djinn77 1:18fff1390131 79
djinn77 1:18fff1390131 80 // realiza el corrimeinto del juegador hacie la der.
djinn77 5:3cfdf3e56c8f 81 if(meas_vx > 1700){
djinn77 0:22386e919072 82
djinn77 1:18fff1390131 83 int der = jugador[7];
djinn77 1:18fff1390131 84 for(int i= 7; i>=0;i--){
djinn77 1:18fff1390131 85 jugador[i]=jugador[i-1];
djinn77 0:22386e919072 86 }
djinn77 1:18fff1390131 87 jugador[0] = der;
djinn77 1:18fff1390131 88 }
djinn77 4:074433a7addc 89
djinn77 1:18fff1390131 90 // mueve el jugador de posicion en pruebas
djinn77 1:18fff1390131 91
djinn77 5:3cfdf3e56c8f 92 if(meas_vy < 1550){
djinn77 1:18fff1390131 93
djinn77 5:3cfdf3e56c8f 94 int arb = 1;
djinn77 1:18fff1390131 95 for(int i= 0; i<8;i++){
djinn77 5:3cfdf3e56c8f 96 jugador[i]= jugador[i] << arb;
djinn77 1:18fff1390131 97 }
djinn77 5:3cfdf3e56c8f 98 arb++;
djinn77 1:18fff1390131 99 }
djinn77 1:18fff1390131 100
djinn77 4:074433a7addc 101
djinn77 1:18fff1390131 102 // El siguient ciclo realiza el desplazamiento de los vehiculos
djinn77 4:074433a7addc 103
djinn77 0:22386e919072 104 int aux = nivel[0];
djinn77 0:22386e919072 105 for(int i= 0; i<8;i++){
djinn77 0:22386e919072 106 nivel[i]=nivel[i+1];
djinn77 0:22386e919072 107 }
djinn77 0:22386e919072 108 nivel[7] = aux;
djinn77 1:18fff1390131 109
djinn77 3:ddb6c620cce7 110 wait(velocidad);
djinn77 3:ddb6c620cce7 111
djinn77 0:22386e919072 112 }
djinn77 3:ddb6c620cce7 113 }
djinn77 4:074433a7addc 114
djinn77 3:ddb6c620cce7 115 void printstatus()
djinn77 3:ddb6c620cce7 116 {
djinn77 3:ddb6c620cce7 117 for(int j= 1; j<=8;j++)
djinn77 3:ddb6c620cce7 118 if (printjugador)
djinn77 3:ddb6c620cce7 119 sendSPI(j, nivel[j-1]|jugador[j-1]);
djinn77 3:ddb6c620cce7 120 else
djinn77 3:ddb6c620cce7 121 sendSPI(j, nivel[j-1]);
djinn77 3:ddb6c620cce7 122 printjugador =!printjugador;
djinn77 0:22386e919072 123 }