Yosef Guevara Salamanca
/
Brick_game_1
Selecciona los juegos
Revision 5:1bee785cac7f, committed 2018-11-21
- Comitter:
- djinn77
- Date:
- Wed Nov 21 21:52:41 2018 +0000
- Parent:
- 4:4d6b70e3dda3
- Commit message:
- final_2;
Changed in this revision
diff -r 4d6b70e3dda3 -r 1bee785cac7f avenidas.h --- a/avenidas.h Wed Nov 21 19:43:34 2018 +0000 +++ b/avenidas.h Wed Nov 21 21:52:41 2018 +0000 @@ -19,7 +19,17 @@ 0b01100110, 0b00000000, 0b00000000}; - + + uint16_t TRES[8]={0b00000000, + 0b00000000, + 0b01101110, + 0b01011010, + 0b01001010, + 0b01001010, + 0b00000000, + 0b00000000}; + + uint16_t SELEC[8]={0b00000000, 0b00000000, 0b01111110,
diff -r 4d6b70e3dda3 -r 1bee785cac7f brick.cpp --- a/brick.cpp Wed Nov 21 19:43:34 2018 +0000 +++ b/brick.cpp Wed Nov 21 21:52:41 2018 +0000 @@ -2,6 +2,8 @@ #include "mbed.h" #include "piezas.h" #include "avenidas.h" +#include "vehiculos.h" + //#define DEBUG 1 Serial pc(USBTX,USBRX); SPI deviceM(PB_5, PB_4, PB_3); // D4(gris), Ninguno, D3(azul) @@ -25,6 +27,9 @@ void calle_funtion(); void tetris(); +void carros(); +void pantalla_pr(); +void himno_legria(); // funciones de cruzando la calle @@ -48,6 +53,16 @@ void desplazar_der_tx(); void aum_velocidad_tx(); void perder_tx(); +//funciones carro + +void desplazar_izq(); +void desplazar_der(); +void selec_nivel(); +void desplazar(); +void selec(); +void juego(); +void printstatus(); +void aum_velocidad_cr(); uint16_t* girar(uint16_t* pieza, int posicion); // Declaracion de variables tetris @@ -77,10 +92,21 @@ uint8_t ubicacion; uint8_t conteo = 2; + +// Definicion de Variables carro + +uint16_t* fail; +uint16_t* camino; +uint8_t enable_der=1; +uint8_t enable_izq=1; +uint8_t enable_abj=1; +uint8_t pos; +uint8_t posicion_fig=3; +float velocidad_cr = 0.4; + // Funciones pantalla principal -void pantalla_pr(); -void himno_legria(); + void sendSPI(uint8_t d1, uint8_t d2) { @@ -133,17 +159,20 @@ else if(meas_vx > 1700) selec_p--; - if(selec_p > 2) + if(selec_p > 3) selec_p=0; else if (selec_p < 0) - selec_p=2; + selec_p=3; if(selec_p == 0) global_disp = SELEC; else if (selec_p == 1) global_disp = UNO; - else - global_disp = DOS; + else if (selec_p == 2) + global_disp = DOS; + else + global_disp = TRES; + wait(0.5); /* if(meas_vx < 1600) global_disp = DOS, selec_p=2; @@ -159,8 +188,11 @@ calle_funtion(); else if (selec_p==2 && sel==1) tetris(); - else if (selec_p==0 && sel==1) + else if (selec_p==3 && sel==1) + carros(); + else if (selec_p==3 && sel==1) himno_legria(); + } } @@ -711,4 +743,126 @@ wait(0.5*duracion2[i]); } NVIC_SystemReset(); -} \ No newline at end of file +} + + +// Funciones del carro + +void carros(){ + + while(1){ + + selec(); + + } + + } +void selec(){ + + figura=rand()%4; + + switch(figura){ //Este switch escoje la figura con que trabajaar + case 0: // carro derecha + nivel = CR_DER; + break; + case 1: // carro izquierda + nivel = CR_IZQ; + break; + case 2: // caja derecha + nivel = CJ_DER; + break; + case 3: // caja izquierda + nivel = CJ_IZQ; + break; + } + + juego(); + + } + + + void juego(){ + + jugador=MICARRO; + camino= CALLE; + fail=EQUIS; + //tp.attach(&printstatus,0.2); + enable_abj=1; + enable_der=1; + enable_izq=1; + // Declaracion de Variables de lectura del jostick + float meas_vx; + int i=0; + +while(enable_abj){ + + int j=1; // inicia el contador j en 1 + + while(j<=8){ //se encarga de seleccionar que posicion del vector imprimira + + sendSPI(j, jugador[j-1]|(nivel[j-1]>>i)|camino[j-1]); //Imprime el resultado de aplicar OR a la memoria y al desplamamiento de imprimir + //wait(0.1); // Activar este wait para pruebas de desplazamiento y captura de los datos + + if(i==13){ //Detiene el desplazamiento cuando los bits tocan fondo, + enable_abj=0;// desabilitador del ciclo while + } + if((jugador[j-1]&(nivel[j-1]>>i))!=0){ + + NVIC_SystemReset(); + + } + j++; + } + wait(velocidad_cr); // espera para tomar el otro valor de lectura + // ----------------------Lectura del jostick----------------------------- + + // Lectura de parametros del jostick + meas_vx = vrx.read() * 3300; // Convierte el valor de lectura de la entrada entre 0-3300 eje X + + if (meas_vx < 1600 && enable_izq) + desplazar_izq(); + else if (meas_vx > 1700 && enable_der) + desplazar_der(); + i++; + pulsador_abj.fall(&aum_velocidad_cr); + } +} + +void desplazar_izq(){ + + enable_der=1; + posicion_fig--; + + + if(posicion_fig==2) + enable_izq=0; + + + int izq = jugador[0]; + for(int i= 0; i<8;i++){ + jugador[i]=jugador[i+1]; + } + jugador[7] = izq; + +} + +void desplazar_der(){ + + enable_izq=1; + posicion_fig++; + + if(posicion_fig==5) + enable_der=0; + + int der = jugador[7]; + for(int i= 7; i>=0;i--){ + jugador[i]=jugador[i-1]; + } + jugador[0] = der; + + } + + void aum_velocidad_cr(){ + velocidad_cr=0.2; + } + \ No newline at end of file
diff -r 4d6b70e3dda3 -r 1bee785cac7f vehiculos.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vehiculos.h Wed Nov 21 21:52:41 2018 +0000 @@ -0,0 +1,68 @@ +#ifndef VEHICULOS_H +#define VEHICULOS_H +#include "mbed.h" + +uint16_t MICARRO[8]={0b00000000, + 0b00000000, + 0b00000101, + 0b00001111, + 0b00000101, + 0b00000000, + 0b00000000, + 0b00000000}; + + uint16_t CALLE[8]={ 0b11111111, + 0b00000000, + 0b00000000, + 0b00000000, + 0b00000000, + 0b00000000, + 0b00000000, + 0b11111111}; + + uint16_t CR_DER[8]={0b00000000000, + 0b01010000000, + 0b11110000000, + 0b01010000000, + 0b00000000000, + 0b00000000000, + 0b00000000000, + 0b00000000000}; + + uint16_t CR_IZQ[8]={0b00000000000, + 0b00000000000, + 0b00000000000, + 0b00000000000, + 0b01010000000, + 0b11110000000, + 0b01010000000, + 0b00000000000}; + + uint16_t CJ_IZQ[8]={0b00000000000, + 0b00000000000, + 0b00000000000, + 0b00000000000, + 0b11110000000, + 0b11110000000, + 0b11110000000, + 0b00000000000}; + + uint16_t CJ_DER[8]={0b00000000000, + 0b11110000000, + 0b11110000000, + 0b11110000000, + 0b00000000000, + 0b00000000000, + 0b00000000000, + 0b00000000000}; + + uint16_t EQUIS[8]= {0b11111111, + 0b11111111, + 0b11111111, + 0b11111111, + 0b11111111, + 0b11111111, + 0b11111111, + 0b11111111}; + +#endif // VEHICULOS_H \ No newline at end of file