📄 elsfk.c
字号:
i--;
}
else if((shape==11)&&(xorigin+60<460)&&((a[x+3][i]||a[x+3][i+1]\
)==0))
{
xorigin+=20;
i--;
}
else if((shape==12)&&(xorigin+40<460)&&((a[x+1][i]||a[x+1][i+1]\
||a[x+2][i+2])==0))
{
xorigin+=20;
i--;
}
else if((shape==13)&&(xorigin+60<460)&&((a[x+3][i]||a[x+1][i+1]\
)==0))
{
xorigin+=20;
i--;
}
break;
case 's': /*上*/
case 'S':
{
down=1;
}
break;
case 'w': /*change*/
case 'W':
{
if( (shape==1)&&((xorigin-40)>=160)&&((a[x-2][i]||a[x-1][i]\
||a[x][i]||a[x+1][i])==0))
{
shape=2;
xorigin-=40;
i--;
break;
}
else if((shape==2)&&((i*20+80)<=460)&&((a[x+2][i+1]||a[x+2][i+2]\
||a[x+2][i+3])==0))
{
shape=1;
xorigin+=40;
i--;
break;
}
else if((shape==3)&&((a[x+1][i+2]||a[x+2][i+2])==0)&&(\
xorigin+60<=460))
{
shape=4;
break;
}
else if((shape==4)&&((a[x][i+1]||a[x+1][i-1])==0))
{
shape=3;
i--;
break;
}
else if((shape==5)&&(20*i+60<=460)&&(a[x+1][i+2]==0))
{
shape=6;
xorigin+=20;
i--;
break;
}
else if((shape==6)&&(xorigin-20>=160)&&(a[x-1][i+1]==0))
{
shape=7;
xorigin-=20;
i--;
break;
}
else if(shape==7)
{
shape=8;
i--;
}
else if((shape==8)&&(xorigin+60<=460)&&(a[x+2][i+1]==0))
{
shape=5;
i--;
break;
}
else if(shape==9)
{
break;
}
else if((shape==10)&&(xorigin>160)&&((a[x][i+1]||a[x-1][i+1]\
)==0))
{
shape=11;
i--;
xorigin-=20;
break;
}
else if((shape==11)&&(20*(i+2)<480)&&((a[x+1][i]||\
a[x+1][i+2]||a[x+2][i+2])==0))
{
shape=12;
i--;
xorigin-=20;
break;
}
else if((shape==12)&&(xorigin+40<460)&&((a[x+1][i+1]||\
a[x+2][i+1])==0))
{
shape=13;
break;
}
else if((shape==13)&&((a[x][i-1]||a[x+1][i-1]||a[x+1][i+1])\
==0))
{
shape=10;
i--;
break;
}
}
}
}
}
down=0;
i--;
switch(shape)
{
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);
a[x][i]=a[x][i+1]=a[x][i+2]=a[x][i+3]=1;
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);
a[x][i]=a[x+1][i]=a[x+2][i]=a[x+3][i]=1;
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);
a[x+1][i]=a[x][i+1]=a[x+1][i+1]=a[x][i+2]=1;
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);
a[x][i]=a[x+1][i]=a[x+1][i+1]=a[x+2][i+1]=1;
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);
a[x+1][i]=a[x][i+1]=a[x+1][i+1]=a[x+2][i+1]=1;
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);
a[x][i]=a[x][i+1]=a[x+1][i+1]=a[x][i+2]=1;
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);
a[x][i]=a[x+1][i]=a[x+2][i]=a[x+1][i+1]=1;
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);
a[x][i+1]=a[x+1][i]=a[x+1][i+1]=a[x+1][i+2]=1;
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);
a[x][i]=a[x+1][i]=a[x][i+1]=a[x+1][i+1]=1;
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);
a[x][i]=a[x+1][i]=a[x+1][i+1]=a[x+1][i+2]=1;
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);
a[x][i+1]=a[x+1][i+1]=a[x+2][i+1]=a[x+2][i]=1;
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);
a[x][i]=a[x][i+1]=a[x][i+2]=a[x+1][i+2]=1;
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);
a[x][i]=a[x+1][i]=a[x+2][i]=a[x][i+1]=1;
break;
}
/*check the line is full?*/
{
int i;
for(i=23;i>=0;i--)
if((a[0][i]&&a[1][i]&&a[2][i]&&a[3][i]&&a[4][i]&&a[5][i]&&a[6][i]&& \
a[7][i]&a[8][i]&&a[9][i]&&a[10][i]&&a[11][i]&&a[12][i]&&a[13][i]&& \
a[14][i])==1)
{
process(i,a,buffer3);
i++;
score+=100;
sprintf(scorestr,"%-ld",score);
bar(20,220,50,240);
setcolor(RED);
outtextxy(20,220,scorestr);
}
}
{
int i;
for(i=0;i<15;i++)
{
if(a[i][0]==1)
goto K;
}
}
}/*for while*/
K:
bar(198,200,400,250);
outtextxy(250,210,"GAME OVER!");
outtextxy(200,230,"Press any key to exit");
getch();
free(buffer1);
free(buffer2);
free(buffer3);
closegraph();
}
void process(int i,int a[15][24],char *buffer1)
{
int j,k;
long size;
char *buffer2;
size=imagesize(160,i*20,460,(i+1)*20);
buffer2=(char *)malloc(size);
/*getimage(160,i*20,460,(i+1)*20,buffer2) */
for(j=0;j<3;j++)
{
putimage(160,i*20,buffer1,XOR_PUT);
delay(65535);
}
putimage(160,i*20,buffer1,COPY_PUT);
delay(65535);
for(j=i-1;j>=0;j--)
{
getimage(160,j*20,460,j*20+20,buffer2);
/*putimage(160,j*20,buffer1,COPY_PUT); */
putimage(160,j*20+20,buffer2,COPY_PUT);
a[0][j+1]=a[0][j];
a[1][j+1]=a[1][j];
a[2][j+1]=a[2][j];
a[3][j+1]=a[3][j];
a[4][j+1]=a[4][j];
a[5][j+1]=a[5][j];
a[6][j+1]=a[6][j];
a[7][j+1]=a[7][j];
a[8][j+1]=a[8][j];
a[9][j+1]=a[9][j];
a[10][j+1]=a[10][j];
a[11][j+1]=a[11][j];
a[12][j+1]=a[12][j];
a[13][j+1]=a[13][j];
a[14][j+1]=a[14][j];
}
a[0][0]=a[1][0]=a[2][0]=a[3][0]=a[4][0]=a[5][0]=a[6][0]=a[7][0]=a[8][0]=\
a[9][0]=a[10][0]=a[11][0]=a[12][0]=a[13][0]=a[14][0]=0;
putimage(160,0,buffer1,COPY_PUT);
free(buffer2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -