📄 elsfk.c
字号:
0x00,0x03,0x80,0x01,0x90,0x00,0x00,0x00,
0x00,0x0F,0x00,0x03,0x88,0x00,0x00,0x00,
0x00,0x3E,0x00,0x03,0x04,0x00,0x00,0x00,
0x00,0x78,0x00,0x07,0x02,0x00,0x00,0x00,
0x01,0xF0,0x00,0x06,0x03,0x00,0x00,0x00,
0x0F,0xE0,0x00,0x0E,0x01,0x80,0x00,0x00,
0x07,0xC0,0x00,0x0C,0x00,0xC0,0x00,0x00,
0x03,0x80,0x00,0x18,0x00,0x70,0x00,0x00,
0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,
0x00,0x00,0x00,0x70,0x00,0x3E,0x00,0x00,
0x00,0x00,0x00,0xE0,0x00,0x1F,0x00,0x00,
0x00,0x00,0x01,0x80,0x00,0x0F,0xC0,0x00,
0x00,0x00,0x03,0x00,0x00,0x07,0xF8,0x00,
0x00,0x00,0x06,0x00,0x00,0x07,0xFE,0x00,
0x00,0x00,0x18,0x00,0x00,0x03,0xFF,0x80,
0x00,0x00,0x20,0x00,0x00,0x01,0xFF,0xF0,
0x00,0x00,0x80,0x00,0x00,0x00,0x7F,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{int i,j,k,n;
n=(matsize-1)/8+1;
for(j=0;j<matsize;j++)
for(i=0;i<n;i++)
for(k=0;k<8;k++)
if(mat[j*n+i]&(0x80>>k)) /*测试为1的位则显示*/
putpixel(x+i*8+k,y+j,color);
}
main()
{
int time;
int graphdriver=DETECT,graphmode,i,j,button,x;
int xorigin=300;
int down=0,shape,next;
int a[15][24]={0};
char scorestr[10];
long score=0;
struct fillsettingstype save;
long size;
char key;
char *buffer1,*buffer2,*buffer3;
char savepattern[8];
char gray50[]={0xaa,0x44,0xaa,0x11,0xaa,0x44,0xaa,0x11};
void process(int i, int a[15][],char *buffer);
void drawmat(char *mat,int matsize,int x,int y,int color);
/*registerbgidriver(EGAVGA_driver); */
initgraph(&graphdriver,&graphmode,"c:\\tc200");
setfillstyle(SOLID_FILL,LIGHTGREEN);
bar(495,60,565,450);
for(i=0;i<5;i++)
{
drawmat(name[i],64,500,70+i*70,BLUE);
}
setfillpattern(gray50,9); /*设定用户自定义图形填充模板*/
bar(160,0,460,479);
setfillstyle(SOLID_FILL,RED);
bar(0,0,20,20);
setlinestyle(SOLID_LINE,0,1);
/*rectangle(0,0,20,20); */
setcolor(8);
line(0,0,0,20);
line(1,1,1,19);
line(0,0,20,0);
line(1,1,19,1);
setcolor(15);
line(20,0,20,20);
line(19,1,19,19);
line(0,20,20,20);
line(1,19,19,19);
size=(long)imagesize(0,0,20,20);
buffer1=(char*)malloc(size);
buffer2=(char*)malloc(size);
getimage(0,0,20,20,buffer1);
getimage(xorigin,0,320,20,buffer2);
size=imagesize(160,0,460,20);
buffer3=(char*)malloc(size);
getimage(160,0,460,20,buffer3);
next=rand()%13+1;
setfillstyle(SOLID_FILL,BLACK);
bar(0,0,22,22);
setcolor(GREEN);
settextstyle(2,0,6);
sprintf(scorestr,"%-ld",score);
outtextxy(20,200,"SCORE:");
setcolor(RED);
outtextxy(20,220,scorestr);
setcolor(GREEN);
while(1)
{
shape=next;
next=rand()%13+1;
/*显示next*/
bar(30,30,130,130);
setcolor(GREEN);
rectangle(30,30,130,130);
i=2;
xorigin=40;
switch(next) /*显示下一个图形*/
{
case 1:
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin,20*(i+2),buffer1,COPY_PUT);
putimage(xorigin,20*(i+3),buffer1,COPY_PUT);
break;
case 2:
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin+40,20*i,buffer1,COPY_PUT);
putimage(xorigin+60,20*i,buffer1,COPY_PUT);
break;
case 3:
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin,20*(i+2),buffer1,COPY_PUT);
break;
case 4:
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+40,20*(i+1),buffer1,COPY_PUT);
break;
case 5:
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+40,20*(i+1),buffer1,COPY_PUT);
break;
case 6:
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin,20*(i+2),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
break;
case 7:
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin+40,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
break;
case 8:
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+2),buffer1,COPY_PUT);
break;
case 9:
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
break;
case 10:
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+2),buffer1,COPY_PUT);
break;
case 11:
putimage(xorigin+40,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+40,20*(i+1),buffer1,COPY_PUT);
break;
case 12:
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin,20*(i+2),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+2),buffer1,COPY_PUT);
break;
case 13:
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin+40,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
break;
}
xorigin=300;
for(i=0;i<24;i++) /*下落*/
{ x=(xorigin-160)/20;
switch(shape)
{
case 1:
{
if((a[x][i+3]==0)&&((i+3)<24))
{
putimage(xorigin,20*i,buffer1,COPY_PUT); /*显示图形*/
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin,20*(i+2),buffer1,COPY_PUT);
putimage(xorigin,20*(i+3),buffer1,COPY_PUT);
}
break;
}
case 2:
{
if(((a[x][i]||a[x+1][i]||a[x+2][i]||a[x+3][i])==0))
{
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin+40,20*i,buffer1,COPY_PUT);
putimage(xorigin+60,20*i,buffer1,COPY_PUT);
}
break;
}
case 3:
{
if( ((a[x][i+2]||a[x+1][i+1])==0)&&((i+2)<24) )
{
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin,20*(i+2),buffer1,COPY_PUT);
}
break;
}
case 4:
{
if(((a[x][i]||a[x+1][i+1]||a[x+2][i+1])==0)&&((i+1)<24))
{
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+40,20*(i+1),buffer1,COPY_PUT);
}
break;
}
case 5:
{
if(((a[x][i+1]||a[x+1][i+1]||a[x+2][i+1])==0)&&((i+1)<24))
{
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+40,20*(i+1),buffer1,COPY_PUT);
}
break;
}
case 6:
{
if(((a[x][i+2]||a[x+1][i+1])==0)&&((i+2)<24))
{
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin,20*(i+2),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
}
break;
}
case 7:
{
if(((a[x][i]||a[x+1][i+1]||a[x+2][i])==0)&&((i+1)<24))
{
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin+40,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
}
break;
}
case 8:
{
if(((a[x][i+1]||a[x+1][i+2])==0)&&((i+2)<24))
{
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+2),buffer1,COPY_PUT);
}
break;
}
case 9:
{
if(((a[x][i+1]||a[x+1][i+1])==0)&&((i+1)<24))
{
putimage(xorigin,20*i,buffer1,COPY_PUT);
putimage(xorigin+20,20*i,buffer1,COPY_PUT);
putimage(xorigin,20*(i+1),buffer1,COPY_PUT);
putimage(xorigin+20,20*(i+1),buffer1,COPY_PUT);
}
break;
}
case 10:
{
if(((a[x][i]||a[x+1][i+2])==0)&&((i+2)<24))
{
putimage(xorigin,20*i,buffer1,COPY_PUT);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -