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

Dependencies:   mbed

Committer:
djinn77
Date:
Tue Oct 30 21:13:48 2018 +0000
Revision:
1:18fff1390131
Parent:
0:22386e919072
Child:
2:1d19bdc7084e
El jugador se desplaza izq y derecha

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 0:22386e919072 3
djinn77 0:22386e919072 4 // Definicion de parametros de comunicacion
djinn77 1:18fff1390131 5 Serial pc(USBTX,USBRX);
djinn77 0:22386e919072 6 SPI deviceM(PB_15, PB_14, PB_13);
djinn77 0:22386e919072 7 DigitalOut ssel (PB_12);
djinn77 1:18fff1390131 8
djinn77 1:18fff1390131 9 // Definiendo Botones
djinn77 1:18fff1390131 10
djinn77 1:18fff1390131 11 DigitalIn pulsador_izq(A5);
djinn77 1:18fff1390131 12 DigitalIn pulsador_der(A4);
djinn77 1:18fff1390131 13
djinn77 0:22386e919072 14 // Definicion de Funciones
djinn77 0:22386e919072 15 void sendSPI();
djinn77 0:22386e919072 16 void inicializar_matriz();
djinn77 0:22386e919072 17
djinn77 0:22386e919072 18 // Definicion de Variables
djinn77 0:22386e919072 19
djinn77 0:22386e919072 20 uint16_t* nivel;
djinn77 1:18fff1390131 21 uint16_t* jugador;
djinn77 0:22386e919072 22 float velocidad = 0.8;
djinn77 0:22386e919072 23
djinn77 0:22386e919072 24
djinn77 0:22386e919072 25 void sendSPI(uint8_t d1, uint8_t d2)
djinn77 0:22386e919072 26 {
djinn77 0:22386e919072 27 deviceM.unlock();
djinn77 0:22386e919072 28 ssel=0;
djinn77 0:22386e919072 29 deviceM.write(d1);
djinn77 0:22386e919072 30 deviceM.write(d2);
djinn77 0:22386e919072 31 ssel=1;
djinn77 0:22386e919072 32 deviceM.lock();
djinn77 0:22386e919072 33 };
djinn77 0:22386e919072 34
djinn77 0:22386e919072 35
djinn77 0:22386e919072 36 void inicializar_matriz(){
djinn77 0:22386e919072 37 sendSPI(0x0c,1);
djinn77 0:22386e919072 38 sendSPI(0x0b,7);
djinn77 0:22386e919072 39 sendSPI(0x09,0); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
djinn77 0:22386e919072 40 sendSPI(0x0A,0x00); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
djinn77 0:22386e919072 41
djinn77 0:22386e919072 42 int i;
djinn77 0:22386e919072 43 for (i=0;i<2;i++){
djinn77 0:22386e919072 44 sendSPI(0x0F,1);
djinn77 0:22386e919072 45 wait (0.5);
djinn77 0:22386e919072 46 sendSPI(0x0F,0);
djinn77 0:22386e919072 47 wait (0.5);
djinn77 0:22386e919072 48 }
djinn77 0:22386e919072 49
djinn77 0:22386e919072 50 }
djinn77 0:22386e919072 51
djinn77 0:22386e919072 52
djinn77 0:22386e919072 53 int main() {
djinn77 1:18fff1390131 54 pc.baud(38400);
djinn77 0:22386e919072 55 inicializar_matriz();
djinn77 0:22386e919072 56 nivel= AV_1;
djinn77 1:18fff1390131 57 jugador=player;
djinn77 0:22386e919072 58
djinn77 0:22386e919072 59 while(1){
djinn77 1:18fff1390131 60
djinn77 1:18fff1390131 61 // realiza el corriemiento del vector hacia la izq.
djinn77 1:18fff1390131 62 if(pulsador_izq == 1){
djinn77 0:22386e919072 63
djinn77 1:18fff1390131 64 int izq = jugador[0];
djinn77 1:18fff1390131 65 for(int i= 0; i<8;i++){
djinn77 1:18fff1390131 66 jugador[i]=jugador[i+1];
djinn77 1:18fff1390131 67 }
djinn77 1:18fff1390131 68 jugador[7] = izq;
djinn77 1:18fff1390131 69 }
djinn77 1:18fff1390131 70
djinn77 1:18fff1390131 71
djinn77 1:18fff1390131 72 // realiza el corrimeinto del juegador hacie la der.
djinn77 1:18fff1390131 73 if(pulsador_der == 1){
djinn77 0:22386e919072 74
djinn77 1:18fff1390131 75 int der = jugador[7];
djinn77 1:18fff1390131 76 for(int i= 7; i>=0;i--){
djinn77 1:18fff1390131 77 jugador[i]=jugador[i-1];
djinn77 0:22386e919072 78 }
djinn77 1:18fff1390131 79 jugador[0] = der;
djinn77 1:18fff1390131 80 }
djinn77 1:18fff1390131 81
djinn77 1:18fff1390131 82 // mueve el jugador de posicion en pruebas
djinn77 1:18fff1390131 83
djinn77 1:18fff1390131 84 if(pulsador_abj == 1){
djinn77 1:18fff1390131 85
djinn77 1:18fff1390131 86 int abj = 0;
djinn77 1:18fff1390131 87 for(int i= 0; i<8;i++){
djinn77 1:18fff1390131 88 jugador[i]=jugador[i]>>abj;
djinn77 1:18fff1390131 89 }
djinn77 1:18fff1390131 90 abj++;
djinn77 1:18fff1390131 91 }
djinn77 1:18fff1390131 92
djinn77 1:18fff1390131 93
djinn77 1:18fff1390131 94 // El siguient ciclo realiza el desplazamiento de los vehiculos
djinn77 1:18fff1390131 95
djinn77 0:22386e919072 96 int aux = nivel[0];
djinn77 0:22386e919072 97 for(int i= 0; i<8;i++){
djinn77 0:22386e919072 98 nivel[i]=nivel[i+1];
djinn77 0:22386e919072 99 }
djinn77 0:22386e919072 100 nivel[7] = aux;
djinn77 1:18fff1390131 101
djinn77 1:18fff1390131 102 // EL siguiente ciclo for realiza la impresion
djinn77 1:18fff1390131 103
djinn77 1:18fff1390131 104 for(int i= 1; i<=8;i++){
djinn77 1:18fff1390131 105 sendSPI(i, nivel[i-1]|jugador[i-1]);
djinn77 1:18fff1390131 106 }
djinn77 1:18fff1390131 107 wait(velocidad);
djinn77 0:22386e919072 108
djinn77 0:22386e919072 109 }
djinn77 0:22386e919072 110
djinn77 0:22386e919072 111
djinn77 0:22386e919072 112
djinn77 0:22386e919072 113 }