begin process at 2012 05 27 20:54:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > TETRIS AVEC TURBO C

TETRIS AVEC TURBO C


 Information sur la source

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :tetris, turbo, jeu, game Niveau :Initié Date de création :03/05/2004 Date de mise à jour :19/05/2004 19:40:01 Vu :5 885

Auteur : 2asoft

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

2Asoft crée son nouveau jeux palpitant comme toujours mais surtout ingénieux, les 2 programmeurs de 2ASoft (Abdou . Ars) bien que n'etant encore qu'étudiants ont trouvé le temps de nous divertir.

Bonne continuation.

    

Source

  • #include<conio.h>
  • #include<dos.h>
  • #include<graphics.h>
  • #include<stdio.h>
  • #include<stdlib.h>
  • /***********************************************************/
  • typedef enum BOOL{faux,vrai} bool;
  • int px,py,max_ligne=1,ob;
  • long int score=0;
  • bool bl;
  • char c;
  • /***********************************************************/
  • bool obj1[1][4]={1,1,1,1};
  • bool obj11[4][1]={1,1,1,1};
  • bool obj10[2][2]={1,1,1,1};
  • bool obj2[8][3][2]={1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,0,1,1,0,1,0,1,0,1,1,1};
  • bool obj3[8][2][3]={1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1};
  • bool grille[13][24];
  • /************************************************************/
  • void Afficher()
  • {
  • int i,j;
  • setfillstyle(1,11);
  • bar(40,51,259,450);
  • for(i=1;i<21;i++)
  • for(j=1;j<12;j++)
  • if(grille[j][i]==vrai)
  • {
  • setfillstyle(1,LIGHTGRAY);
  • bar(20+j*20,470-i*20,40+j*20-1,450-i*20+1);
  • setcolor(0);
  • line(20+j*20,470-i*20,20+j*20,450-i*20+1);
  • line(20+j*20,470-i*20,40+j*20-1,470-i*20);
  • setcolor(15);
  • line(40+j*20-1,450-i*20+1,20+j*20,450-i*20+1);
  • line(40+j*20-1,450-i*20+1,40+j*20-1,470-i*20);
  • }
  • }
  • /************************************************************/
  • int Max(bool tab[13][24])
  • {
  • int i,j,m;
  • for(i=1;i<21;i++)
  • for(j=1;j<12;j++)
  • if(tab[j][i]==vrai)
  • m=i;
  • return m;
  • }
  • /*************************************************************/
  • void Random()
  • {
  • int t[7]={2,1,4,8,10,9,6},i,j,a;
  • randomize();
  • ob=t[random(7)];
  • px=5;
  • py=22;
  • switch(ob)
  • {
  • case 2 : a=0;break;
  • case 4 : a=1;break;
  • case 6 : a=2;break;
  • case 8 : a=5;break;
  • case 9 : a=6;break;
  • }
  • if(ob==1) for(i=0;i<4;i++) grille[px+i][py]=obj1[i][0];
  • else
  • if(ob==10)
  • {
  • for(i=0;i<2;i++)
  • {
  • grille[px][py+i]=obj10[0][i];
  • grille[px+1][py+i]=obj10[1][i];
  • }
  • }
  • else
  • {
  • for(i=0;i<3;i++)
  • {
  • grille[px+i][py]=obj2[a][i][0];
  • grille[px+i][py+1]=obj2[a][i][1];
  • }
  • }
  • randomize();
  • }
  • /******************************************************************/
  • void Descendre()
  • {
  • int i;
  • bool b=vrai;
  • if(ob==1)
  • {
  • for(i=0;i<4;i++) b=b&&(!obj1[i][0]||!grille[px+i][py-1]);
  • if(b==vrai)
  • for(i=0;i<4;i++)
  • {
  • grille[px+i][py]=faux;
  • grille[px+i][py-1]=vrai;
  • }
  • }
  • if(ob==11)
  • {
  • b=(!obj11[0][0]||!grille[px][py-1]);
  • if(b==vrai)
  • {
  • grille[px][py+3]=faux;
  • grille[px][py-1]=vrai;
  • }
  • }
  • if(ob==2||ob==4||ob==6)
  • {
  • for(i=0;i<3;i++) b=b&&(!obj2[ob/2-1][i][0]||!grille[px+i][py-1]);
  • if(b==vrai)
  • for(i=0;i<3;i++)
  • {
  • if(obj2[ob/2-1][i][1]==vrai) grille[px+i][py+1]=faux;
  • grille[px+i][py]=obj2[ob/2-1][i][1];
  • grille[px+i][py-1]=vrai;
  • }
  • }
  • if(ob==14||ob==17)
  • {
  • b=(!obj3[(ob-14)/3][0][0]||!grille[px][py-1])&&(!obj3[(ob-14)/3][1][0]||!grille[px+1][py-1]);
  • if(b==vrai)
  • {
  • for(i=0;i<2;i++)
  • if(obj3[(ob-14)/3][i][1]==faux)
  • {
  • grille[px+i][py]=faux;
  • grille[px+1-i][py+2]=faux;
  • grille[px+i][py-1]=vrai;
  • grille[px-i+1][py-1]=vrai;
  • }
  • }
  • }
  • if(ob==10)
  • {
  • b=(!obj10[0][0]||!grille[px][py-1])&&(!obj10[1][0]||!grille[px+1][py-1]);
  • if(b==vrai)
  • {
  • grille[px][py+1]=faux;
  • grille[px+1][py+1]=faux;
  • grille[px][py-1]=vrai;
  • grille[px+1][py-1]=vrai;
  • }
  • }
  • if(ob==12||ob==18)
  • {
  • b=(!obj3[ob/6][0][0]||!grille[px][py-1])&&(!obj3[ob/6][1][1]||!grille[px+1][py]);
  • if(b==vrai)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj3[ob/6][0][i]==vrai) grille[px][py+i]=faux;
  • if(obj3[ob/6][1][i]==vrai) grille[px+1][py+i]=faux;
  • }
  • for(i=0;i<3;i++)
  • {
  • if(obj3[ob/6][0][i]==vrai) grille[px][py+i-1]=obj3[ob/6][0][i];
  • if(obj3[ob/6][1][i]==vrai) grille[px+1][py+i-1]=obj3[ob/6][1][i];
  • }
  • }
  • }
  • if(ob==13||ob==19)
  • {
  • b=(!obj3[5-((19-ob)/6)][1][0]||!grille[px+1][py-1])&&(!obj3[5-((19-ob)/6)][0][1]||!grille[px][py]);
  • if(b==vrai)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj3[5-((19-ob)/6)][0][i]==vrai) grille[px][py+i]=faux;
  • if(obj3[5-((19-ob)/6)][1][i]==vrai) grille[px+1][py+i]=faux;
  • }
  • for(i=0;i<3;i++)
  • {
  • if(obj3[5-((19-ob)/6)][0][i]==vrai) grille[px][py+i-1]=obj3[5-((19-ob)/6)][0][i];
  • if(obj3[5-((19-ob)/6)][1][i]==vrai) grille[px+1][py+i-1]=obj3[5-((19-ob)/6)][1][i];
  • }
  • }
  • }
  • if(ob==3||ob==5||ob==7)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj2[ob-((7-ob)*(ob-3)/4)][i][0]==vrai) b=b&&(!obj2[ob-((7-ob)*(ob-3)/4)][i][0]||!grille[px+i][py-1]);
  • else b=b&&(!obj2[ob-((7-ob)*(ob-3)/4)][i][1]||!grille[px+i][py]);
  • }
  • if(b==vrai)
  • for(i=0;i<3;i++)
  • {
  • grille[px+i][py+1]=faux;
  • grille[px+i][py]=vrai;
  • if(obj2[ob-((7-ob)*(ob-3)/4)][i][0]==vrai) grille[px+i][py-1]=obj2[ob-((7-ob)*(ob-3)/4)][i][0];
  • }
  • }
  • if(ob==8||ob==9)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj2[ob-3][i][0]==vrai) b=b&&(!obj2[ob-3][i][0]||!grille[px+i][py-1]);
  • else b=b&&(!obj2[ob-3][i][1]||!grille[px+i][py]);
  • }
  • if(b==vrai)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj2[ob-3][i][0]==vrai)
  • {
  • grille[px+i][py]=faux;
  • grille[px+i][py-1]=obj2[ob-3][i][0];
  • }
  • if(obj2[ob-3][i][1]==vrai)
  • {
  • grille[px+i][py+1]=faux;
  • grille[px+i][py]=obj2[ob-3][i][1];
  • }
  • }
  • }
  • }
  • if(ob==15||ob==16)
  • {
  • for(i=0;i<2;i++)
  • {
  • if(obj3[ob-9][i][0]==vrai) b=b&&(!obj3[ob-9][i][0]||!grille[px+i][py-1]);
  • else b=b&&(!obj3[ob-9][i][2]||!grille[px+i][py+1]);
  • }
  • if(b==vrai)
  • {
  • grille[px][py+2]=faux;
  • grille[px+1][py+2]=faux;
  • for(i=0;i<2;i++)
  • {
  • if(obj3[ob-9][i][0]==vrai) grille[px+i][py-1]=vrai;
  • else grille[px+i][py+1]=vrai;
  • }
  • }
  • }
  • if(b==vrai)
  • {
  • sound(300);
  • delay(20);
  • nosound();
  • py--;
  • bl=faux;
  • }
  • else
  • {
  • max_ligne=Max(grille);
  • bl=vrai;
  • c=0;
  • Random();
  • sound(500);
  • delay(100);
  • sound(600);
  • delay(100);
  • sound(700);
  • delay(100);
  • sound(1000);
  • delay(100);
  • nosound();
  • }
  • Afficher();
  • }
  • /*************************************************************/
  • void Droite()
  • {
  • int i;
  • bool b=vrai;
  • if(ob==11)
  • {
  • for(i=0;i<4;i++) b=b&&(!obj11[0][i]||!grille[px+1][py+i]);
  • if(b==vrai)
  • for(i=0;i<4;i++)
  • {
  • grille[px][py+i]=faux;
  • grille[px+1][py+i]=vrai;
  • }
  • }
  • if(ob==1)
  • {
  • b=(!obj1[3][0]||!grille[px+4][py]);
  • if(b==vrai)
  • {
  • grille[px][py]=faux;
  • grille[px+4][py]=vrai;
  • }
  • }
  • if(ob==13||ob==15||ob==17)
  • {
  • if(ob==17)
  • {
  • for(i=0;i<3;i++) b=b&&(!obj3[1][1][i]||!grille[px+2][py+i]);
  • if(b==vrai)
  • for(i=0;i<3;i++)
  • {
  • if(obj3[1][0][i]==vrai) grille[px][py+i]=faux;
  • grille[px+1][py+i]=obj3[1][0][i];
  • grille[px+2][py+i]=vrai;
  • }
  • }
  • else
  • {
  • for(i=0;i<3;i++) b=b&&(!obj3[ob-9][1][i]||!grille[px+2][py+i]);
  • if(b==vrai)
  • for(i=0;i<3;i++)
  • {
  • if(obj3[ob-9][0][i]==vrai) grille[px][py+i]=faux;
  • grille[px+1][py+i]=obj3[ob-9][0][i];
  • grille[px+2][py+i]=vrai;
  • }
  • }
  • }
  • if(ob==4||ob==7)
  • {
  • b=(!obj2[ob*(ob-3)/4][2][0]||!grille[px+3][py])&&(!obj2[ob*(ob-3)/4][2][1]||!grille[px+3][py+1]);
  • if(b==vrai)
  • {
  • for(i=0;i<2;i++)
  • if(obj2[ob*(ob-3)/4][0][i]==vrai)
  • {
  • grille[px][py+i]=faux;
  • grille[px+2][py+1-i]=faux;
  • }
  • grille[px+3][py]=obj2[ob*(ob-3)/4][2][0];
  • grille[px+3][py+1]=obj2[ob*(ob-3)/4][2][1];
  • }
  • }
  • if(ob==10)
  • {
  • b=(!obj10[1][0]||!grille[px+2][py])&&(!obj10[1][1]||!grille[px+2][py+1]);
  • if(b==vrai)
  • {
  • grille[px][py]=faux;
  • grille[px][py+1]=faux;
  • grille[px+2][py]=vrai;
  • grille[px+2][py+1]=vrai;
  • }
  • }
  • if(ob==2||ob==8)
  • {
  • b=(!obj2[(ob-2)*5/6][2][0]||!grille[px+3][py])&&(!obj2[(ob-2)*5/6][1][1]||!grille[px+2][py+1]);
  • if(b==vrai)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj2[(ob-2)*5/6][i][0]==vrai) grille[px+i][py]=faux;
  • if(obj2[(ob-2)*5/6][i][1]==vrai) grille[px+i][py+1]=faux;
  • }
  • for(i=0;i<3;i++)
  • {
  • if(obj2[(ob-2)*5/6][i][0]==vrai) grille[px+i+1][py]=obj2[(ob-2)*5/6][i][0];
  • if(obj2[(ob-2)*5/6][i][1]==vrai) grille[px+i+1][py+1]=obj2[(ob-2)*5/6][i][1];
  • }
  • }
  • }
  • if(ob==3||ob==9)
  • {
  • b=(!obj2[(ob+3)/2][1][0]||!grille[px+2][py])&&(!obj2[(ob+3)/2][2][1]||!grille[px+3][py+1]);
  • if(b==vrai)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj2[(ob+3)/2][i][1]==vrai) grille[px+i][py+1]=faux;
  • if(obj2[(ob+3)/2][i][0]==vrai) grille[px+i][py]=faux;
  • }
  • for(i=0;i<3;i++)
  • {
  • if(obj2[(ob+3)/2][i][0]==vrai) grille[px+i+1][py]=obj2[(ob+3)/2][i][0];
  • if(obj2[(ob+3)/2][i][1]==vrai) grille[px+i+1][py+1]=obj2[(ob+3)/2][i][1];
  • }
  • }
  • }
  • if(ob==12||ob==14||ob==16)
  • {
  • if(ob==16)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj3[7][1][i]==vrai) b=b&&(!obj3[7][1][i]||!grille[px+2][py+i]);
  • else b=b&&(!obj3[7][0][i]||!grille[px+1][py+i]);
  • }
  • if(b==vrai)
  • for(i=0;i<3;i++)
  • {
  • grille[px][py+i]=faux;
  • grille[px+1][py+i]=vrai;
  • if(obj3[7][1][i]==vrai) grille[px+2][py+i]=obj3[7][1][i];
  • }
  • }
  • else
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj3[14-ob][1][i]==vrai) b=b&&(!obj3[14-ob][1][i]||!grille[px+2][py+i]);
  • else b=b&&(!obj3[14-ob][0][i]||!grille[px+1][py+i]);
  • }
  • if(b==vrai)
  • for(i=0;i<3;i++)
  • {
  • grille[px][py+i]=faux;
  • grille[px+1][py+i]=vrai;
  • if(obj3[14-ob][1][i]==vrai) grille[px+2][py+i]=obj3[14-ob][1][i];
  • }
  • }
  • }
  • if(ob==18||ob==19)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj3[3+(ob-18)*2][1][i]==vrai) b=b&&(!obj3[3+(ob-18)*2][1][i]||!grille[px+2][py+i]);
  • else b=b&&(!obj3[3+(ob-18)*2][0][i]||!grille[px+1][py+i]);
  • }
  • if(b==vrai)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj3[3+(ob-18)*2][1][i]==vrai)
  • {
  • grille[px+1][py+i]=faux;
  • grille[px+2][py+i]=obj3[3+(ob-18)*2][1][i];
  • }
  • if(obj3[3+(ob-18)*2][0][i]==vrai)
  • {
  • grille[px][py+i]=faux;
  • grille[px+1][py+i]=obj3[3+(ob-18)*2][0][i];
  • }
  • }
  • }
  • }
  • if(ob==5||ob==6)
  • {
  • for(i=0;i<2;i++)
  • {
  • if(obj2[2+(6-ob)*2][2][i]==vrai) b=b&&(!obj2[2+(6-ob)*2][2][i]||!grille[px+3][py+i]);
  • else b=b&&(!obj2[2+(6-ob)*2][0][i]||!grille[px+1][py+i]);
  • }
  • if(b==vrai)
  • {
  • grille[px][py]=faux;
  • grille[px][py+1]=faux;
  • for(i=0;i<2;i++)
  • {
  • if(obj2[2+(6-ob)*2][2][i]==vrai) grille[px+3][py+i]=vrai;
  • else grille[px+1][py+i]=vrai;
  • }
  • }
  • }
  • if(b==vrai) px++;
  • else c=0;
  • sound(300);
  • delay(20);
  • nosound();
  • Afficher();
  • }
  • /*************************************************************/
  • void Gauche()
  • {
  • int i;
  • bool b=vrai;
  • if(ob==11)
  • {
  • for(i=0;i<4;i++) b=b&&(!obj11[0][i]||!grille[px-1][py+i]);
  • if(b==vrai)
  • for(i=0;i<4;i++)
  • {
  • grille[px][py+i]=faux;
  • grille[px-1][py+i]=vrai;
  • }
  • }
  • if(ob==1)
  • {
  • b=(!obj1[0][0]||!grille[px-1][py]);
  • if(b==vrai)
  • {
  • grille[px+3][py]=faux;
  • grille[px-1][py]=vrai;
  • }
  • }
  • if(ob==12||ob==14||ob==16)
  • {
  • if(ob==16)
  • {
  • for(i=0;i<3;i++) b=b&&(!obj3[7][0][i]||!grille[px-1][py+i]);
  • if(b==vrai)
  • for(i=0;i<3;i++)
  • {
  • if(obj3[7][1][i]==vrai) grille[px+1][py+i]=faux;
  • grille[px][py+i]=obj3[7][1][i];
  • grille[px-1][py+i]=vrai;
  • }
  • }
  • else
  • {
  • for(i=0;i<3;i++) b=b&&(!obj3[14-ob][0][i]||!grille[px-1][py+i]);
  • if(b==vrai)
  • for(i=0;i<3;i++)
  • {
  • if(obj3[14-ob][1][i]==vrai) grille[px+1][py+i]=faux;
  • grille[px][py+i]=obj3[14-ob][1][i];
  • grille[px-1][py+i]=vrai;
  • }
  • }
  • }
  • if(ob==5||ob==6)
  • {
  • b=(!obj2[(7-ob)*2][0][0]||!grille[px-1][py])&&(!obj2[(7-ob)*2][0][1]||!grille[px-1][py+1]);
  • if(b==vrai)
  • {
  • for(i=0;i<2;i++)
  • if(obj2[(7-ob)*2][2][i]==vrai)
  • {
  • grille[px][py+1-i]=faux;
  • grille[px+2][py+i]=faux;
  • }
  • grille[px-1][py]=obj2[(7-ob)*2][0][0];
  • grille[px-1][py+1]=obj2[(7-ob)*2][0][1];
  • }
  • }
  • if(ob==10)
  • {
  • b=(!obj10[0][0]||!grille[px-1][py])&&(!obj10[0][1]||!grille[px-1][py+1]);
  • if(b==vrai)
  • {
  • grille[px+1][py]=faux;
  • grille[px+1][py+1]=faux;
  • grille[px-1][py]=vrai;
  • grille[px-1][py+1]=vrai;
  • }
  • }
  • if(ob==3||ob==8)
  • {
  • b=(!obj2[3+(2*ob-6)/5][0][1]||!grille[px-1][py+1])&&(!obj2[3+(2*ob-6)/5][1][0]||!grille[px][py]);
  • if(b==vrai)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj2[3+(2*ob-6)/5][i][0]==vrai) grille[px+i][py]=faux;
  • if(obj2[3+(2*ob-6)/5][i][1]==vrai) grille[px+i][py+1]=faux;
  • }
  • for(i=0;i<3;i++)
  • {
  • if(obj2[3+(2*ob-6)/5][i][0]==vrai) grille[px+i-1][py]=obj2[3+(2*ob-6)/5][i][0];
  • if(obj2[3+(2*ob-6)/5][i][1]==vrai) grille[px+i-1][py+1]=obj2[3+(2*ob-6)/5][i][1];
  • }
  • }
  • }
  • if(ob==2||ob==9)
  • {
  • b=(!obj2[(6*ob-12)/7][0][0]||!grille[px-1][py])&&(!obj2[(6*ob-12)/7][1][1]||!grille[px][py+1]);
  • if(b==vrai)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj2[(6*ob-12)/7][i][0]==vrai) grille[px+i][py]=faux;
  • if(obj2[(6*ob-12)/7][i][1]==vrai) grille[px+i][py+1]=faux;
  • }
  • for(i=0;i<3;i++)
  • {
  • if(obj2[(6*ob-12)/7][i][0]==vrai) grille[px+i-1][py]=obj2[(6*ob-12)/7][i][0];
  • if(obj2[(6*ob-12)/7][i][1]==vrai) grille[px+i-1][py+1]=obj2[(6*ob-12)/7][i][1];
  • }
  • }
  • }
  • if(ob==13||ob==15||ob==17)
  • {
  • if(ob==17)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj3[1][0][i]==vrai) b=b&&(!obj3[1][0][i]||!grille[px-1][py+i]);
  • else b=b&&(!obj3[1][1][i]||!grille[px][py+i]);
  • }
  • if(b==vrai)
  • for(i=0;i<3;i++)
  • {
  • grille[px+1][py+i]=faux;
  • grille[px][py+i]=vrai;
  • if(obj3[1][0][i]==vrai) grille[px-1][py+i]=obj3[1][0][i];
  • }
  • }
  • else
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj3[ob-9][0][i]==vrai) b=b&&(!obj3[ob-9][0][i]||!grille[px-1][py+i]);
  • else b=b&&(!obj3[ob-9][1][i]||!grille[px][py+i]);
  • }
  • if(b==vrai)
  • for(i=0;i<3;i++)
  • {
  • grille[px+1][py+i]=faux;
  • grille[px][py+i]=vrai;
  • if(obj3[ob-9][0][i]==vrai) grille[px-1][py+i]=obj3[ob-9][0][i];
  • }
  • }
  • }
  • if(ob==18||ob==19)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj3[2*(ob-18)+3][0][i]==vrai) b=b&&(!obj3[2*(ob-18)+3][0][i]||!grille[px-1][py+i]);
  • else b=b&&(!obj3[2*(ob-18)+3][1][i]||!grille[px][py+i]);
  • }
  • if(b==vrai)
  • {
  • for(i=0;i<3;i++)
  • {
  • if(obj3[2*(ob-18)+3][1][i]==vrai) grille[px+1][py+i]=faux;
  • grille[px][py+i]=obj3[2*(ob-18)+3][1][i];
  • if(obj3[2*(ob-18)+3][0][i]==vrai) grille[px-1][py+i]=obj3[2*(ob-18)+3][0][i];
  • }
  • }
  • }
  • if(ob==4||ob==7)
  • {
  • for(i=0;i<2;i++)
  • {
  • if(obj2[2*(ob-4)+1][0][i]==vrai) b=b&&(!obj2[2*(ob-4)+1][0][i]||!grille[px-1][py+i]);
  • else b=b&&(!obj2[2*(ob-4)+1][2][i]||!grille[px+1][py+i]);
  • }
  • if(b==vrai)
  • {
  • grille[px+2][py]=faux;
  • grille[px+2][py+1]=faux;
  • for(i=0;i<2;i++)
  • {
  • if(obj2[2*(ob-4)+1][0][i]==vrai) grille[px-1][py+i]=vrai;
  • else grille[px+1][py+i]=vrai;
  • }
  • }
  • }
  • if(b==vrai) px--;
  • else c=0;
  • sound(300);
  • delay(20);
  • nosound();
  • Afficher();
  • }
  • /*************************************************************/
  • void Rotation()
  • {
  • int i,j,a,c,d,f;
  • bool b=vrai;
  • switch(ob)
  • {
  • case 2 : c=2;a=0;break;
  • case 3 : c=4;a=3;break;
  • case 4 : c=0;a=1;break;
  • case 5 : c=6;a=4;break;
  • case 6 : c=7;a=2;break;
  • case 7 : c=1;a=7;break;
  • case 8 : c=3;a=5;break;
  • case 9 : c=5;a=6;break;
  • case 12 : a=0;c=2;f=3;break;
  • case 13 : a=3;c=4;f=0;break;
  • case 14 : a=1;c=0;f=4;break;
  • case 15 : a=4;c=6;f=1;break;
  • case 16 : a=2;c=7;f=7;break;
  • case 17 : a=7;c=1;f=2;break;
  • case 18 : a=5;c=3;break;
  • case 19 : a=6;c=5;break;
  • }
  • if(ob<10)
  • {
  • if(ob==1)
  • {
  • for(i=1;i<4;i++) b=b&&(!obj11[0][i]||!grille[px+1][py+i]);
  • if(b==vrai)
  • {
  • for(i=0;i<4;i++) grille[px+i][py]=faux;
  • for(i=0;i<4;i++) grille[px+1][py+i]=vrai;
  • px++;
  • }
  • }
  • else
  • {
  • for(i=0;i<2;i++)
  • for(j=0;j<2;j++)
  • {
  • if(obj2[a][i][j]==faux) b=b&&(!obj3[c][i][j]||!grille[px+i][py+j]);
  • }
  • b=b&&(!obj3[c][0][2]||!grille[px][py+2])&&(!obj3[c][1][2]||!grille[px+1][py+2]);
  • if(b==vrai)
  • {
  • for(i=0;i<3;i++)
  • for(j=0;j<2;j++)
  • if(obj2[a][i][j]==vrai) grille[px+i][py+j]=faux;
  • for(i=0;i<3;i++)
  • for(j=0;j<2;j++)
  • if(obj3[c][j][i]==vrai) grille[px+j][py+i]=obj3[c][j][i];
  • }
  • }
  • if(b==vrai) ob=ob+10;
  • }
  • else
  • {
  • if(ob>10)
  • {
  • if(ob==11)
  • {
  • for(i=2;i<4;i++) b=b&&(!obj1[i][0]||!grille[px+i-1][py]);
  • b=b&&(!obj1[0][0]||!grille[px-1][py]);
  • if(b==vrai)
  • {
  • for(i=0;i<4;i++) grille[px][py+i]=faux;
  • for(i=0;i<4;i++) grille[px+i-1][py]=vrai;
  • ob=1;
  • px--;
  • }
  • }
  • else
  • {
  • if(ob==18||ob==19)
  • {
  • for(i=0;i<2;i++)
  • for(j=0;j<2;j++)
  • {
  • if(obj3[c][j][i]==faux) b=b&&(!obj2[a][i][j]||!grille[px+j][py+i]);
  • }
  • b=b&&(!obj2[a][2][0]||!grille[px+2][py])&&(!obj2[a][2][1]||!grille[px+2][py+1]);
  • if(b==vrai)
  • {
  • for(i=0;i<2;i++)
  • for(j=0;j<3;j++)
  • if(obj3[c][i][j]==vrai) grille[px+i][py+j]=faux;
  • for(i=0;i<2;i++)
  • for(j=0;j<3;j++)
  • if(obj2[a][j][i]==vrai) grille[px+j][py+i]=obj2[a][j][i];
  • ob=ob-10;
  • }
  • }
  • else
  • {
  • if(ob==12||ob==14||ob==16) d=ob-9;
  • else d=ob-11;
  • for(i=0;i<2;i++)
  • for(j=0;j<2;j++)
  • {
  • if(obj3[c][j][i]==faux) b=b&&(!obj2[f][i][j]||!grille[px+j][py+i]);
  • }
  • b=b&&(!obj2[f][2][0]||!grille[px+2][py])&&(!obj2[f][2][1]||!grille[px+2][py+1]);
  • if(b==vrai)
  • {
  • for(i=0;i<2;i++)
  • for(j=0;j<3;j++)
  • if(obj3[c][i][j]==vrai) grille[px+i][py+j]=faux;
  • for(i=0;i<2;i++)
  • for(j=0;j<3;j++)
  • if(obj2[f][j][i]==vrai) grille[px+j][py+i]=obj2[f][j][i];
  • ob=d;
  • }
  • }
  • }
  • }
  • }
  • sound(300);
  • delay(20);
  • nosound();
  • Afficher();
  • }
  • /************************************************************/
  • void Nouvelle()
  • {
  • int i,j;
  • char *sco;
  • for(i=1;i<12;i++)
  • for(j=1;j<23;j++)
  • grille[i][j]=faux;
  • score=50;
  • bl=vrai;
  • sound(500);
  • delay(100);
  • sound(600);
  • delay(100);
  • sound(700);
  • delay(100);
  • sound(1000);
  • delay(100);
  • sound(1500);
  • delay(100);
  • sound(1600);
  • delay(100);
  • sound(1700);
  • delay(100);
  • sound(2000);
  • delay(100);
  • nosound();
  • Afficher();
  • score=50;
  • setfillstyle(0,15);
  • bar(300,190,600,220);
  • itoa(score,sco,10);
  • settextstyle(1,0,4);
  • setcolor(15);
  • outtextxy(450-(strlen(sco)*12),183,sco);
  • }
  • /***********************************************************/
  • void Effacer_ligne()
  • {
  • int i,j,k;
  • char c;
  • bool b;
  • for(i=1;i<21;i++)
  • {
  • while(1)
  • {
  • b=vrai;
  • for(j=1;j<12;j++)
  • b=b&&grille[j][i];
  • if(b==vrai)
  • {
  • px=0;
  • py=22;
  • score+=10;
  • sound(400);
  • delay(50);
  • sound(500);
  • delay(50);
  • sound(600);
  • delay(50);
  • sound(800);
  • delay(50);
  • sound(1000);
  • delay(50);
  • sound(1200);
  • delay(50);
  • nosound();
  • for(k=i;k<21;k++)
  • for(j=1;j<12;j++)
  • grille[j][k]=grille[j][k+1];
  • if(kbhit())
  • {
  • c=getch();
  • switch(c)
  • {
  • case 'n' : Nouvelle();break;
  • case 27 : exit(1);break;
  • }
  • }
  • delay(100);
  • Afficher();
  • }
  • else break;
  • }
  • }
  • }
  • /*************************************************************/
  • void Game_over()
  • {
  • int i,j;
  • char c;
  • if((bl==vrai)&&(max_ligne>19))
  • {
  • for(i=1;i<12;i++)
  • for(j=1;j<21;j++)
  • grille[i][j]=vrai;
  • Afficher();
  • settextstyle(1,0,4);
  • setcolor(0);
  • outtextxy(63,226,"GAME OVER");
  • sound(100);
  • delay(100);
  • sound(150);
  • delay(100);
  • sound(200);
  • delay(100);
  • sound(250);
  • delay(100);
  • sound(200);
  • delay(100);
  • sound(100);
  • delay(100);
  • nosound();
  • c=getch();
  • if(c=='n') Nouvelle();
  • if(c==27) exit(1);
  • bl=faux;
  • }
  • }
  • /**************************************************************/
  • void Pause()
  • {
  • int i,j;
  • unsigned int t;
  • void *p1,*p2,*p3,*p4,*p5,*p6;
  • t=imagesize(0,0,214,240);
  • p1=malloc(t);
  • p2=malloc(t);
  • p3=malloc(t);
  • p4=malloc(t);
  • p5=malloc(t);
  • p6=malloc(t);
  • getimage(0,0,214,240,p1);
  • getimage(0,240,214,480,p2);
  • getimage(214,0,428,240,p3);
  • getimage(214,240,428,480,p4);
  • getimage(428,0,642,240,p5);
  • getimage(428,240,642,480,p6);
  • for(i=0;i<getmaxy()/2;i++)
  • for(j=0;j<getmaxx()/2;j++)
  • putpixel(j*2,i*2,0);
  • setcolor(0);
  • settextstyle(1,0,7);
  • outtextxy(200,200,"PAUSE");
  • getch();
  • putimage(0,0,p1,COPY_PUT);
  • putimage(0,240,p2,COPY_PUT);
  • putimage(214,0,p3,COPY_PUT);
  • putimage(214,240,p4,COPY_PUT);
  • putimage(428,0,p5,COPY_PUT);
  • putimage(428,240,p6,COPY_PUT);
  • // free(p1);free(p2);free(p3);free(p4);free(p5);free(p6);
  • }
  • /*************************************************************/
  • void Procedure()
  • {
  • int i,j,k;
  • char *sco;
  • setfillstyle(1,LIGHTGRAY);
  • i=getmaxx();
  • j=getmaxy();
  • bar(0,0,i,j);
  • setfillstyle(1,7);
  • bar(37,51,259,450);
  • for(i=0;i<13;i++) grille[i][0]=vrai;
  • for(i=0;i<23;i++)
  • {
  • grille[0][i]=vrai;
  • grille[12][i]=vrai;
  • }
  • setcolor(15);
  • settextstyle(2,0,7);
  • outtextxy(41,451,"ESC : Quitter");
  • outtextxy(211,451,"N : Nouvelle partie");
  • outtextxy(461,451,"P : Pause");
  • settextstyle(4,0,8);
  • outtextxy(294,12,"TETRIS");
  • settextstyle(1,0,4);
  • outtextxy(399,0,"2Asoft");
  • outtextxy(400,130,"SCORE");
  • setcolor(0);
  • settextstyle(4,0,8);
  • outtextxy(295,13,"TETRIS");
  • settextstyle(1,0,4);
  • outtextxy(400,1,"2Asoft");
  • outtextxy(401,130,"SCORE");
  • settextstyle(2,0,7);
  • outtextxy(40,450,"ESC : Quitter");
  • outtextxy(210,450,"N : Nouvelle partie");
  • outtextxy(460,450,"P : Pause");
  • rectangle(37,48,262,453);
  • setcolor(15);
  • line(460,355,490,355);
  • line(490,355,490,385);
  • line(380,355,410,355);
  • line(410,355,410,385);
  • line(420,330,450,330);
  • line(450,330,450,360);
  • line(420,370,450,370);
  • line(450,370,450,400);
  • outtextxy(436,336,"|");
  • outtextxy(432,332,"^");
  • outtextxy(392,300,"ROTATION");
  • outtextxy(387,359,"<");
  • line(389,371,401,371);
  • outtextxy(300,359,"GAUCHE");
  • outtextxy(476,359,">");
  • line(468,371,480,371);
  • outtextxy(506,359,"DROITE");
  • outtextxy(435,375,"|");
  • outtextxy(420,404,"BAS");
  • settextstyle(2,1,7);
  • outtextxy(424,384,"<");
  • setcolor(0);
  • settextstyle(2,0,7);
  • line(380,355,380,385);
  • line(380,385,410,385);
  • line(420,330,420,360);
  • line(420,360,450,360);
  • line(420,370,420,400);
  • line(420,400,450,400);
  • line(460,355,460,385);
  • line(460,385,490,385);
  • outtextxy(435,335,"|");
  • outtextxy(431,331,"^");
  • outtextxy(391,299,"ROTATION");
  • outtextxy(386,358,"<");
  • line(388,370,400,370);
  • outtextxy(299,358,"GAUCHE");
  • outtextxy(475,358,">");
  • line(467,370,479,370);
  • outtextxy(505,358,"DROITE");
  • outtextxy(435,375,"|");
  • outtextxy(419,403,"BAS");
  • settextstyle(2,1,7);
  • outtextxy(423,383,"<");
  • setfillstyle(0,0);
  • bar(300,190,600,220);
  • while(c!='n')
  • {
  • c=getch();
  • if(c==27) exit(1);
  • sound(200);
  • delay(500);
  • nosound();
  • }
  • setcolor(15);
  • line(37,48,37,453);
  • line(36,453,262,453);
  • line(38,48,38,453);
  • line(36,452,262,452);
  • line(39,48,39,453);
  • line(36,451,262,451);
  • line(36,48,36,453);
  • line(36,454,262,454);
  • setcolor(0);
  • line(37,48,262,48);
  • line(262,48,262,453);
  • line(38,49,262,49);
  • line(261,48,261,452);
  • line(39,50,262,50);
  • line(260,48,260,451);
  • line(36,47,262,47);
  • line(263,47,263,454);
  • setcolor(11);
  • for(i=450;i>=51;i--)
  • {
  • line(40,i,259,i);
  • delay(1);
  • }
  • Random();
  • Nouvelle();
  • while(1)
  • {
  • Effacer_ligne();
  • for(k=0;k<21;k++)
  • {
  • j=0;
  • for(i=0;i<3;i++)
  • {
  • c=0;
  • while (kbhit()) c=getch();
  • if(c==77) Droite();
  • if(c==75) Gauche();
  • if(c==72) Rotation();
  • if((c=='n')||(c=='N')) {Nouvelle();Random();}
  • if(c==80) {j=300;break;}
  • if((c=='p')||(c=='P')) Pause();
  • if(c==27) exit(1);
  • delay(150);
  • }
  • Descendre();
  • delay(300-j);
  • if(bl==vrai) break;
  • }
  • Game_over();
  • setfillstyle(0,11);
  • bar(300,190,600,220);
  • itoa(score,sco,10);
  • settextstyle(1,0,4);
  • outtextxy(450-(strlen(sco)*12),183,sco);
  • }
  • }
  • /**************************************************************/
  • void Debut()
  • {
  • int i1;
  • float milieu_y;
  • sound(500);
  • delay(100);
  • sound(600);
  • delay(100);
  • sound(700);
  • delay(100);
  • sound(1000);
  • delay(100);
  • sound(1500);
  • delay(100);
  • sound(1600);
  • delay(100);
  • sound(1700);
  • delay(100);
  • sound(2000);
  • delay(100);
  • nosound();
  • settextstyle(2,0,7);
  • outtextxy(360,260,"Presente ...");
  • settextstyle(1,0,9);
  • outtextxy(160,140,"2Asoft");
  • sleep(1);
  • getch();
  • milieu_y = 240;
  • setcolor(11);
  • for (i1 = 0; i1 <= milieu_y; i1++)
  • {
  • rectangle (0+i1, 0+i1, getmaxx()-i1 , getmaxy()-i1);
  • delay(1);
  • }
  • setcolor(BLACK);
  • for (i1 = 0; i1 <= milieu_y; i1++)
  • {
  • rectangle (0+i1, 0+i1, getmaxx()-i1 , getmaxy()-i1);
  • delay(1);
  • }
  • sound(500);
  • delay(100);
  • sound(600);
  • delay(100);
  • sound(700);
  • delay(100);
  • sound(1000);
  • delay(100);
  • sound(1500);
  • delay(100);
  • sound(1600);
  • delay(100);
  • sound(1700);
  • delay(100);
  • sound(2000);
  • delay(100);
  • nosound();
  • setcolor(15);
  • outtextxy(150,180,"TETRIS");
  • sleep(1);
  • getch();
  • }
  • /***************************************************************/
  • void main()
  • {
  • char c;
  • int d=DETECT,m,i;
  • initgraph(&d,&m,"");
  • Debut();
  • Procedure();
  • closegraph();
  • }
#include<conio.h>
#include<dos.h>
#include<graphics.h>
#include<stdio.h>
#include<stdlib.h>
/***********************************************************/
typedef enum BOOL{faux,vrai} bool;
int px,py,max_ligne=1,ob;
long int score=0;
bool bl;
char c;
/***********************************************************/	
bool obj1[1][4]={1,1,1,1}; 
bool obj11[4][1]={1,1,1,1}; 
bool obj10[2][2]={1,1,1,1}; 
bool obj2[8][3][2]={1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,0,1,1,0,1,0,1,0,1,1,1}; 
bool obj3[8][2][3]={1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1}; 
bool grille[13][24];
/************************************************************/
void Afficher()
  {
	int i,j;
	setfillstyle(1,11);
	bar(40,51,259,450);
	for(i=1;i<21;i++)
	  for(j=1;j<12;j++)
		if(grille[j][i]==vrai) 
		   {
			 setfillstyle(1,LIGHTGRAY);
			 bar(20+j*20,470-i*20,40+j*20-1,450-i*20+1);
			 setcolor(0);
			 line(20+j*20,470-i*20,20+j*20,450-i*20+1);
			 line(20+j*20,470-i*20,40+j*20-1,470-i*20);
			 setcolor(15);
			 line(40+j*20-1,450-i*20+1,20+j*20,450-i*20+1);
			 line(40+j*20-1,450-i*20+1,40+j*20-1,470-i*20);
		   }
  }
/************************************************************/
int Max(bool tab[13][24])
  {
	int i,j,m;
	for(i=1;i<21;i++)
	  for(j=1;j<12;j++)
		if(tab[j][i]==vrai) 
		   m=i;
	return m;
  }
/*************************************************************/
void Random()
  {
	int t[7]={2,1,4,8,10,9,6},i,j,a;
	randomize();
	ob=t[random(7)];
	px=5;
	py=22;
	switch(ob)
	  {
		case 2 : a=0;break;
		case 4 : a=1;break;
		case 6 : a=2;break;
		case 8 : a=5;break;
		case 9 : a=6;break;
	  }
	if(ob==1) for(i=0;i<4;i++) grille[px+i][py]=obj1[i][0];
	else
	if(ob==10) 
	{
	for(i=0;i<2;i++)
	  {
	  grille[px][py+i]=obj10[0][i];
	  grille[px+1][py+i]=obj10[1][i];
	  }
	}
	else
	{
	  for(i=0;i<3;i++)
		{
		  grille[px+i][py]=obj2[a][i][0];
		  grille[px+i][py+1]=obj2[a][i][1];
		}
	}
	randomize();
  }
/******************************************************************/
void Descendre()
  {
	int i;
	bool b=vrai;
	if(ob==1)
	  {
		for(i=0;i<4;i++) b=b&&(!obj1[i][0]||!grille[px+i][py-1]); 
		if(b==vrai)
		  for(i=0;i<4;i++)
			  {
				grille[px+i][py]=faux;
				grille[px+i][py-1]=vrai;
			  }
	  }
	if(ob==11)
	  {
		b=(!obj11[0][0]||!grille[px][py-1]);
		if(b==vrai)
		  {
			grille[px][py+3]=faux;
			grille[px][py-1]=vrai;
		  }
	  }
	if(ob==2||ob==4||ob==6)
	  {
		for(i=0;i<3;i++) b=b&&(!obj2[ob/2-1][i][0]||!grille[px+i][py-1]);
		if(b==vrai)
		  for(i=0;i<3;i++)
			{
			  if(obj2[ob/2-1][i][1]==vrai) grille[px+i][py+1]=faux;
			  grille[px+i][py]=obj2[ob/2-1][i][1];
			  grille[px+i][py-1]=vrai;
			}
	  }
	if(ob==14||ob==17)
	  {
		b=(!obj3[(ob-14)/3][0][0]||!grille[px][py-1])&&(!obj3[(ob-14)/3][1][0]||!grille[px+1][py-1]);
		if(b==vrai)
		  {
		  for(i=0;i<2;i++)
		   if(obj3[(ob-14)/3][i][1]==faux) 
		   {
			 grille[px+i][py]=faux;
			 grille[px+1-i][py+2]=faux;
			 grille[px+i][py-1]=vrai;
			 grille[px-i+1][py-1]=vrai;
		   }
		  
		  }
	  }
	if(ob==10)
	  {
		b=(!obj10[0][0]||!grille[px][py-1])&&(!obj10[1][0]||!grille[px+1][py-1]);
		if(b==vrai)
		  {
			grille[px][py+1]=faux;
			grille[px+1][py+1]=faux;
			grille[px][py-1]=vrai;
			grille[px+1][py-1]=vrai;
			
		  }
	  }	
	if(ob==12||ob==18)
	  {
		b=(!obj3[ob/6][0][0]||!grille[px][py-1])&&(!obj3[ob/6][1][1]||!grille[px+1][py]);
		if(b==vrai)
		  {
			for(i=0;i<3;i++)
			  {
				if(obj3[ob/6][0][i]==vrai) grille[px][py+i]=faux;
				if(obj3[ob/6][1][i]==vrai) grille[px+1][py+i]=faux;
			  }
				for(i=0;i<3;i++)
			  {
			   if(obj3[ob/6][0][i]==vrai) grille[px][py+i-1]=obj3[ob/6][0][i];
			   if(obj3[ob/6][1][i]==vrai) grille[px+1][py+i-1]=obj3[ob/6][1][i];
			  }
		  }
	  }
	if(ob==13||ob==19) 
	  {
		b=(!obj3[5-((19-ob)/6)][1][0]||!grille[px+1][py-1])&&(!obj3[5-((19-ob)/6)][0][1]||!grille[px][py]);
		if(b==vrai)
		  {
			for(i=0;i<3;i++)
			  {
				if(obj3[5-((19-ob)/6)][0][i]==vrai) grille[px][py+i]=faux;
				if(obj3[5-((19-ob)/6)][1][i]==vrai) grille[px+1][py+i]=faux;
			  }
				for(i=0;i<3;i++)
			  {
				if(obj3[5-((19-ob)/6)][0][i]==vrai) grille[px][py+i-1]=obj3[5-((19-ob)/6)][0][i];
				if(obj3[5-((19-ob)/6)][1][i]==vrai) grille[px+1][py+i-1]=obj3[5-((19-ob)/6)][1][i];
			  }
		  }
	  }
	if(ob==3||ob==5||ob==7)
	  {
		for(i=0;i<3;i++) 
		  {
			if(obj2[ob-((7-ob)*(ob-3)/4)][i][0]==vrai) b=b&&(!obj2[ob-((7-ob)*(ob-3)/4)][i][0]||!grille[px+i][py-1]);
			else b=b&&(!obj2[ob-((7-ob)*(ob-3)/4)][i][1]||!grille[px+i][py]);
		  }
		if(b==vrai)
		  for(i=0;i<3;i++)
			{
			  grille[px+i][py+1]=faux;
			  grille[px+i][py]=vrai;
			 if(obj2[ob-((7-ob)*(ob-3)/4)][i][0]==vrai) grille[px+i][py-1]=obj2[ob-((7-ob)*(ob-3)/4)][i][0];
			}
	  }
	if(ob==8||ob==9)
	  {
		for(i=0;i<3;i++)
		  {
			if(obj2[ob-3][i][0]==vrai) b=b&&(!obj2[ob-3][i][0]||!grille[px+i][py-1]);
			else b=b&&(!obj2[ob-3][i][1]||!grille[px+i][py]);
		  }
		if(b==vrai)
		  {
			for(i=0;i<3;i++)
			  {
				if(obj2[ob-3][i][0]==vrai) 
				 {
				   grille[px+i][py]=faux;
				   grille[px+i][py-1]=obj2[ob-3][i][0];
				 }
				if(obj2[ob-3][i][1]==vrai) 
				 { 
				   grille[px+i][py+1]=faux;
				   grille[px+i][py]=obj2[ob-3][i][1];
				 }
				
			  }
		  }
	  }
	if(ob==15||ob==16)
	  {
		for(i=0;i<2;i++)
		  {
			if(obj3[ob-9][i][0]==vrai) b=b&&(!obj3[ob-9][i][0]||!grille[px+i][py-1]); 
			else b=b&&(!obj3[ob-9][i][2]||!grille[px+i][py+1]);
		  }
		if(b==vrai)
		{
		  grille[px][py+2]=faux;
		  grille[px+1][py+2]=faux;
		  for(i=0;i<2;i++)
			{
			  if(obj3[ob-9][i][0]==vrai) grille[px+i][py-1]=vrai;
			  else grille[px+i][py+1]=vrai;
			}
		}
	  }
	if(b==vrai) 
	{
	 sound(300);
	 delay(20);
	 nosound();
	 py--;
	 bl=faux;
	}
	else
	  {
		max_ligne=Max(grille);
		bl=vrai;
		c=0;
		Random();
		sound(500);
		delay(100);
		sound(600);
		delay(100);
		sound(700);
		delay(100);
		sound(1000);
		delay(100);
		nosound();
	  }
	Afficher();
  }
/*************************************************************/
void Droite()
  {
	int i;
	bool b=vrai;
	if(ob==11)
	  {
		for(i=0;i<4;i++) b=b&&(!obj11[0][i]||!grille[px+1][py+i]); 
		if(b==vrai)
		  for(i=0;i<4;i++)
			  {
				grille[px][py+i]=faux;
				grille[px+1][py+i]=vrai;
			  }
	  }
	if(ob==1)
	  {
		b=(!obj1[3][0]||!grille[px+4][py]);
		if(b==vrai)
		  {
			grille[px][py]=faux;
			grille[px+4][py]=vrai;
		  }
	  }
	if(ob==13||ob==15||ob==17)
	  { 
		if(ob==17)
	   { 
		for(i=0;i<3;i++) b=b&&(!obj3[1][1][i]||!grille[px+2][py+i]);
		 if(b==vrai)
		  for(i=0;i<3;i++)
			{
			  if(obj3[1][0][i]==vrai) grille[px][py+i]=faux;
			  grille[px+1][py+i]=obj3[1][0][i];
			  grille[px+2][py+i]=vrai;
			}
	   }
		else
	   { 
		for(i=0;i<3;i++) b=b&&(!obj3[ob-9][1][i]||!grille[px+2][py+i]);
		 if(b==vrai)
		  for(i=0;i<3;i++)
			{
			  if(obj3[ob-9][0][i]==vrai) grille[px][py+i]=faux;
			  grille[px+1][py+i]=obj3[ob-9][0][i];
			  grille[px+2][py+i]=vrai;
			}
	   }
	  }
	if(ob==4||ob==7)
	  {
		b=(!obj2[ob*(ob-3)/4][2][0]||!grille[px+3][py])&&(!obj2[ob*(ob-3)/4][2][1]||!grille[px+3][py+1]);
		if(b==vrai)
		  {
			for(i=0;i<2;i++)
			if(obj2[ob*(ob-3)/4][0][i]==vrai)
			{
			  grille[px][py+i]=faux;
			  grille[px+2][py+1-i]=faux;
			}
			grille[px+3][py]=obj2[ob*(ob-3)/4][2][0];
			grille[px+3][py+1]=obj2[ob*(ob-3)/4][2][1];
		  }
	  }
	if(ob==10)
	  {
		b=(!obj10[1][0]||!grille[px+2][py])&&(!obj10[1][1]||!grille[px+2][py+1]);
		if(b==vrai)
		  {
			grille[px][py]=faux;
			grille[px][py+1]=faux;
			grille[px+2][py]=vrai;
			grille[px+2][py+1]=vrai;
			
		  }
	  }	
	if(ob==2||ob==8)
	  {
		b=(!obj2[(ob-2)*5/6][2][0]||!grille[px+3][py])&&(!obj2[(ob-2)*5/6][1][1]||!grille[px+2][py+1]);
		if(b==vrai)
		  {
			for(i=0;i<3;i++)
			  {
				if(obj2[(ob-2)*5/6][i][0]==vrai) grille[px+i][py]=faux;
				if(obj2[(ob-2)*5/6][i][1]==vrai) grille[px+i][py+1]=faux;
			  }
				for(i=0;i<3;i++)
			  {
				if(obj2[(ob-2)*5/6][i][0]==vrai) grille[px+i+1][py]=obj2[(ob-2)*5/6][i][0];
				if(obj2[(ob-2)*5/6][i][1]==vrai) grille[px+i+1][py+1]=obj2[(ob-2)*5/6][i][1];
			  }
		  }
	  }
	if(ob==3||ob==9) 
	  {
		b=(!obj2[(ob+3)/2][1][0]||!grille[px+2][py])&&(!obj2[(ob+3)/2][2][1]||!grille[px+3][py+1]);
		if(b==vrai)
		  {
			for(i=0;i<3;i++)
			  {
				if(obj2[(ob+3)/2][i][1]==vrai) grille[px+i][py+1]=faux;
				if(obj2[(ob+3)/2][i][0]==vrai) grille[px+i][py]=faux;
			  }
				for(i=0;i<3;i++)
			  {
				if(obj2[(ob+3)/2][i][0]==vrai) grille[px+i+1][py]=obj2[(ob+3)/2][i][0];
				if(obj2[(ob+3)/2][i][1]==vrai) grille[px+i+1][py+1]=obj2[(ob+3)/2][i][1];
			  }
		  }
	  }
	if(ob==12||ob==14||ob==16)
	  {
		if(ob==16)
	   {
		for(i=0;i<3;i++) 
		  {
			if(obj3[7][1][i]==vrai) b=b&&(!obj3[7][1][i]||!grille[px+2][py+i]);
			else b=b&&(!obj3[7][0][i]||!grille[px+1][py+i]);
		  }
		if(b==vrai)
		  for(i=0;i<3;i++)
			{
			  grille[px][py+i]=faux;
			  grille[px+1][py+i]=vrai;
			  if(obj3[7][1][i]==vrai) grille[px+2][py+i]=obj3[7][1][i];
			}
	   }
	  else
	   {
		 for(i=0;i<3;i++) 
		  {
			if(obj3[14-ob][1][i]==vrai) b=b&&(!obj3[14-ob][1][i]||!grille[px+2][py+i]);
			else b=b&&(!obj3[14-ob][0][i]||!grille[px+1][py+i]);
		  }
		if(b==vrai)
		  for(i=0;i<3;i++)
			{
			  grille[px][py+i]=faux;
			  grille[px+1][py+i]=vrai;
			  if(obj3[14-ob][1][i]==vrai) grille[px+2][py+i]=obj3[14-ob][1][i];
			}
	   }
	  }
	if(ob==18||ob==19)
	  {
		for(i=0;i<3;i++)
		  {
			if(obj3[3+(ob-18)*2][1][i]==vrai) b=b&&(!obj3[3+(ob-18)*2][1][i]||!grille[px+2][py+i]);
			else b=b&&(!obj3[3+(ob-18)*2][0][i]||!grille[px+1][py+i]);
		  }
		if(b==vrai)
		  {
			for(i=0;i<3;i++)
			  {
                if(obj3[3+(ob-18)*2][1][i]==vrai) 
				{
				  grille[px+1][py+i]=faux;
				  grille[px+2][py+i]=obj3[3+(ob-18)*2][1][i];
				}
				if(obj3[3+(ob-18)*2][0][i]==vrai)
				{
				  grille[px][py+i]=faux;
				  grille[px+1][py+i]=obj3[3+(ob-18)*2][0][i];
				}
				
			  }
		  }
	  }
	if(ob==5||ob==6)
	  {
		for(i=0;i<2;i++)
		  {
			if(obj2[2+(6-ob)*2][2][i]==vrai) b=b&&(!obj2[2+(6-ob)*2][2][i]||!grille[px+3][py+i]); 
			else b=b&&(!obj2[2+(6-ob)*2][0][i]||!grille[px+1][py+i]);
		  }
		if(b==vrai)
		{
		  grille[px][py]=faux;
		  grille[px][py+1]=faux;
		  for(i=0;i<2;i++)
			{
			  if(obj2[2+(6-ob)*2][2][i]==vrai) grille[px+3][py+i]=vrai;
			  else grille[px+1][py+i]=vrai;
			}
		}
	  }
	if(b==vrai) px++;
	else c=0;
	sound(300);
	delay(20);
	nosound();
	Afficher();
  }
/*************************************************************/
void Gauche()
  {
	int i;
	bool b=vrai;
	if(ob==11)
	  {
		for(i=0;i<4;i++) b=b&&(!obj11[0][i]||!grille[px-1][py+i]); 
		if(b==vrai)
		  for(i=0;i<4;i++)
			  {
				grille[px][py+i]=faux;
				grille[px-1][py+i]=vrai;
			  }
	  }
	if(ob==1)
	  {
		b=(!obj1[0][0]||!grille[px-1][py]);
		if(b==vrai)
		  {
			grille[px+3][py]=faux;
			grille[px-1][py]=vrai;
		  }
	  }
	if(ob==12||ob==14||ob==16)
	  {
		if(ob==16)
		{
		for(i=0;i<3;i++) b=b&&(!obj3[7][0][i]||!grille[px-1][py+i]);
		if(b==vrai)
		  for(i=0;i<3;i++)
			{
			  if(obj3[7][1][i]==vrai) grille[px+1][py+i]=faux;
			  grille[px][py+i]=obj3[7][1][i];
			  grille[px-1][py+i]=vrai;
			}
		}
		else
		{
		  for(i=0;i<3;i++) b=b&&(!obj3[14-ob][0][i]||!grille[px-1][py+i]);
		if(b==vrai)
		  for(i=0;i<3;i++)
			{
			  if(obj3[14-ob][1][i]==vrai) grille[px+1][py+i]=faux;
			  grille[px][py+i]=obj3[14-ob][1][i];
			  grille[px-1][py+i]=vrai;
			}
		}
	  }
	if(ob==5||ob==6)
	  {
		b=(!obj2[(7-ob)*2][0][0]||!grille[px-1][py])&&(!obj2[(7-ob)*2][0][1]||!grille[px-1][py+1]);
		if(b==vrai)
		  {
			  for(i=0;i<2;i++)
			   if(obj2[(7-ob)*2][2][i]==vrai) 
				{
				  grille[px][py+1-i]=faux;
				  grille[px+2][py+i]=faux;
				}
				grille[px-1][py]=obj2[(7-ob)*2][0][0];
				grille[px-1][py+1]=obj2[(7-ob)*2][0][1];
			
		  }
	  }
	if(ob==10)
	  {
		b=(!obj10[0][0]||!grille[px-1][py])&&(!obj10[0][1]||!grille[px-1][py+1]);
		if(b==vrai)
		  {
			grille[px+1][py]=faux;
			grille[px+1][py+1]=faux;
			grille[px-1][py]=vrai;
			grille[px-1][py+1]=vrai;
			
		  }
	  }	
	if(ob==3||ob==8)
	  {
		b=(!obj2[3+(2*ob-6)/5][0][1]||!grille[px-1][py+1])&&(!obj2[3+(2*ob-6)/5][1][0]||!grille[px][py]);
		if(b==vrai)
		  {
			for(i=0;i<3;i++)
			  {
				if(obj2[3+(2*ob-6)/5][i][0]==vrai) grille[px+i][py]=faux;
				if(obj2[3+(2*ob-6)/5][i][1]==vrai) grille[px+i][py+1]=faux;
			  }
				for(i=0;i<3;i++)
			  {
				if(obj2[3+(2*ob-6)/5][i][0]==vrai) grille[px+i-1][py]=obj2[3+(2*ob-6)/5][i][0];
				if(obj2[3+(2*ob-6)/5][i][1]==vrai) grille[px+i-1][py+1]=obj2[3+(2*ob-6)/5][i][1];
			  }
		  }
	  }
	if(ob==2||ob==9) 
	  {
		b=(!obj2[(6*ob-12)/7][0][0]||!grille[px-1][py])&&(!obj2[(6*ob-12)/7][1][1]||!grille[px][py+1]);
		if(b==vrai)
		  {
			for(i=0;i<3;i++)
			  {
				if(obj2[(6*ob-12)/7][i][0]==vrai) grille[px+i][py]=faux;
				if(obj2[(6*ob-12)/7][i][1]==vrai) grille[px+i][py+1]=faux;
			  }
				for(i=0;i<3;i++)
			  {
				if(obj2[(6*ob-12)/7][i][0]==vrai) grille[px+i-1][py]=obj2[(6*ob-12)/7][i][0];
				if(obj2[(6*ob-12)/7][i][1]==vrai) grille[px+i-1][py+1]=obj2[(6*ob-12)/7][i][1];
			  }
		  }
	  }
	if(ob==13||ob==15||ob==17)
	  {
		if(ob==17)
		{
		for(i=0;i<3;i++) 
		  {
			if(obj3[1][0][i]==vrai) b=b&&(!obj3[1][0][i]||!grille[px-1][py+i]);
			else b=b&&(!obj3[1][1][i]||!grille[px][py+i]);
		  }
		if(b==vrai)
		  for(i=0;i<3;i++)
			{
			  grille[px+1][py+i]=faux;
			  grille[px][py+i]=vrai;
			  if(obj3[1][0][i]==vrai) grille[px-1][py+i]=obj3[1][0][i];
			}
		}
		else
		{
		for(i=0;i<3;i++) 
		  {
			if(obj3[ob-9][0][i]==vrai) b=b&&(!obj3[ob-9][0][i]||!grille[px-1][py+i]);
			else b=b&&(!obj3[ob-9][1][i]||!grille[px][py+i]);
		  }
		if(b==vrai)
		  for(i=0;i<3;i++)
			{
			  grille[px+1][py+i]=faux;
			  grille[px][py+i]=vrai;
			  if(obj3[ob-9][0][i]==vrai) grille[px-1][py+i]=obj3[ob-9][0][i];
			}
	
		}
	  }
	if(ob==18||ob==19)
	  {
		for(i=0;i<3;i++)
		  {
			if(obj3[2*(ob-18)+3][0][i]==vrai) b=b&&(!obj3[2*(ob-18)+3][0][i]||!grille[px-1][py+i]);
			else b=b&&(!obj3[2*(ob-18)+3][1][i]||!grille[px][py+i]);
		  }
		if(b==vrai)
		  {
			for(i=0;i<3;i++)
			  {
				if(obj3[2*(ob-18)+3][1][i]==vrai) grille[px+1][py+i]=faux;
				grille[px][py+i]=obj3[2*(ob-18)+3][1][i];
				if(obj3[2*(ob-18)+3][0][i]==vrai) grille[px-1][py+i]=obj3[2*(ob-18)+3][0][i];
			  }
		  }
	  }
	if(ob==4||ob==7)
	  {
		for(i=0;i<2;i++)
		  {
			if(obj2[2*(ob-4)+1][0][i]==vrai) b=b&&(!obj2[2*(ob-4)+1][0][i]||!grille[px-1][py+i]); 
			else b=b&&(!obj2[2*(ob-4)+1][2][i]||!grille[px+1][py+i]);
		  }
		if(b==vrai)
		{
		  grille[px+2][py]=faux;
		  grille[px+2][py+1]=faux;
		  for(i=0;i<2;i++)
			{
			  if(obj2[2*(ob-4)+1][0][i]==vrai) grille[px-1][py+i]=vrai;
			  else grille[px+1][py+i]=vrai;
			}
		}
	  }
	if(b==vrai) px--;
	else c=0;
	sound(300);
	delay(20);
	nosound();
	Afficher();
  }
/*************************************************************/
void Rotation()
  {
	int i,j,a,c,d,f;
	bool b=vrai;
	switch(ob)
	  {
		case 2 : c=2;a=0;break;
		case 3 : c=4;a=3;break;
		case 4 : c=0;a=1;break;
		case 5 : c=6;a=4;break;
		case 6 : c=7;a=2;break;
		case 7 : c=1;a=7;break;
		case 8 : c=3;a=5;break;
		case 9 : c=5;a=6;break;
		case 12 : a=0;c=2;f=3;break;
		case 13 : a=3;c=4;f=0;break;
		case 14 : a=1;c=0;f=4;break;
		case 15 : a=4;c=6;f=1;break;
		case 16 : a=2;c=7;f=7;break;
		case 17 : a=7;c=1;f=2;break;
		case 18 : a=5;c=3;break;
		case 19 : a=6;c=5;break;
	  }
	if(ob<10)
	  {
		if(ob==1)
		  {
			for(i=1;i<4;i++) b=b&&(!obj11[0][i]||!grille[px+1][py+i]);
			if(b==vrai)
			  {
				for(i=0;i<4;i++) grille[px+i][py]=faux;
				for(i=0;i<4;i++) grille[px+1][py+i]=vrai;
				px++;
			  }
		  }
		else
		  {
			for(i=0;i<2;i++)
			 for(j=0;j<2;j++)
			  {
				if(obj2[a][i][j]==faux) b=b&&(!obj3[c][i][j]||!grille[px+i][py+j]);
			  }
			b=b&&(!obj3[c][0][2]||!grille[px][py+2])&&(!obj3[c][1][2]||!grille[px+1][py+2]);
			if(b==vrai)
			  {
				for(i=0;i<3;i++)
				  for(j=0;j<2;j++)
					if(obj2[a][i][j]==vrai) grille[px+i][py+j]=faux;
				for(i=0;i<3;i++)
				  for(j=0;j<2;j++) 
					if(obj3[c][j][i]==vrai) grille[px+j][py+i]=obj3[c][j][i];
					
			  }
		  }
	  if(b==vrai) ob=ob+10;
	  }
	else
	{
	if(ob>10)
	  {
		if(ob==11)
		  {
			for(i=2;i<4;i++) b=b&&(!obj1[i][0]||!grille[px+i-1][py]);
			b=b&&(!obj1[0][0]||!grille[px-1][py]);
			if(b==vrai)
			  {
				for(i=0;i<4;i++) grille[px][py+i]=faux;
				for(i=0;i<4;i++) grille[px+i-1][py]=vrai;
				ob=1;
				px--;
			  }
		  }
		else
		  {
			if(ob==18||ob==19)
			  {
				for(i=0;i<2;i++)
				 for(j=0;j<2;j++)
				  {
					if(obj3[c][j][i]==faux) b=b&&(!obj2[a][i][j]||!grille[px+j][py+i]);
				  }
					b=b&&(!obj2[a][2][0]||!grille[px+2][py])&&(!obj2[a][2][1]||!grille[px+2][py+1]);
				if(b==vrai)
				  {
					for(i=0;i<2;i++)
					for(j=0;j<3;j++) 
					  if(obj3[c][i][j]==vrai) grille[px+i][py+j]=faux;
					for(i=0;i<2;i++)
					for(j=0;j<3;j++)   
					  if(obj2[a][j][i]==vrai) grille[px+j][py+i]=obj2[a][j][i];
					ob=ob-10;
				  }  
				
			  }
			else
			  {
			   if(ob==12||ob==14||ob==16) d=ob-9;
			   else d=ob-11;
				for(i=0;i<2;i++)
				 for(j=0;j<2;j++)
				  {
					if(obj3[c][j][i]==faux) b=b&&(!obj2[f][i][j]||!grille[px+j][py+i]);
				  }
					b=b&&(!obj2[f][2][0]||!grille[px+2][py])&&(!obj2[f][2][1]||!grille[px+2][py+1]);
				if(b==vrai)
				  {
					for(i=0;i<2;i++)
					for(j=0;j<3;j++) 
					  if(obj3[c][i][j]==vrai) grille[px+i][py+j]=faux;
					for(i=0;i<2;i++)
					for(j=0;j<3;j++)   
					  if(obj2[f][j][i]==vrai) grille[px+j][py+i]=obj2[f][j][i];
					ob=d;
				  }  
			  
			  }
		  }
	  }
	  }
	sound(300);
	delay(20);
	nosound();
	Afficher();
  }
/************************************************************/
void Nouvelle()
  {
	int i,j;
	char *sco;
	for(i=1;i<12;i++)
	  for(j=1;j<23;j++)
		grille[i][j]=faux;
	score=50;
	bl=vrai;
	sound(500);
	delay(100);
	sound(600);
	delay(100);
	sound(700);
	delay(100);
	sound(1000);
	delay(100);
	sound(1500);
	delay(100);
	sound(1600);
	delay(100);
	sound(1700);
	delay(100);
	sound(2000);
	delay(100);
	nosound();
	Afficher();
	score=50;
	setfillstyle(0,15);
	bar(300,190,600,220);
	itoa(score,sco,10);
	settextstyle(1,0,4);
	setcolor(15);
	outtextxy(450-(strlen(sco)*12),183,sco);
  }
/***********************************************************/
void Effacer_ligne()
  {
	int i,j,k;
	char c;
	bool b;
	for(i=1;i<21;i++)
	  {
		while(1)
		{
		b=vrai;
		for(j=1;j<12;j++) 
		  b=b&&grille[j][i];
		if(b==vrai)
		{
		 px=0;
		 py=22;
		 score+=10;
		 sound(400);
		 delay(50);
		 sound(500);
		 delay(50);
		 sound(600);
		 delay(50);
		 sound(800);
		 delay(50);
		 sound(1000);
		 delay(50);
		 sound(1200);
		 delay(50);
		 nosound();
		  for(k=i;k<21;k++)
		   for(j=1;j<12;j++)
			grille[j][k]=grille[j][k+1];
		 if(kbhit())
		   {
		   c=getch();
		   switch(c)
			 {
			   case 'n' : Nouvelle();break;
			   case  27 : exit(1);break;
			 }
		   }
		 delay(100);
         Afficher();
		}
		else break;
		}
	  }
   }
/*************************************************************/
void Game_over()
  {
	int i,j;
	char c;
	if((bl==vrai)&&(max_ligne>19))
	  {
			for(i=1;i<12;i++)
			  for(j=1;j<21;j++)
				grille[i][j]=vrai;
			Afficher();
			settextstyle(1,0,4);
			setcolor(0);
			outtextxy(63,226,"GAME OVER");
			sound(100);
			delay(100);
			sound(150);
			delay(100);
			sound(200);
			delay(100);
			sound(250);
			delay(100);
			sound(200);
			delay(100);
			sound(100);
			delay(100);
			nosound();
			c=getch();
			if(c=='n') Nouvelle();
			if(c==27) exit(1);
	  bl=faux;
	  }
  }
/**************************************************************/
void Pause()
{
  int i,j;
  unsigned int t;
  void *p1,*p2,*p3,*p4,*p5,*p6;
  t=imagesize(0,0,214,240);
  p1=malloc(t);
  p2=malloc(t);
  p3=malloc(t);
  p4=malloc(t);
  p5=malloc(t);
  p6=malloc(t);
  getimage(0,0,214,240,p1);
  getimage(0,240,214,480,p2);
  getimage(214,0,428,240,p3);
  getimage(214,240,428,480,p4);
  getimage(428,0,642,240,p5);
  getimage(428,240,642,480,p6);
  for(i=0;i<getmaxy()/2;i++)
	for(j=0;j<getmaxx()/2;j++)
	  putpixel(j*2,i*2,0);
  setcolor(0);
  settextstyle(1,0,7);
  outtextxy(200,200,"PAUSE");
  getch();
  putimage(0,0,p1,COPY_PUT);
  putimage(0,240,p2,COPY_PUT);
  putimage(214,0,p3,COPY_PUT);
  putimage(214,240,p4,COPY_PUT);
  putimage(428,0,p5,COPY_PUT);
  putimage(428,240,p6,COPY_PUT);
 // free(p1);free(p2);free(p3);free(p4);free(p5);free(p6);
}
/*************************************************************/
void Procedure()
  {
	int i,j,k;
	char *sco;
	setfillstyle(1,LIGHTGRAY);
	i=getmaxx();
	j=getmaxy();
	bar(0,0,i,j);
	setfillstyle(1,7);
	bar(37,51,259,450);
	for(i=0;i<13;i++) grille[i][0]=vrai;
	for(i=0;i<23;i++) 
	  {
		grille[0][i]=vrai;
		grille[12][i]=vrai;
	  }
	setcolor(15);
	settextstyle(2,0,7);
	outtextxy(41,451,"ESC : Quitter");
	outtextxy(211,451,"N : Nouvelle partie");
	outtextxy(461,451,"P : Pause");
	settextstyle(4,0,8);
	outtextxy(294,12,"TETRIS");
	settextstyle(1,0,4);
	outtextxy(399,0,"2Asoft");
	outtextxy(400,130,"SCORE");
	setcolor(0);
	settextstyle(4,0,8);
	outtextxy(295,13,"TETRIS");
	settextstyle(1,0,4);
	outtextxy(400,1,"2Asoft");
	outtextxy(401,130,"SCORE");
	settextstyle(2,0,7);
	outtextxy(40,450,"ESC : Quitter");
	outtextxy(210,450,"N : Nouvelle partie");
	outtextxy(460,450,"P : Pause");
	rectangle(37,48,262,453);
	setcolor(15);
	line(460,355,490,355);
	line(490,355,490,385);
	line(380,355,410,355);
	line(410,355,410,385);
	line(420,330,450,330);
	line(450,330,450,360);
	line(420,370,450,370);
	line(450,370,450,400);
	outtextxy(436,336,"|");
	outtextxy(432,332,"^");
	outtextxy(392,300,"ROTATION");
	outtextxy(387,359,"<");
	line(389,371,401,371);
	outtextxy(300,359,"GAUCHE");
	outtextxy(476,359,">");
	line(468,371,480,371);
	outtextxy(506,359,"DROITE");
	outtextxy(435,375,"|");
	outtextxy(420,404,"BAS");
	settextstyle(2,1,7);
	outtextxy(424,384,"<");
	setcolor(0);
	settextstyle(2,0,7);
	line(380,355,380,385);
	line(380,385,410,385);
	line(420,330,420,360);
	line(420,360,450,360);
	line(420,370,420,400);
	line(420,400,450,400);
	line(460,355,460,385);
	line(460,385,490,385);
	outtextxy(435,335,"|");
	outtextxy(431,331,"^");
	outtextxy(391,299,"ROTATION");
	outtextxy(386,358,"<");
	line(388,370,400,370);
	outtextxy(299,358,"GAUCHE");
	outtextxy(475,358,">");
	line(467,370,479,370);
	outtextxy(505,358,"DROITE");
	outtextxy(435,375,"|");
	outtextxy(419,403,"BAS");
	settextstyle(2,1,7);
	outtextxy(423,383,"<");
	setfillstyle(0,0);
	bar(300,190,600,220);
	while(c!='n')
	  {
		c=getch();
		if(c==27) exit(1);
		sound(200);
		delay(500);
		nosound();
	  }
	setcolor(15);
	line(37,48,37,453);
	line(36,453,262,453);
	line(38,48,38,453);
	line(36,452,262,452);
	line(39,48,39,453);
	line(36,451,262,451);
	line(36,48,36,453);
	line(36,454,262,454);
	setcolor(0);
	line(37,48,262,48);
	line(262,48,262,453);
	line(38,49,262,49);
	line(261,48,261,452);
	line(39,50,262,50);
	line(260,48,260,451);
	line(36,47,262,47);
	line(263,47,263,454);
	setcolor(11);
	for(i=450;i>=51;i--)
	 {
	  line(40,i,259,i);
	  delay(1);
	 }
	Random();
	Nouvelle();
	while(1)
	  {
	 Effacer_ligne();
	 for(k=0;k<21;k++)
	  {
		j=0;
		for(i=0;i<3;i++)
		  { 
			c=0;
			while (kbhit())	c=getch();
			if(c==77) Droite();
			if(c==75) Gauche();
			if(c==72) Rotation();
			if((c=='n')||(c=='N')) {Nouvelle();Random();}
			if(c==80) {j=300;break;}
			if((c=='p')||(c=='P')) Pause();
			if(c==27) exit(1);
			delay(150);
			  
		   }
		Descendre();
		delay(300-j);
		if(bl==vrai) break;
		}
		Game_over();
		setfillstyle(0,11);
		bar(300,190,600,220);
		itoa(score,sco,10);
		settextstyle(1,0,4);
		outtextxy(450-(strlen(sco)*12),183,sco);

	  }
  }
/**************************************************************/
void Debut()
  {
	int i1;
	float milieu_y;
	sound(500);
	delay(100);
	sound(600);
	delay(100);
	sound(700);
	delay(100);
	sound(1000);
	delay(100);
	sound(1500);
	delay(100);
	sound(1600);
	delay(100);
	sound(1700);
	delay(100);
	sound(2000);
	delay(100);
	nosound();
	settextstyle(2,0,7);
	outtextxy(360,260,"Presente ...");
	settextstyle(1,0,9);
	outtextxy(160,140,"2Asoft");
	sleep(1);
	getch();
	milieu_y = 240;
	setcolor(11);
	for (i1 = 0; i1 <= milieu_y; i1++) 
	{
	rectangle (0+i1, 0+i1, getmaxx()-i1 , getmaxy()-i1);
	delay(1);
	}
	setcolor(BLACK);
	for (i1 = 0; i1 <= milieu_y; i1++) 
	{
	rectangle (0+i1, 0+i1, getmaxx()-i1 , getmaxy()-i1);
	delay(1);
	}
	sound(500);
	delay(100);
	sound(600);
	delay(100);
	sound(700);
	delay(100);
	sound(1000);
	delay(100);
	sound(1500);
	delay(100);
	sound(1600);
	delay(100);
	sound(1700);
	delay(100);
	sound(2000);
	delay(100);
	nosound();
	setcolor(15);
	outtextxy(150,180,"TETRIS");
	sleep(1);
	getch();
  }
/***************************************************************/
void main()
  { 
	char c;
	int d=DETECT,m,i;
	initgraph(&d,&m,"");
	Debut();
	Procedure();
	closegraph();
  }




 Sources de la même categorie

Source avec Zip Source avec une capture JEU DES CARTES par eapaceinfo
PROGRAMME DE JEU DE MPT par KerizGarmm
Source avec Zip Source avec une capture JEUX SERPENT par antho974
Source avec Zip Source avec une capture PENDU EN SDL par Damsou91
Source avec Zip STATE MACHINE MODIFICATION MATH BUCKHAM par billybones79

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture TETRIS EN C++ AVEC LA SDL par guitariste2
Source avec Zip GALAGA JEU par f_l_a_s_h_b_a_c_k
Source avec Zip PUSH TO THE CLIC (V.2) : JEU OÙ L'ON DOIT FAIRE UN MAXIMUM D... par Vampire Lord
Source avec Zip Source avec une capture JEU DE TETRIX [WIN32][VC++7][SANS MFC][FMOD] par max12
Source avec Zip DIAMANT (JEU EN MODE GRAPHIQUE) par nkibo

Commentaires et avis

Commentaire de Penguin_X le 04/05/2004 13:49:59

Beau travail. je vais me basé la dessus pour faire des jeu de ce style :) Br5avo encore et bon courage !!!

Commentaire de Kirua le 04/05/2004 17:56:52

screen?

Commentaire de djl le 04/05/2004 22:14:07

je crois pas que l'on puisse faire de screen sous dos

Commentaire de eldered le 05/05/2004 16:52:18

Salut,

Non, c'est impossible de faire des screenShot sous le mode graphique de Turbo C {Graphics.h}. La seule solution et de prendre en photo son écran ;). Sinon un zip serait le bien venue avec les libS graphique et un exe. SI tu sais pas comment faire, regarde mes sources. ++

Ed.

Commentaire de equimose le 11/07/2004 16:56:55

Salut je viens de terminer un tetris
pi je voulais voir ce que mes compatriote developpeurs avais fais.
et je tombe sur votre code ... je suis vachement surpris.
rien avoir avec le mien.

Bon le soucis c que ca compile pas sur turbo c++ 6.0
j'ai 150 warning : initializing BOOL with int
je crois que cton type def qui me fous en carafe si vous savez le probléme sauvez moi je suis curieux debugger vore code

a+ bon continuation

Commentaire de 2asoft le 26/07/2004 22:13:52

salut equimose ;
pour ton probleme je croi que tu dois enregistrer le fichier sous l'extension .c et non pas .cpp et jesper que ca va resoudre le probleme essaye et repond moi,
et merci.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Ajouter un timer à une application Turbo C++ [ par Ombitious_Developper ] salut:J'ai fait un jeu avec Turbo C++ 3.0 je souhaite savoir comment afficher le temps écoulé pendant ce jeu .et Merci. programme de jeu en turbo c [ par raxrax ] raxraxje veux de l'aide pour programmer en turbo c une sumulation de BATTERIE ANTI AERIENNE QUI ABBAT DES AVIONS QUI PASSENT chaos game 2 en c++ [ par clira82 ] coucou je recherche de l aide pour programmer un jeu en visual c++c'est un triangle de sierpinski en recursif:Il y a un point a chaque sommet du grand Créer un jeu vidéo... [ par Crepuscule3 ] Bonjour à tous,   J'ai quelques compétences en C/C++ et je souhaiterai apprendre à créer un jeu vidéo. Je sais... certains ne vont pas pouvoir s'empêc Graphiques pour le Jeu Backgammon en C [ par choupettuz ] Je souhaite bien avoir les codes pour bouger mon dee et les pions sur Turbo C pour le jeu backgammon. Le zip que j'ai telecharger pour le jeu backgamm Programation de jeu avec Game Studio 6 [ par anarchiste987 ] Bonjour a tous, ce que je demande est peu être simple pour vous,mais pour moi ... c'est un probleme de taille Je vais aller droit au but :J'ai besoin Pipe Game ? [ par loicus ] J'ai absolument besoin de votre aide,Je recherche le code source d'un pipe game (jeu ou il faut construire une tuyauterie au fur et a mesur que l'eau Jeu vidéo C/C++ (simple 2D), help svp [ par cyberlewis ] Slt,J'aimerais bien prog un jeu vidéo en C/C++.J'utilise DevC++Bon en fait c'est assez rapide à expliquer,Disons quelques tiles (16x16), un sprite pr scripting de jeu [ par didrocks ] Quel est le meilleur moyen pour créer un bon script de jeu?Je suis en train de créer un RPG et il faut enregistrer plusieurs paramètres par carte: per


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales