⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 efc.txt

📁 关于俄罗斯方块的vc++代码以及解释 自己看看就知道了
💻 TXT
字号:
#include <dos.h>
#include<graphics.h>
#include<stdlib.h>
#define KEY_UP      0x4800
#define KEY_DOWN    0x5000
#define KEY_LEFT    0x4b00
#define KEY_RIGHT   0x4d00
void interrupt (*old)();
int score=0;
int le=0;
int cou=0;
int xing_type;
int pos_x=260;
int pos_y=20;
int scene[10][20];
char *go="Game Over~~";
struct pos{int x; int y; };
       struct rb4{struct pos b[4][4];int type;};

       struct rb4  gun[7];
void interrupt intproc()
 { cou++;
  old();}

int can_do(int kk,int typ_g,int typ_x)
   {  int kkey=kk;
      int type_gun=typ_g;
      int type_xing=typ_x;
      int i,j,k,ind_x,ind_y;
     int now_x,now_y;
      now_x=pos_x;
        now_y=pos_y;

       switch(kkey){
             case(KEY_LEFT):now_x=pos_x-20; now_y=pos_y; break;
             case(KEY_RIGHT):now_x=pos_x+20; now_y=pos_y;break;
             case(KEY_DOWN): now_x=pos_x;now_y=pos_y+20; break;
             case(KEY_UP):
            if(type_xing==3)
                 type_xing=0;
                else
                  type_xing++;
                      break;
                     }
      for(i=0;i<=3;i++)
           {ind_x=(now_x+gun[type_gun].b[i][type_xing].x-200)/20;
           ind_y=(now_y+gun[type_gun].b[i][type_xing].y-20)/20;
          if (ind_x<0 || ind_x>9||ind_y>19||scene[ind_x][ind_y]==1)
                 return 0;  }
               return 1;}
main()
{     int next_type;
      int yu_x=50;
       int yu_y=50;
     int key,b_type;
     int i,ii,j,jj,jjj,iii,k,zong;
     int grap_c=DETECT,grap_m;
      int zu_x,zu_y;
      int jiading=5;
     initgraph(&grap_c,&grap_m,"");
         setlinestyle(0,0,3);
         setcolor(4);
         moveto(195,15);
        lineto(405,15);
        lineto(405,425);
          lineto(195,425);
        lineto(195,15);
          gotoxy(10,10);
        printf("Score:%d",score);
	      gotoxy(10,11);
	      printf("Level:%d",le);
	    gotoxy(62,24);
         printf("copyright@Kxw");

/*    gun1 init           */
     gun[0].b[0][0].x=20;gun[0].b[0][0].y=0;gun[0].b[1][0].x=40; gun[0].b[1][0].y=0;
     gun[0].b[2][0].x=40;gun[0].b[2][0].y=20; gun[0].b[3][0].x=40;gun[0].b[3][0].y=40;

  gun[0].b[0][1].x=40;gun[0].b[0][1].y=0;gun[0].b[1][1].x=40; gun[0].b[1][1].y=20;
     gun[0].b[2][1].x=20;gun[0].b[2][1].y=20; gun[0].b[3][1].x=0;gun[0].b[3][1].y=20;

  gun[0].b[0][2].x=40;gun[0].b[0][2].y=40;gun[0].b[1][2].x=20; gun[0].b[1][2].y=40;
     gun[0].b[2][2].x=20;gun[0].b[2][2].y=20; gun[0].b[3][2].x=20;gun[0].b[3][2].y=0;

  gun[0].b[0][3].x=20;gun[0].b[0][3].y=40;gun[0].b[1][3].x=20; gun[0].b[1][3].y=20;
     gun[0].b[2][3].x=40;gun[0].b[2][3].y=20; gun[0].b[3][3].x=60;gun[0].b[3][3].y=20;

     gun[0].type=4;

/*   gun2 init           */
     gun[1].b[0][0].x=40;gun[1].b[0][0].y=0;gun[1].b[1][0].x=20; gun[1].b[1][0].y=0;
     gun[1].b[2][0].x=20;gun[1].b[2][0].y=20; gun[1].b[3][0].x=20;gun[1].b[3][0].y=40;

  gun[1].b[0][1].x=40;gun[1].b[0][1].y=40;gun[1].b[1][1].x=40; gun[1].b[1][1].y=20;
     gun[1].b[2][1].x=20;gun[1].b[2][1].y=20; gun[1].b[3][1].x=0;gun[1].b[3][1].y=20;

 gun[1].b[0][2].x=20;gun[1].b[0][2].y=40;gun[1].b[1][2].x=40; gun[1].b[1][2].y=40;
     gun[1].b[2][2].x=40;gun[1].b[2][2].y=20; gun[1].b[3][2].x=40;gun[1].b[3][2].y=0;


 gun[1].b[0][3].x=20;gun[1].b[0][3].y=20;gun[1].b[1][3].x=20; gun[1].b[1][3].y=40;
     gun[1].b[2][3].x=40;gun[1].b[2][3].y=40; gun[1].b[3][3].x=60;gun[1].b[3][3].y=40;
gun[1].type=4;

/* gun[2]   init */

     gun[2].b[0][0].x=20;gun[2].b[0][0].y=0;gun[2].b[1][0].x=00; gun[2].b[1][0].y=20;
     gun[2].b[2][0].x=20;gun[2].b[2][0].y=20; gun[2].b[3][0].x=40;gun[2].b[3][0].y=20;

  gun[2].b[0][1].x=40;gun[2].b[0][1].y=20;gun[2].b[1][1].x=20; gun[2].b[1][1].y=0;
     gun[2].b[2][1].x=20;gun[2].b[2][1].y=20; gun[2].b[3][1].x=20;gun[2].b[3][1].y=40;

 gun[2].b[0][2].x=20;gun[2].b[0][2].y=40;gun[2].b[1][2].x=0; gun[2].b[1][2].y=20;
     gun[2].b[2][2].x=20;gun[2].b[2][2].y=20; gun[2].b[3][2].x=40;gun[2].b[3][2].y=20;


 gun[2].b[0][3].x=0;gun[2].b[0][3].y=20;gun[2].b[1][3].x=20; gun[2].b[1][3].y=0;
     gun[2].b[2][3].x=20;gun[2].b[2][3].y=20; gun[2].b[3][3].x=20;gun[2].b[3][3].y=40;
gun[2].type=4;

    /* zuo init */
     gun[3].b[0][0].x=0;gun[3].b[0][0].y=20;gun[3].b[1][0].x=20; gun[3].b[1][0].y=20;
     gun[3].b[2][0].x=20;gun[3].b[2][0].y=40; gun[3].b[3][0].x=40;gun[3].b[3][0].y=40;

  gun[3].b[0][1].x=0;gun[3].b[0][1].y=40;gun[3].b[1][1].x=0; gun[3].b[1][1].y=20;
     gun[3].b[2][1].x=20;gun[3].b[2][1].y=20; gun[3].b[3][1].x=20;gun[3].b[3][1].y=0;

    gun[3].b[0][2].x=0;gun[3].b[0][2].y=20;gun[3].b[1][2].x=20; gun[3].b[1][2].y=20;
     gun[3].b[2][2].x=20;gun[3].b[2][2].y=40; gun[3].b[3][2].x=40;gun[3].b[3][2].y=40;

  gun[3].b[0][3].x=0;gun[3].b[0][3].y=40;gun[3].b[1][3].x=0; gun[3].b[1][3].y=20;
     gun[3].b[2][3].x=20;gun[3].b[2][3].y=20; gun[3].b[3][3].x=20;gun[3].b[3][3].y=0;
gun[3].type=4;

/* you init */

     gun[4].b[0][0].x=0;gun[4].b[0][0].y=40;gun[4].b[1][0].x=20; gun[4].b[1][0].y=40;
     gun[4].b[2][0].x=20;gun[4].b[2][0].y=20; gun[4].b[3][0].x=40;gun[4].b[3][0].y=20;

  gun[4].b[0][1].x=20;gun[4].b[0][1].y=0;gun[4].b[1][1].x=20; gun[4].b[1][1].y=20;
     gun[4].b[2][1].x=40;gun[4].b[2][1].y=20; gun[4].b[3][1].x=40;gun[4].b[3][1].y=40;


     gun[4].b[0][2].x=0;gun[4].b[0][2].y=40;gun[4].b[1][2].x=20; gun[4].b[1][2].y=40;
     gun[4].b[2][2].x=20;gun[4].b[2][2].y=20; gun[4].b[3][2].x=40;gun[4].b[3][2].y=20;

  gun[4].b[0][3].x=20;gun[4].b[0][3].y=0;gun[4].b[1][3].x=20; gun[4].b[1][3].y=20;
     gun[4].b[2][3].x=40;gun[4].b[2][3].y=20; gun[4].b[3][3].x=40;gun[4].b[3][3].y=40;
gun[4].type=4;

/* gang init */


     gun[5].b[0][0].x=0;gun[5].b[0][0].y=20;gun[5].b[1][0].x=20; gun[5].b[1][0].y=20;
     gun[5].b[2][0].x=40;gun[5].b[2][0].y=20; gun[5].b[3][0].x=60;gun[5].b[3][0].y=20;

 gun[5].b[0][1].x=20;gun[5].b[0][1].y=0;gun[5].b[1][1].x=20; gun[5].b[1][1].y=20;
     gun[5].b[2][1].x=20;gun[5].b[2][1].y=40; gun[5].b[3][1].x=20;gun[5].b[3][1].y=60;


     gun[5].b[0][2].x=0;gun[5].b[0][2].y=20;gun[5].b[1][2].x=20; gun[5].b[1][2].y=20;
     gun[5].b[2][2].x=40;gun[5].b[2][2].y=20; gun[5].b[3][2].x=60;gun[5].b[3][2].y=20;

 gun[5].b[0][3].x=20;gun[5].b[0][3].y=0;gun[5].b[1][3].x=20; gun[5].b[1][3].y=20;
     gun[5].b[2][3].x=20;gun[5].b[2][3].y=40; gun[5].b[3][3].x=20;gun[5].b[3][3].y=60;
gun[5].type=4;

/* fang init*/
  for(i=0;i<=3;i++){
  gun[6].b[0][i].x=20;gun[6].b[0][i].y=0;gun[6].b[1][i].x=40; gun[6].b[1][i].y=0;
     gun[6].b[2][i].x=20;gun[6].b[2][i].y=20; gun[6].b[3][i].x=40;gun[6].b[3][i].y=20;}
     gun[6].type=4;
for(i=0;i<=9;i++)
  for(j=0;j<=19;j++)
   scene[i][j]=0;



/*  interrupt */
 old=getvect(0x1c);
  setvect(0x1c,intproc);
  enable();

xing_type=0;

/*b_type=jiading;*/
next_type=random(7);
      b_type=next_type;

     next_type=random(7);
                  setfillstyle(SOLID_FILL,GREEN);
     for(i=0;i<=3;i++)
     bar(gun[next_type].b[i][0].x+yu_x,gun[next_type].b[i][0].y+yu_y,gun[next_type].b[i][0].x+yu_x+20,gun[next_type].b[i][0].y+yu_y+20);
    /*b_type=now_type;*/
   for(;;)
 {


if(kbhit()!=0)
         {key=bioskey(0);
        if(key==KEY_LEFT)
             if (can_do(KEY_LEFT,b_type,xing_type))
	  {  setfillstyle(SOLID_FILL,BLACK);
      for(i=0;i<=3;i++)
     bar(gun[b_type].b[i][xing_type].x+pos_x,gun[b_type].b[i][xing_type].y+pos_y,gun[b_type].b[i][xing_type].x+pos_x+20,gun[b_type].b[i][xing_type].y+pos_y+20);
              pos_x=pos_x-20;
           setfillstyle(SOLID_FILL,GREEN);
     for(i=0;i<=3;i++)
     bar(gun[b_type].b[i][xing_type].x+pos_x,gun[b_type].b[i][xing_type].y+pos_y,gun[b_type].b[i][xing_type].x+pos_x+20,gun[b_type].b[i][xing_type].y+pos_y+20);}
          else ;
          else

if(key==KEY_RIGHT)
             if (can_do(KEY_RIGHT,b_type,xing_type))
	  {  setfillstyle(SOLID_FILL,BLACK);
      for(i=0;i<=3;i++)
     bar(gun[b_type].b[i][xing_type].x+pos_x,gun[b_type].b[i][xing_type].y+pos_y,gun[b_type].b[i][xing_type].x+pos_x+20,gun[b_type].b[i][xing_type].y+pos_y+20);
              pos_x=pos_x+20;
           setfillstyle(SOLID_FILL,GREEN);
     for(i=0;i<=3;i++)
     bar(gun[b_type].b[i][xing_type].x+pos_x,gun[b_type].b[i][xing_type].y+pos_y,gun[b_type].b[i][xing_type].x+pos_x+20,gun[b_type].b[i][xing_type].y+pos_y+20);}
          else ;

else

if(key==KEY_DOWN)
             if (can_do(KEY_DOWN,b_type,xing_type))
	  {  setfillstyle(SOLID_FILL,BLACK);
      for(i=0;i<=3;i++)
     bar(gun[b_type].b[i][xing_type].x+pos_x,gun[b_type].b[i][xing_type].y+pos_y,gun[b_type].b[i][xing_type].x+pos_x+20,gun[b_type].b[i][xing_type].y+pos_y+20);
              pos_y=pos_y+20;
           setfillstyle(SOLID_FILL,GREEN);
     for(i=0;i<=3;i++)
     bar(gun[b_type].b[i][xing_type].x+pos_x,gun[b_type].b[i][xing_type].y+pos_y,gun[b_type].b[i][xing_type].x+pos_x+20,gun[b_type].b[i][xing_type].y+pos_y+20);}
          else ;

else

if(key==KEY_UP)
             if (can_do(KEY_UP,b_type,xing_type))
	  {  setfillstyle(SOLID_FILL,BLACK);
      for(i=0;i<=3;i++)
     bar(gun[b_type].b[i][xing_type].x+pos_x,gun[b_type].b[i][xing_type].y+pos_y,gun[b_type].b[i][xing_type].x+pos_x+20,gun[b_type].b[i][xing_type].y+pos_y+20);
                        xing_type++;
          if(xing_type==4)
                      xing_type=0;
                         else ;
                         setfillstyle(SOLID_FILL,GREEN);
     for(i=0;i<=3;i++)
     bar(gun[b_type].b[i][xing_type].x+pos_x,gun[b_type].b[i][xing_type].y+pos_y,gun[b_type].b[i][xing_type].x+pos_x+20,gun[b_type].b[i][xing_type].y+pos_y+20);}
          else ;

else

break;

                          }
     if(cou>=(18-le))
    if (can_do(KEY_DOWN,b_type,xing_type))
     {setfillstyle(SOLID_FILL,BLACK);
      for(i=0;i<=3;i++)
     bar(gun[b_type].b[i][xing_type].x+pos_x,gun[b_type].b[i][xing_type].y+pos_y,gun[b_type].b[i][xing_type].x+pos_x+20,gun[b_type].b[i][xing_type].y+pos_y+20);
     pos_y=pos_y+20;
setfillstyle(SOLID_FILL,GREEN);
     for(i=0;i<=3;i++)
     bar(gun[b_type].b[i][xing_type].x+pos_x,gun[b_type].b[i][xing_type].y+pos_y,gun[b_type].b[i][xing_type].x+pos_x+20,gun[b_type].b[i][xing_type].y+pos_y+20);
     cou=0;
       }
else
             {
      for(i=0;i<=3;i++)
           {zu_x=(pos_x+gun[b_type].b[i][xing_type].x-200)/20;
           zu_y=(pos_y+gun[b_type].b[i][xing_type].y-20)/20;
           scene[zu_x][zu_y]=1;    }
             for(jj=0;jj<=19;jj++){
                    zong=0;
                 for(ii=0;ii<=9;ii++)
                         if(scene[ii][jj]==0)
                                 break;
                           else
                           {zong=zong+scene[ii][jj];
                            if(zong==10){
                                score++;
				 le=score/10;
                                 gotoxy(16,10);
                                printf("%d",score);
                                  gotoxy(16,11);
                                 printf("%d",le);
                               setfillstyle(SOLID_FILL,BLACK);
                               for(jjj=jj;jjj>=1;jjj--)
                               for(iii=0;iii<=9;iii++){
                                   scene[iii][jjj]=scene[iii][jjj-1];
                                    bar(20*iii+200,20*jjj+20,20*iii+220,20*jjj+40);
                                                      }
                                         }
                             }
                                  }
                             setfillstyle(SOLID_FILL,GREEN);
                       for(ii=0;ii<=9;ii++)
                          for(jj=0;jj<=19;jj++)
                      if(scene[ii][jj]==1)
                         bar(20*ii+200,20*jj+20,20*ii+220,20*jj+40);

	pos_x=260;
        pos_y=20;

         /*b_type=jiading; */
           xing_type=0;
      b_type=next_type;

                setfillstyle(SOLID_FILL,BLACK);
                     for(i=0;i<=3;i++)
                  bar(gun[next_type].b[i][0].x+yu_x,gun[next_type].b[i][0].y+yu_y,gun[next_type].b[i][0].x+yu_x+20,gun[next_type].b[i][0].y+yu_y+20);
     next_type=random(7);
                  setfillstyle(SOLID_FILL,GREEN);
     for(i=0;i<=3;i++)
     bar(gun[next_type].b[i][0].x+yu_x,gun[next_type].b[i][0].y+yu_y,gun[next_type].b[i][0].x+yu_x+20,gun[next_type].b[i][0].y+yu_y+20);

   /* b_type=now_type;*/
          for(iii=0;iii<=9;iii++)
                 if(scene[iii][0]==1)
                        {       moveto(300,200);
                              outtext(go);
                                  while(getch()!=0)
                                       exit(0);   }


             }
  else
        ;

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -