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

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
djinn77
Date:
Wed Nov 14 22:08:00 2018 +0000
Parent:
9:d17e7acc22a4
Commit message:
TODO con comnetarios

Changed in this revision

calle.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/calle.cpp	Wed Nov 14 08:23:29 2018 +0000
+++ b/calle.cpp	Wed Nov 14 22:08:00 2018 +0000
@@ -4,28 +4,29 @@
 // Definicion de parametros de comunicacion
  
 Serial pc(USBTX,USBRX);
-SPI deviceM(PB_5, PB_4, PB_3);  //D4(gris), Ninguno, D3(azul)
-DigitalOut ssel (PA_4);         //A2(morado)
+SPI deviceM(PB_5, PB_4, PB_3);  // D4(gris), Ninguno, D3(azul)
+DigitalOut ssel (PA_4);         // A2(morado)
 Ticker tp;
-int printjugador =1;
+int printjugador =1;            // Establece el estado del jugador
  
 // Definiendo Botones
  
-AnalogIn vry(A3);
-AnalogIn vrx(A4);
-DigitalIn sw(A5);
+AnalogIn vry(A3);               // Lee el eje x del jostick
+AnalogIn vrx(A4);               // Lee el eje y del jostick
+DigitalIn sw(A5);               // Lee el boton del jostick
 
-// Definicion de Funciones
-void sendSPI();
-void inicializar_matriz();
-void printstatus();
-void desplazar_der();
-void desplazar_izq();
-void arriba();
-void pista();
-void puntaje();
-void impresion();
-void aumentar_dificultad();
+// Definicion de Funciones       
+void sendSPI();                 // Define el prototipo de la funcion de comunicacion con el MAX
+void inicializar_matriz();      // Define el prototipo de Iniciar pantalla
+void printstatus();             // Define el prototipo imprime el juego en pantalla
+void desplazar_der();           // Define el prototipo que desplaza el jugador a la der 
+void desplazar_izq();           // Define el prototipo que desplaza el jugador a la izq
+void arriba();                  // Define el prototipo que desplaza el jugador hacia arriba
+void pista();                   // Define el prototipo 
+void puntaje();                 // Define el prototipo que cuenta el puntaje
+void impresion();               // Define el prototipo 
+void aumentar_dificultad();     // Define el prototipo  que aumenta la velocidad de los vehiculos
+void reiniciar_calle();
 
 // Definicion de Variables
  
@@ -49,6 +50,7 @@
     deviceM.lock();
 };
  
+// La siguiente funcion establece los parametros de funcionamiento del MAX7219
  
 void inicializar_matriz(){
     sendSPI(0x0c,1);    
@@ -57,6 +59,9 @@
     sendSPI(0x0A,0x00); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
     
     int i;
+    
+    // Esta seccion configura el parpadeo cuando se reinicia la pantalla
+    
     for (i=0;i<2;i++){
         sendSPI(0x0F,1);
         wait (0.5);
@@ -66,15 +71,15 @@
   
   }
  
- 
+// ------------------------------- Esta es la funcion principal del sistema 
 int main() {
-   pc.baud(38400);               
-   inicializar_matriz();
-   nivel= AV_1;
-   victorias=puntos;
-   jugador=player;
-   tp.attach(&printstatus,0.2);
-   ubicacion=1;
+   pc.baud(38400);                 // Establece la velocidad de comunicacion Serial
+   inicializar_matriz();           // llama a la funcion que configura el MAX
+   nivel= AV_1;                    // Asigna el trasado de las calles al juego
+   victorias=puntos;               // Asigna los puntos acumulados en la pantalla inicia en 0
+   jugador=player;                 // Asigna la forma del jugador
+   tp.attach(&printstatus,0.2);    // MIRAR para que sirve
+   ubicacion=1;                    // Inicializa la varibale que cuenta la posicion del jugador
    
 
        
@@ -92,12 +97,12 @@
  
 //------ mueve a el jugador hacia arriba en el mapa
     
-  if(meas_vy < 1550){
-     arriba();
-     ubicacion++;
-     pc.printf("\n ubicacion:\n %i",ubicacion); 
-     if(ubicacion==7)
-        puntaje();
+  if(meas_vy < 1550){   
+     arriba();                  // hace el llamado a la funcion que mueve al jugador a la parte superior
+     ubicacion++;               // cada vez que se ejecuta actualiza la posicion del jugador en el mapa
+     pc.printf("\n ubicacion:\n %i",ubicacion);  // imprime la ubicacion del jugador en el puerto serial
+     if(ubicacion==7)           // si la posicion del jugador es igual a 7 ejecuta la funcion puntaje();
+        puntaje();         
      }
      
 // ----- El siguiente ciclo realiza el desplazamiento de los vehiculos
@@ -108,9 +113,9 @@
        }
 }
 
-void desplazar_der(){
+void desplazar_der(){               // Esta funcion desplaza al jugador hacia la derecha
       
-      int der = jugador[7];
+      int der = jugador[7];    
       for(int i= 7; i>=0;i--){  
           jugador[i]=jugador[i-1];
           }
@@ -118,7 +123,7 @@
 
     }
 
-void desplazar_izq(){
+void desplazar_izq(){               // Esta funcion desplaza al jugador hacia la izq
    
       int izq = jugador[0];
       for(int i= 0; i<8;i++){  
@@ -128,7 +133,7 @@
 
  }
  
-void arriba(){
+void arriba(){                      // Esta funcion desplaza al jugador hacia arriba
       
       int arb = 1;
       for(int i= 0; i<8;i++){  
@@ -138,7 +143,7 @@
       
     }
     
-void pista(){
+void pista(){                       // Esta funcion ejecuta el movimiento de los vehiculos
     
     int aux = nivel[0];
       for(int i= 0; i<8;i++){  
@@ -148,38 +153,49 @@
     
     }  
     
-void puntaje(){
+void puntaje(){                     // Esta funcion hace el conteo de los puntos ganados
       
-      victorias[conteo]=0x80;
-      for(int i= 0; i<8;i++){  
-          jugador[i]= jugador[i] >> 6;
+      victorias[conteo]=0x80;       // cada vez que se llega al otro lado de la calle suma 1 punto que se visualiza en pantalla
+      for(int i= 0; i<8;i++){       // Este ciclo for regresa al jugador a la pos 1
+          jugador[i]= jugador[i] >> 6;  
           }
-      ubicacion=1;    
-      conteo++;
-      if(conteo == 6){
+      ubicacion=1;                  // Renicializa la pos del jugador
+      conteo++;                     // Cuenta cuantas veces a llegado el jugador al otro lado  hasta un maximo de 4
+      if(conteo == 6){              // cuando el conteo es igual a 6 se llama a la funcion aumentar dificultad
          aumentar_dificultad();
          }
          
     
       } 
 
-void aumentar_dificultad(){
+void aumentar_dificultad(){          // Esta funcion aumenta la dificultad del juego       
       
-      for(int i= 0; i<8;i++){  
+      for(int i= 0; i<8;i++){        // Regresa el valor de las victorias acumuladas a 0
           victorias[i]= 0;
           }
-      velocidad = velocidad - 0.1;
-      conteo=2;
-      
+      velocidad = velocidad - 0.1;   // aumenta la velocidad del juego
+      conteo=2;                      // reinicializa el conteo
+       
       
       }
-      
-void printstatus()
+void reiniciar_calle(){             // Esta condicion renicia el sistema al estrellarce con un vehiculo
+    
+    NVIC_SystemReset();
+    
+    }    
+void printstatus()                  // Esta funcion es la encargada de la impresion
 {
-    for(int j= 1; j<=8;j++)
-        if (printjugador)
-            sendSPI(j, nivel[j-1]|jugador[j-1]| victorias[j-1]);     
-        else
-            sendSPI(j, nivel[j-1]| victorias[j-1]); 
+    
+    for(int j= 1; j<=8;j++)         // Este cilo imprime en pantalla
+        if (printjugador){
+            sendSPI(j, nivel[j-1]|jugador[j-1]| victorias[j-1]);   // CADA VEZ que se vea en pantalla SPI se mostrar un dato en pantalla
+            if((nivel[j-1] & jugador[j-1]) != 0){                  // SI este if se cumple el jugador ha sido chocado
+               reiniciar_calle();                                  // Ee se hace llamado a la funcion reinicio
+               }
+               
+            }else{
+                sendSPI(j, nivel[j-1]| victorias[j-1]);            
+                }
+             
     printjugador =!printjugador;
 }
\ No newline at end of file