Alyson Castiblanco
/
JUEGO_DEFINITIVO
Codigo con interfaz gráfica. Falta juntar los dos programas. Ya accede a ambos juegos
Diff: main.cpp
- 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);*/