Selecciona los juegos

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
djinn77
Date:
Wed Nov 21 21:52:41 2018 +0000
Parent:
4:4d6b70e3dda3
Commit message:
final_2;

Changed in this revision

avenidas.h Show annotated file Show diff for this revision Revisions of this file
brick.cpp Show annotated file Show diff for this revision Revisions of this file
vehiculos.h Show annotated file Show diff for this revision Revisions of this file
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