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

📄 tbox.cpp

📁 我写的一个俄罗斯方块
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include<stdio.h>
#include<dos.h>
#include<graphics.h>
#include<time.h>
#include<stdlib.h>
struct TBOX
 {int a,b,x,y,c;};
typedef struct TBOX T;
void trote(T*X)
{switch(X->a)
 {case 1:break;
  case 2:
  case 3:
  case 4:if(X->b==4) X->b=1;
	 else X->b+=1;
	 break;
  case 5:
  case 6:
  case 7:if(X->b==1) X->b=2;
	 else X->b=1;
	 break;
 }
}
void tinit(T*X)
{X->a=rand()%7+1;
 X->b=1;
 X->x=20;
 X->y=3;
 X->c=rand()%6+1;
}
void tdisplay(T*X,int i)
{if(i==1)setfillstyle(9,X->c);
 else    setfillstyle(0,0);
 switch(X->a)
  {case 1:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
	  bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
	  bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
	  bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
	  break;
   case 2:switch(X->b)
	    {case 1:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    bar(100+20*X->x+40,20*X->y+20,117+20*X->x+40,17+20*X->y+20);
		    break;
	     case 2:bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+40,117+20*X->x+20,17+20*X->y+40);
		    bar(100+20*X->x,20*X->y+40,117+20*X->x,17+20*X->y+40);
		    break;
	     case 3:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x+40,20*X->y,117+20*X->x+40,17+20*X->y);
		    bar(100+20*X->x+40,20*X->y+20,117+20*X->x+40,17+20*X->y+20);
		    break;
	     case 4:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    bar(100+20*X->x,20*X->y+40,117+20*X->x,17+20*X->y+40);
		    break;
	    }
	  break;
   case 3:switch(X->b)
	    {case 1:bar(100+20*X->x+40,20*X->y,117+20*X->x+40,17+20*X->y);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    bar(100+20*X->x+40,20*X->y+20,117+20*X->x+40,17+20*X->y+20);
		    break;
	     case 2:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+40,117+20*X->x+20,17+20*X->y+40);
		    bar(100+20*X->x,20*X->y+40,117+20*X->x,17+20*X->y+40);
		    break;
	     case 3:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x+40,20*X->y,117+20*X->x+40,17+20*X->y);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    break;
	     case 4:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+40,117+20*X->x+20,17+20*X->y+40);
		    break;
	    }
	  break;
   case 4:switch(X->b)
	    {case 1:bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    bar(100+20*X->x+40,20*X->y+20,117+20*X->x+40,17+20*X->y+20);
		    break;
	     case 2:bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+40,117+20*X->x+20,17+20*X->y+40);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    break;
	     case 3:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x+40,20*X->y,117+20*X->x+40,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    break;
	     case 4:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    bar(100+20*X->x,20*X->y+40,117+20*X->x,17+20*X->y+40);
		    break;
	    }
	  break;
   case 5:switch(X->b)
	    {case 1:bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x+40,20*X->y,117+20*X->x+40,17+20*X->y);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    break;
	     case 2:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+40,117+20*X->x+20,17+20*X->y+40);
		    break;
	    }
	  break;
   case 6:switch(X->b)
	    {case 1:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    bar(100+20*X->x+40,20*X->y+20,117+20*X->x+40,17+20*X->y+20);
		    break;
	     case 2:bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    bar(100+20*X->x+20,20*X->y+20,117+20*X->x+20,17+20*X->y+20);
		    bar(100+20*X->x,20*X->y+40,117+20*X->x,17+20*X->y+40);
		    break;
	    }
	  break;
   case 7:switch(X->b)
	    {case 1:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x+20,20*X->y,117+20*X->x+20,17+20*X->y);
		    bar(100+20*X->x+40,20*X->y,117+20*X->x+40,17+20*X->y);
		    bar(100+20*X->x+60,20*X->y,117+20*X->x+60,17+20*X->y);
		    break;
	     case 2:bar(100+20*X->x,20*X->y,117+20*X->x,17+20*X->y);
		    bar(100+20*X->x,20*X->y+20,117+20*X->x,17+20*X->y+20);
		    bar(100+20*X->x,20*X->y+40,117+20*X->x,17+20*X->y+40);
		    bar(100+20*X->x,20*X->y+60,117+20*X->x,17+20*X->y+60);
		    break;
	    }
	  break;
  }
}
void tpouse()
{union REGS regs;
 for(;;)
  {regs.h.ah=1;
   int86(0x16,&regs,&regs);
   if((regs.x.flags&0x40)==0) break;
  }
 return;
}
void tsetbk(T*X,int bk[16][25])
{switch(X->a)
    {case 1:bk[X->x][X->y]=X->c;
            bk[X->x+1][X->y]=X->c;
            bk[X->x+1][X->y+1]=X->c;
            bk[X->x][X->y+1]=X->c;
            break;
     case 2:switch(X->b)
               {case 1:bk[X->x][X->y]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       bk[X->x+2][X->y+1]=X->c;
                       break;
                case 2:bk[X->x+1][X->y]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       bk[X->x+1][X->y+2]=X->c;
                       bk[X->x][X->y+2]=X->c;
                       break;
                case 3:bk[X->x][X->y]=X->c;
                       bk[X->x+1][X->y]=X->c;
                       bk[X->x+2][X->y]=X->c;
                       bk[X->x+2][X->y+1]=X->c;
                       break;
                case 4:bk[X->x][X->y]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       bk[X->x][X->y+2]=X->c;
                       bk[X->x+1][X->y]=X->c;
                       break;
               }
            break;
     case 3:switch(X->b)
               {case 1:bk[X->x+2][X->y]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       bk[X->x+2][X->y+1]=X->c;
                       break;
                case 2:bk[X->x][X->y]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       bk[X->x][X->y+2]=X->c;
                       bk[X->x+1][X->y+2]=X->c;
                       break;
                case 3:bk[X->x][X->y]=X->c;
                       bk[X->x+1][X->y]=X->c;
                       bk[X->x+2][X->y]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       break;
                case 4:bk[X->x][X->y]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       bk[X->x+1][X->y+2]=X->c;
                       bk[X->x+1][X->y+2]=X->c;
                       break;
               }
            break;
     case 4:switch(X->b)
               {case 1:bk[X->x+1][X->y]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       bk[X->x+2][X->y+1]=X->c;
                       break;
                case 2:bk[X->x+1][X->y]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       bk[X->x+1][X->y+2]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       break;
                case 3:bk[X->x][X->y]=X->c;
                       bk[X->x+1][X->y]=X->c;
                       bk[X->x+2][X->y]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       break;
                case 4:bk[X->x][X->y]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       bk[X->x][X->y+2]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       break;
               }
            break;
     case 5:switch(X->b)
               {case 1:bk[X->x+1][X->y]=X->c;
                       bk[X->x+2][X->y]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       break;
                case 2:bk[X->x][X->y]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       bk[X->x+1][X->y+2]=X->c;
                       break;
               }
            break;
     case 6:switch(X->b)
               {case 1:bk[X->x][X->y]=X->c;
                       bk[X->x+1][X->y]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       bk[X->x+2][X->y+1]=X->c;
                       break;
                case 2:bk[X->x+1][X->y]=X->c;
                       bk[X->x+1][X->y+1]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       bk[X->x][X->y+2]=X->c;
                       break;
               }
            break;
     case 7:switch(X->b)
               {
                case 1:bk[X->x][X->y]=X->c;
                       bk[X->x+1][X->y]=X->c;
                       bk[X->x+2][X->y]=X->c;
                       bk[X->x+3][X->y]=X->c;
                       break;
                case 2:bk[X->x][X->y]=X->c;
                       bk[X->x][X->y+1]=X->c;
                       bk[X->x][X->y+2]=X->c;
                       bk[X->x][X->y+3]=X->c;
                       break;

               }
            break;
    }
}
int tland(T*X,int bk[16][25])
{if(X->x<0)
   return 2;
 switch(X->a)
   {case 1:if(bk[X->x][X->y]||bk[X->x][X->y+1]||bk[X->x+1][X->y]||bk[X->x+1][X->y+1])return 1;
	  

	   break;
    case 2:switch(X->b)
              {case 1:if(bk[X->x][X->y]||
                       bk[X->x][X->y+1]||
                       bk[X->x+1][X->y+1]||
                       bk[X->x+2][X->y+1])
                        return 1;
                 
                      break;
               case 2:if(bk[X->x+1][X->y]||
                       bk[X->x+1][X->y+1]||
                       bk[X->x+1][X->y+2]||
                       bk[X->x][X->y+2])
                        return 1;
             
                      break;
               case 3:if(bk[X->x][X->y]||
                       bk[X->x+1][X->y]||
                       bk[X->x+2][X->y]||
                       bk[X->x+2][X->y+1])
                        return 1;
           
                      break;
	       case 4:if(bk[X->x][X->y]||
		       bk[X->x][X->y+1]||
		       bk[X->x][X->y+2]||
		       bk[X->x+1][X->y])
                        return 1;
          
                      break;
              }
           break;
    case 3:switch(X->b)
              {case 1:if(bk[X->x+2][X->y]||
                       bk[X->x][X->y+1]||
                       bk[X->x+1][X->y+1]||
                       bk[X->x+2][X->y+1])
                        return 1;
                
                      break;
               case 2:if(bk[X->x][X->y]||
                       bk[X->x][X->y+1]||
                       bk[X->x][X->y+2]||
                       bk[X->x+1][X->y+2])
                        return 1;
                
                      break;
               case 3:if(bk[X->x][X->y]||

⌨️ 快捷键说明

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