Codigo con interfaz gráfica. Falta juntar los dos programas. Ya accede a ambos juegos

Dependencies:   mbed

Revision:
1:67d0c7d450e2
Parent:
0:aa4d235c4151
Child:
2:142a1071fcc7
--- a/main.cpp	Sun Nov 18 01:43:14 2018 +0000
+++ b/main.cpp	Thu Nov 22 13:00:32 2018 +0000
@@ -18,7 +18,7 @@
 SPI deviceM(PB_15, PB_14, PB_13);
 DigitalOut ssel (PB_12);
 Serial a(USBTX,USBRX);
-Ticker cambio;
+//Ticker cambio;
 MPU6050 Wire(PB_9,PB_8);
 InterruptIn iz(PA_14);
 InterruptIn de(PA_13);
@@ -37,7 +37,9 @@
 void colision();
 void juego();
 void accelerometro();
-void cambiof();
+void cambio();
+void vell();
+void carro_juego();
 int con;
 int az;
 
@@ -57,9 +59,8 @@
      sendSPI(i,0);
      }
 }
-   
+///////////////////////////////////////
 void inicializar(){
-                
                     a.baud(9600);
                     sendSPI(0x0c,1);
                     sendSPI(0x09,0);
@@ -73,11 +74,9 @@
                     vel=200;
                     carro=0b00011000;
     }
-    
+//////////////////////////////////////////
 void imprimir()
 {
-   
-    
     int c_d; //carro, obstaculo y entorno
     int c_e; //carro y entorno
     int din;
@@ -109,37 +108,31 @@
              if( (obs>>b)==carro && j==8 ){
                colision();
                  }
-             
+             accelerometro();
+             cambio();
              wait_ms(vel);
-                con++;
-                if(con==10){
-    vel=vel-10;}
     }
-    
 }
-
-void carro_juego ()
-{
-    cambio.attach(&cambiof,0.2);
+//////////////////////////////////////////
+void carro_juego() {
      while(1){
-     accelerometro();
-     //juego();        
+     juego();        
         }
-        }
-        
+}
+///////////////////////////////////////////
 void juego(){
                     inicializar();   
-                    de.fall(&derecha);  
-                    iz.fall(&izquierda);  
+                    //de.rise(&derecha);  
+                    //iz.rise(&izquierda);  
                     a.printf("inicio\n");
                     while(1){
-                    con=0; 
                     b=2*(rand()%3);
-                    a.printf("numero %d\n",b);
-                     imprimir();  
+                    a.printf("umero %d\n",az);
+                    imprimir();
+                    vell();  
                     }
              }
-                    
+///////////////////////////////////
 void derecha()
 {
     if(carro==0b00011000 || carro==0b01100000)
@@ -147,6 +140,7 @@
     a.printf("entra der \n");
     return;
 }
+///////////////////////////////////
 void izquierda()
 {
     if( carro==0b00000110 ||  carro==0b00011000  )
@@ -154,7 +148,16 @@
     a.printf("entra izq \n");
     return;
 }
-
+////////////////////////////////////
+void cambio(){
+    switch(az){
+        case 1: carro = cam[0];break;
+        case 2: carro = cam[1];break;
+        case 3: carro = cam[2];break;
+        default: break;}
+    
+    }
+////////////////////////////////////
 void colision ()
 {
                  borrar();  
@@ -163,44 +166,37 @@
                  sendSPI(4,0b01111110);
                  sendSPI(5,0b01111110);
                  sendSPI(6,0b01111110);
+                 con=0;
+                 vel=200;
                  wait(2);
                  juego();
 }
-
+/////////////////////////////////////
 void accelerometro(){
-         
          Wire.getAccelero(q);
          a.printf("accelero: \t x=  %f,\t y=  %f, \t z= %f \n",q[0],q[1],q[2]);
-         int accelero[3]; 
-         Wire.getAcceleroRaw(accelero);
-         int valor=accelero[1];
-         if(valor<=(2000) && valor>=(1000)){
+         int valor=q[1];
+         if(valor<=(-4) && valor>=(-10)){
            az=1;}
-         if(valor<(1000) && valor>=(-1000)){
+         if(valor<(4) && valor>=(-4)){
            az=2;}
-         if(valor<(-1000) && valor>=(-2000)){
+         if(valor<(10) && valor>=(4)){
            az=3;}
-         a.printf("acel : \t  %d \n",az);        
-         wait(0.8);
+         a.printf("az : \t  %d \n",az);
     }
-
-void cambiof(){
-    
-    switch (az){
-        case 1: carro=cam[1];
-        break;
-        case 2: carro=cam[2];
-        break;
-        case 3: carro=cam[3];
-        break;
-        }
-    
-    
+/////////////////////////////////////
+void vell(){
+    con++;
+    if(con>2 && vel>=20)
+    {
+    vel=vel-(vel*0.2);
+    }
     }
     
     /////////////////////////////////////////////////////////////////////////////////////
     
-    void init_display()
+    
+void init_display()
 {
     sendSPI(0x0c,1);
     sendSPI(0x0b,7);
@@ -235,6 +231,24 @@
     }
 };
 
+void game_over()
+{
+    uint8_t go [9]={0,0,0b01000010,0b00100100,0b00011000,0b00100100,0b01000010,0b00000000,0}; 
+    int k,n;
+    for(n=0;n<6;n++)
+    {
+    borraraa();
+    for(k=1;k<=8;k++)
+    {
+    sendSPI(k,go[k]);
+    }
+    wait(0.2);
+    borraraa();
+    wait(0.2);
+    }
+    }
+    
+
 void buscar_fila(){
     for (uint8_t i=0;i<9;i++){                     
         if((matrix_act[i]& matrix_temp[3])==0){
@@ -262,7 +276,8 @@
         punto=1;
         VEL=500;
         wait_ms(VEL);
-        borrar();
+        game_over();
+        borraraa();
         fila=8;
     }
 };
@@ -351,7 +366,7 @@
             sendSPI(cont-2,matrix_temp1[1]);
             sendSPI(cont-1,matrix_temp1[2]);
             sendSPI(cont  ,matrix_temp1[3]);                     //pasa de i+2 a i+1
-            if(punto%3==0)
+            if(punto%4==0)
             {
             VEL=VEL/3;
              if(VEL<=50)
@@ -423,7 +438,7 @@
 void tetris() {
     bajar.attach(&bajaf, 0.1);
     init_display();
-    borrar();
+    borraraa();
     while(1){
             figuras();
             buscar_fila();
@@ -471,7 +486,7 @@
         sendSPI(k ,elec[k]);}
        /* reada();
         if(vx>0.6){
-        borraraa();
+        borraraaaaaa();
         carro_juego();}
         }*/
         }
@@ -485,7 +500,7 @@
         sendSPI(k ,elec1[k]);}
         /*reada();
         if(vx>0.6){
-        borraraa();
+        borraraaaaaa();
         tetris();}*/
         }
     
@@ -554,7 +569,7 @@
     
     /*
     wait(1);
-    borraraa();
+    borraraaaa();
     eleccion_carrito();
     wait(1);*/