该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
else if(k==75&&x>100) {CoverBlock(x,y);x-=10;PicBlock(x,y);}
else if(k==72&&y>100) {CoverBlock(x,y);y-=10;PicBlock(x,y);}
else if(k==80&&y<290) {CoverBlock(x,y);y+=10;PicBlock(x,y);}
else if(k==13&&Mark[H][L]==0)
{Counter=PreControl(x,y);
if(Change==1&&Counter)
{DrawBlack(x,y);
Mark[H][L]=1;
AftControl(Counter,x,y);
Change++;Counter=0;
Score();
}
else if(Change==2&&Counter)
{DrawWhite(x,y);
Mark[H][L]=2;
AftControl(Counter,x,y);
Change--;Counter=0;
Score();
}
}
else if(k==27) break;
delay(1000);
}
}
int PreControl(int x,int y)
{int TT,X,Y;
int T;
T=0;TT=1;X=x;Y=y;
while(x<290)/*right*/
{x+=10;
if(Mark[H][L]==0||(Mark[H][L]==Change&&TT==1)) break;
if(Mark[H][L]==Change&&TT!=1) {T+=1;break;}
TT++;
}
TT=1;x=X;y=Y;
while(x<290&&y>100)/*right and up*/
{x+=10;y-=10;
if(Mark[H][L]==0||(Mark[H][L]==Change&&TT==1)) break;
if(Mark[H][L]==Change&&TT!=1) {T+=2;break;}
TT++;
}
TT=1;x=X;y=Y;
while(y>100) /*up*/
{y-=10;
if(Mark[H][L]==0||(Mark[H][L]==Change&&TT==1)) break;
if(Mark[H][L]==Change&&TT!=1){T+=4;break;}
TT++;
}
TT=1;x=X;y=Y;
while(x>100&&y>100) /*up and left*/
{x-=10;y-=10;
if(Mark[H][L]==0||(Mark[H][L]==Change&&TT==1)) break;
if(Mark[H][L]==Change&&TT!=1){T+=8;break;}
TT++;
}
TT=1;x=X;y=Y;
while(x>100)/*left*/
{x-=10;
if(Mark[H][L]==0||(Mark[H][L]==Change&&TT==1)) break;
if(Mark[H][L]==Change&&TT!=1){T+=16;break;}
TT++;
}
TT=1;x=X;y=Y;
while(x>100&&y<290)/*left and down*/
{x-=10;y+=10;
if(Mark[H][L]==0||(Mark[H][L]==Change&&TT==1)) break;
if(Mark[H][L]==Change&&TT!=1){T+=32;break;}
TT++;
}
TT=1;x=X;y=Y;
while(y<290)/*down*/
{y+=10;
if(Mark[H][L]==0||(Mark[H][L]==Change&&TT==1)) break;
if(Mark[H][L]==Change&&TT!=1){T+=64;break;}
TT++;
}
TT=1;x=X;y=Y;
while(x<290&&y<290)/*down and right*/
{x+=10;y+=10;
if(Mark[H][L]==0||(Mark[H][L]==Change&&TT==1)) break;
if(Mark[H][L]==Change&&TT!=1) {T+=128;break;}
TT++;
}
return T;
}
int AftControl(int Counter,int x,int y)
{int X,Y;
X=x;Y=y;
if(Counter-128>=0)
{Counter-=128;
x+=10;y+=10;
while(Mark[H][L]!=Change)
{CoverPic(x,y);
if(Change==1) DrawBlack(x,y);
else DrawWhite(x,y);
Mark[H][L]=Change;
x+=10;y+=10;
}
}
x=X;y=Y;
if(Counter-64>=0)
{Counter-=64;
y+=10;
while(Mark[H][L]!=Change)
{CoverPic(x,y);
if(Change==1) DrawBlack(x,y);
else DrawWhite(x,y);
Mark[H][L]=Change;
y+=10;
}
}
x=X;y=Y;
if(Counter-32>=0)
{Counter-=32;
x-=10;y+=10;
while(Mark[H][L]!=Change)
{CoverPic(x,y);
if(Change==1) DrawBlack(x,y);
else DrawWhite(x,y);
Mark[H][L]=Change;
x-=10;y+=10;
}
}
x=X;y=Y;
if(Counter-16>=0)
{Counter-=16;
x-=10;
while(Mark[H][L]!=Change)
{CoverPic(x,y);
if(Change==1) DrawBlack(x,y);
else DrawWhite(x,y);
Mark[H][L]=Change;
x-=10;
}
}
x=X;y=Y;
if(Counter-8>=0)
{Counter-=8;
x-=10;y-=10;
while(Mark[H][L]!=Change)
{CoverPic(x,y);
if(Change==1) DrawBlack(x,y);
else DrawWhite(x,y);
Mark[H][L]=Change;
x-=10;y-=10;
}
}
x=X;y=Y;
if(Counter-4>=0)
{Counter-=4;
y-=10;
while(Mark[H][L]!=Change)
{CoverPic(x,y);
if(Change==1) DrawBlack(x,y);
else DrawWhite(x,y);
Mark[H][L]=Change;
y-=10;
}
}
x=X;y=Y;
if(Counter-2>=0)
{Counter-=2;
x+=10;y-=10;
while(Mark[H][L]!=Change)
{CoverPic(x,y);
if(Change==1) DrawBlack(x,y);
else DrawWhite(x,y);
Mark[H][L]=Change;
x+=10;y-=10;
}
}
x=X;y=Y;
if(Counter-1>=0)
{Counter-=1;
x+=10;
while(Mark[H][L]!=Change)
{CoverPic(x,y);
if(Change==1) DrawBlack(x,y);
else DrawWhite(x,y);
Mark[H][L]=Change;
x+=10;
}
}
if(Counter==0) outtextxy(100,320,"ok!");
else outtextxy(350,100,"wrong!");
}
void main()
{int gd,gm;
gd=DETECT;
initgraph(&gd,&gm,"");
Screen();
DrawBlack(190,200);Mark[10][9]=1;
DrawWhite(200,200);Mark[10][10]=2;
DrawBlack(200,210);Mark[11][10]=1;
Score();
PicBlock(200,200);
MoveBlock(200,200);
InitMark();
closegraph();
}
用torboc 2.0进行编译
将graphics.h库调用进去就可以了
有许多地方还需改进。
只是将它实现了一下,很容易理�