📄 tbox.cpp
字号:
#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,®s,®s);
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 + -