Nathan MONNIER
/
Projet_S3
Projet_S3
Revision 14:5b7129157c7b, committed 2022-03-26
- Comitter:
- nmonnier
- Date:
- Sat Mar 26 14:58:31 2022 +0000
- Parent:
- 13:ae981a954016
- Commit message:
- Last version
Changed in this revision
--- a/char.h Fri Feb 04 09:51:52 2022 +0000 +++ b/char.h Sat Mar 26 14:58:31 2022 +0000 @@ -1,3 +1,35 @@ +void brik(int X, int Y, int vie){ + int i, j; + int couleur[3]; + if(vie>0){ + switch(vie){ + case 2: + couleur[0]=0;couleur[1]=0;couleur[2]=5; + break; + case 1: + couleur[0]=0;couleur[1]=5;couleur[2]=0; + break; + case 3: + couleur[0]=5;couleur[1]=0;couleur[2]=0; + break; + } + for(i=0;i<4;i++){ + for(j=0;j<2;j++){ + pix(X+i,Y+j,couleur[0],couleur[1],couleur[2]); + } + } + } +} + +void raquette(int X, int Y){ + int i, j; + for(i=0;i<8;i++){ + for(j=0;j<2;j++){ + pix(X+i,Y+j,2,2,2); + } + } +} + void octahedron(int X, int Y, char qR, char qV, char qB){ pix(X,Y-5,qR,qV,qB); @@ -647,7 +679,187 @@ pix( px+ 2 , py + 6 , 0 , 0 , 0 ); pix( px+ 3 , py + 6 , 0 , 0 , 0 ); pix( px+ 4 , py + 6 , 0 , 0 , 0 ); - } + } + + if ( ch == 'L' ) + { + pix( px+ 0 , py + 0 , 5 , 0 , 0 ); + pix( px+ 1 , py + 0 , 0 , 0 , 0 ); + pix( px+ 2 , py + 0 , 0 , 0 , 0 ); + pix( px+ 3 , py + 0 , 0 , 0 , 0 ); + pix( px+ 4 , py + 0 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 1 , 5 , 0 , 0 ); + pix( px+ 1 , py + 1 , 0 , 0 , 0 ); + pix( px+ 2 , py + 1 , 0 , 0 , 0 ); + pix( px+ 3 , py + 1 , 0 , 0 , 0 ); + pix( px+ 4 , py + 1 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 2 , 5 , 0 , 0 ); + pix( px+ 1 , py + 2 , 0 , 0 , 0 ); + pix( px+ 2 , py + 2 , 0 , 0 , 0 ); + pix( px+ 3 , py + 2 , 0 , 0 , 0 ); + pix( px+ 4 , py + 2 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 3 , 5 , 0 , 0 ); + pix( px+ 1 , py + 3 , 0 , 0 , 0 ); + pix( px+ 2 , py + 3 , 0 , 0 , 0 ); + pix( px+ 3 , py + 3 , 0 , 0 , 0 ); + pix( px+ 4 , py + 3 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 4 , 5 , 0 , 0 ); + pix( px+ 1 , py + 4 , 0 , 0 , 0 ); + pix( px+ 2 , py + 4 , 0 , 0 , 0 ); + pix( px+ 3 , py + 4 , 0 , 0 , 0 ); + pix( px+ 4 , py + 4 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 5 , 5 , 0 , 0 ); + pix( px+ 1 , py + 5 , 0 , 0 , 0 ); + pix( px+ 2 , py + 5 , 0 , 0 , 0 ); + pix( px+ 3 , py + 5 , 0 , 0 , 0 ); + pix( px+ 4 , py + 5 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 6 , 0 , 0 , 0 ); + pix( px+ 1 , py + 6 , 5 , 0 , 0 ); + pix( px+ 2 , py + 6 , 5 , 0 , 0 ); + pix( px+ 3 , py + 6 , 5 , 0 , 0 ); + pix( px+ 4 , py + 6 , 5 , 0 , 0 ); + } + + if ( ch == 'O' ) + { + pix( px+ 0 , py + 0 , 0 , 0 , 0 ); + pix( px+ 1 , py + 0 , 5 , 0 , 0 ); + pix( px+ 2 , py + 0 , 5 , 0 , 0 ); + pix( px+ 3 , py + 0 , 5 , 0 , 0 ); + pix( px+ 4 , py + 0 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 1 , 5 , 0 , 0 ); + pix( px+ 1 , py + 1 , 0 , 0 , 0 ); + pix( px+ 2 , py + 1 , 0 , 0 , 0 ); + pix( px+ 3 , py + 1 , 0 , 0 , 0 ); + pix( px+ 4 , py + 1 , 5 , 0 , 0 ); + + pix( px+ 0 , py + 2 , 5 , 0 , 0 ); + pix( px+ 1 , py + 2 , 0 , 0 , 0 ); + pix( px+ 2 , py + 2 , 0 , 0 , 0 ); + pix( px+ 3 , py + 2 , 0 , 0 , 0 ); + pix( px+ 4 , py + 2 , 5 , 0 , 0 ); + + pix( px+ 0 , py + 3 , 5 , 0 , 0 ); + pix( px+ 1 , py + 3 , 0 , 0 , 0 ); + pix( px+ 2 , py + 3 , 0 , 0 , 0 ); + pix( px+ 3 , py + 3 , 0 , 0 , 0 ); + pix( px+ 4 , py + 3 , 5 , 0 , 0 ); + + pix( px+ 0 , py + 4 , 5 , 0 , 0 ); + pix( px+ 1 , py + 4 , 0 , 0 , 0 ); + pix( px+ 2 , py + 4 , 0 , 0 , 0 ); + pix( px+ 3 , py + 4 , 0 , 0 , 0 ); + pix( px+ 4 , py + 4 , 5 , 0 , 0 ); + + pix( px+ 0 , py + 5 , 5 , 0 , 0 ); + pix( px+ 1 , py + 5 , 0 , 0 , 0 ); + pix( px+ 2 , py + 5 , 0 , 0 , 0 ); + pix( px+ 3 , py + 5 , 0 , 0 , 0 ); + pix( px+ 4 , py + 5 , 5 , 0 , 0 ); + + pix( px+ 0 , py + 6 , 0 , 0 , 0 ); + pix( px+ 1 , py + 6 , 5 , 0 , 0 ); + pix( px+ 2 , py + 6 , 5 , 0 , 0 ); + pix( px+ 3 , py + 6 , 5 , 0 , 0 ); + pix( px+ 4 , py + 6 , 0 , 0 , 0 ); + } + + if ( ch == 'S' ) + { + pix( px+ 0 , py + 0 , 0 , 0 , 0 ); + pix( px+ 1 , py + 0 , 5 , 0 , 0 ); + pix( px+ 2 , py + 0 , 5 , 0 , 0 ); + pix( px+ 3 , py + 0 , 5 , 0 , 0 ); + pix( px+ 4 , py + 0 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 1 , 5 , 0 , 0 ); + pix( px+ 1 , py + 1 , 0 , 0 , 0 ); + pix( px+ 2 , py + 1 , 0 , 0 , 0 ); + pix( px+ 3 , py + 1 , 0 , 0 , 0 ); + pix( px+ 4 , py + 1 , 5 , 0 , 0 ); + + pix( px+ 0 , py + 2 , 0 , 0 , 0 ); + pix( px+ 1 , py + 2 , 0 , 0 , 0 ); + pix( px+ 2 , py + 2 , 0 , 0 , 0 ); + pix( px+ 3 , py + 2 , 0 , 0 , 0 ); + pix( px+ 4 , py + 2 , 5 , 0 , 0 ); + + pix( px+ 0 , py + 3 , 0 , 0 , 0 ); + pix( px+ 1 , py + 3 , 5 , 0 , 0 ); + pix( px+ 2 , py + 3 , 5 , 0 , 0 ); + pix( px+ 3 , py + 3 , 5 , 0 , 0 ); + pix( px+ 4 , py + 3 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 4 , 5 , 0 , 0 ); + pix( px+ 1 , py + 4 , 0 , 0 , 0 ); + pix( px+ 2 , py + 4 , 0 , 0 , 0 ); + pix( px+ 3 , py + 4 , 0 , 0 , 0 ); + pix( px+ 4 , py + 4 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 5 , 5 , 0 , 0 ); + pix( px+ 1 , py + 5 , 0 , 0 , 0 ); + pix( px+ 2 , py + 5 , 0 , 0 , 0 ); + pix( px+ 3 , py + 5 , 0 , 0 , 0 ); + pix( px+ 4 , py + 5 , 5 , 0 , 0 ); + + pix( px+ 0 , py + 6 , 0 , 0 , 0 ); + pix( px+ 1 , py + 6 , 5 , 0 , 0 ); + pix( px+ 2 , py + 6 , 5 , 0 , 0 ); + pix( px+ 3 , py + 6 , 5 , 0 , 0 ); + pix( px+ 4 , py + 6 , 0 , 0 , 0 ); + } + + if ( ch == 'E' ) + { + pix( px+ 0 , py + 0 , 5 , 0 , 0 ); + pix( px+ 1 , py + 0 , 5 , 0 , 0 ); + pix( px+ 2 , py + 0 , 5 , 0 , 0 ); + pix( px+ 3 , py + 0 , 5 , 0 , 0 ); + pix( px+ 4 , py + 0 , 5 , 0 , 0 ); + + pix( px+ 0 , py + 1 , 5 , 0 , 0 ); + pix( px+ 1 , py + 1 , 0 , 0 , 0 ); + pix( px+ 2 , py + 1 , 0 , 0 , 0 ); + pix( px+ 3 , py + 1 , 0 , 0 , 0 ); + pix( px+ 4 , py + 1 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 2 , 5 , 0 , 0 ); + pix( px+ 1 , py + 2 , 0 , 0 , 0 ); + pix( px+ 2 , py + 2 , 0 , 0 , 0 ); + pix( px+ 3 , py + 2 , 0 , 0 , 0 ); + pix( px+ 4 , py + 2 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 3 , 5 , 0 , 0 ); + pix( px+ 1 , py + 3 , 5 , 0 , 0 ); + pix( px+ 2 , py + 3 , 5 , 0 , 0 ); + pix( px+ 3 , py + 3 , 5 , 0 , 0 ); + pix( px+ 4 , py + 3 , 5 , 0 , 0 ); + + pix( px+ 0 , py + 4 , 5 , 0 , 0 ); + pix( px+ 1 , py + 4 , 0 , 0 , 0 ); + pix( px+ 2 , py + 4 , 0 , 0 , 0 ); + pix( px+ 3 , py + 4 , 0 , 0 , 0 ); + pix( px+ 4 , py + 4 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 5 , 5 , 0 , 0 ); + pix( px+ 1 , py + 5 , 0 , 0 , 0 ); + pix( px+ 2 , py + 5 , 0 , 0 , 0 ); + pix( px+ 3 , py + 5 , 0 , 0 , 0 ); + pix( px+ 4 , py + 5 , 0 , 0 , 0 ); + + pix( px+ 0 , py + 6 , 5 , 0 , 0 ); + pix( px+ 1 , py + 6 , 5 , 0 , 0 ); + pix( px+ 2 , py + 6 , 5 , 0 , 0 ); + pix( px+ 3 , py + 6 , 5 , 0 , 0 ); + pix( px+ 4 , py + 6 , 5 , 0 , 0 ); + } }
--- a/draw.h Fri Feb 04 09:51:52 2022 +0000 +++ b/draw.h Sat Mar 26 14:58:31 2022 +0000 @@ -7,32 +7,188 @@ } -int delay; +int delay=0; static char entrer=0; +static char selection=0; int tempo=0; +unsigned int brique[8][8]; +int posX=15,posY=25; +int i,j; +int bas=0,droite=0; +int Lose=0; void draw() // ici vous exprimez vos dessins (jamais de delai dans cette boucle) { // DEBUT de vos dessins - tempo=tempo--; - if(tempo<0){ - tempo=0; - entrer=0; + + if(selection=='o'){ + pix(-ccx+15,-ccy+15,5,0,0); + serie.printf("D%dX ",ccx+15); + serie.printf("D%dY ",ccy+15); + tempo=tempo--; + if(tempo<0){ + tempo=0; + entrer=0; + } + if(tempo>0){ + switch(entrer){ + case 'a': + charr(16,16,1); + break; + case 'b': + charr(16,16,2); + break; + case 'c': + charr(16,16,3); + break; + case 'z': + charr(16,16,0); + break; + } + } } - switch(entrer){ - case 'a': - charr(15,15,1); - break; - case 'b': - charr(15,15,2); - break; - case 'c': - charr(15,15,3); - break; - case 'z': - charr(15,15,0); - break; + if(selection=='q'){ + if(entrer=='r'){ + bas=0; + Lose=0; + posX=15; + posY=25; + for(i=0;i<8;i++){ + for(j=0;j<8;j++){ + brique[j][i]=rand()%4; + serie.printf("D%dH ",i); + serie.printf("D%dV ",j); + serie.printf("D%dC ",brique[j][i]); + } + } + entrer='p'; + } + if(entrer=='p'){ + delay++; + if(delay>5) + delay=0; + for(i=0;i<8;i++){ + for(j=0;j<8;j++){ + brik(j*4,i*2,brique[j][i]); + } + } + raquette(-ccx+11,28); + pix(posX,posY,3,0,3); + if(bas==1 && delay==5) + posY++; + if(bas==0 && delay==5) + posY--; + if(droite==1 && delay==5) + posX++; + if(droite==0 && delay==5) + posX--; + if(posX<=0){ + droite=1; + } + if(posX>=31){ + droite=0; + } + if(posY<=0){ + bas=1; + } + if(posY<=15&& delay==5){ + if(brique[posX/4][posY/2]>=1){ + if(bas==1) + bas=0; + if(droite==1) + droite=0; + brique[posX/4][posY/2]--; + serie.printf("D%dH ",posY/2); + serie.printf("D%dV ",posX/4); + serie.printf("D%dC ",brique[posX/4][posY/2]); + } + if(brique[(posX-3)/4][posY/2]>=1){ + if(bas==1) + bas=0; + if(droite==0) + droite=1; + brique[(posX-3)/4][posY/2]--; + serie.printf("D%dH ",posY/2); + serie.printf("D%dV ",(posX-3)/4); + serie.printf("D%dC ",brique[(posX-3)/4][posY/2]); + } + if(brique[(posX-2)/4][posY/2]>=1){ + if(bas==1) + bas=0; + brique[(posX-2)/4][posY/2]--; + serie.printf("D%dH ",posY/2); + serie.printf("D%dV ",(posX-2)/4); + serie.printf("D%dC ",brique[(posX-2)/4][posY/2]); + } + if(brique[(posX-1)/4][posY/2]>=1){ + if(bas==0) + bas=1; + brique[(posX-1)/4][posY/2]--; + serie.printf("D%dH ",posY/2); + serie.printf("D%dV ",(posX-1)/4); + serie.printf("D%dC ",brique[(posX-1)/4][posY/2]); + } + if(brique[posX/4][(posY-1)/2]>=1){ + if(bas==0) + bas=1; + if(droite==1) + droite=0; + brique[posX/4][(posY-1)/2]--; + serie.printf("D%dH ",(posY-1)/2); + serie.printf("D%dV ",posX/4); + serie.printf("D%dC ",brique[posX/4][(posY-1)/2]); + } + if(brique[(posX-3)/4][(posY-1)/2]>=1){ + if(bas==0) + bas=1; + if(droite==0) + droite=1; + brique[(posX-3)/4][(posY-1)/2]--; + serie.printf("D%dH ",(posY-1)/2); + serie.printf("D%dV ",(posX-3)/4); + serie.printf("D%dC ",brique[(posX-3)/4][(posY-1)/2]); + } + if(brique[(posX-2)/4][(posY-1)/2]>=1){ + if(bas==0) + bas=1; + brique[(posX-2)/4][(posY-1)/2]--; + serie.printf("D%dH ",(posY-1)/2); + serie.printf("D%dV ",(posX-2)/4); + serie.printf("D%dC ",brique[(posX-2)/4][(posY-1)/2]); + } + if(brique[(posX-1)/4][(posY-1)/2]>=1){ + if(bas==0) + bas=1; + brique[(posX-1)/4][(posY-1)/2]--; + serie.printf("D%dH ",(posY-1)/2); + serie.printf("D%dV ",(posX-1)/4); + serie.printf("D%dC ",brique[(posX-1)/4][(posY-1)/2]); + } + + } + if(posY>=28 && posY<=29 && posX>-ccx+11 && posX<-ccx+11+7) + bas=0; + if(posY>=31){ + entrer=0; + for(i=0;i<8;i++){ + for(j=0;j<8;j++){ + if(brique[j][i]>0) + Lose++; + } + } + if(Lose==0){ + serie.printf("D%dW ",0); + } + if(Lose>0){ + serie.printf("D%dL ",0); + charr(0,19,'L'); + charr(7,19,'O'); + charr(7*2,19,'S'); + charr(7*3,19,'E'); + } + } + serie.printf("D%dX ",31-posX); + serie.printf("D%dY ",31-posY); + serie.printf("D%dR ",ccx+11); + } } - pix(-ccx+15,-ccy+15,5,0,0); - serie.printf("D%dX ",ccx+15); - serie.printf("D%dY ",ccy+15); } \ No newline at end of file
--- a/serie.h Fri Feb 04 09:51:52 2022 +0000 +++ b/serie.h Sat Mar 26 14:58:31 2022 +0000 @@ -5,22 +5,19 @@ { // ici on decode un exemple simple // un 'a' met posx = 10 un 'b' met posx = 20 arecv = serie.getc(); - tempo=500; - if (arecv == 'a') // c'est un 'a' qui arrive - { - entrer='a'; // affichage de 1 - } - if (arecv == 'b')// c'est un 'b' qui arrive - { - entrer=arecv; // affichage de 2 - } - if (arecv == 'c')// c'est un 'c' qui arrive - { - entrer=arecv; // affichage de 3 - } - if (arecv == 'z')// c'est un 'z' qui arrive - { - entrer=arecv; // affichage de 0 - } + switch(arecv){ + case 'o': + case 'q': + selection=arecv; + break; + case 'a': + case 'b': + case 'c': + case 'z': + case 'r': + tempo=500; + entrer=arecv; + break; + } return; } \ No newline at end of file