void twobattle()/*两人战控制函数*/
{
int i,j,k,tag=1,key=1,success1=1,success2=1;
unsigned size;
void *buf[3];
size=imagesize(20,20,40,40);
for(i=0;i<3;i++)
buf[i]=malloc(size);
setcolor(1);
for(i=0;i<45;i++)
{
if(i>=0&&i<=5)
{
setfillstyle(1,3);
maze[(sate[i].y-30)/35][(sate[i].x-30)/35]=1;
}
else if(i>=12&&i<=17)
{
setfillstyle(1,5);
maze[(sate[i].y-30)/35][(sate[i].x-30)/35]=2;
}
else
{
setfillstyle(1,7);
maze[(sate[i].y-30)/35][(sate[i].x-30)/35]=0;
}
circle(sate[i].x,sate[i].y,M);
floodfill(sate[i].x,sate[i].y,1);
}
setcolor(14);
for(i=0,k=1;i<=12;i+=12,k++)
{
abcd[k-1].x=sate[i].x;abcd[k-1].y=sate[i].y;
getimage(sate[i].x-10,sate[i].y-10,sate[i].x+10,sate[i].y+10,buf[k]);
circle(sate[i].x,sate[i].y,M);
}
setcolor(1);
for(i=0,k=1;i<=12;i+=12,k++)
{circle(sate[i].x,sate[i].y,M);}
while(1)
{
int r1=0,r2=0;
if(back) break;
for(i=12;i<18;i++)
if(maze[(sate[i].y-30)/35][(sate[i].x-30)/35]==1)
r1++;
if(r1==6) key++;
if(key==1)
{
setcolor(15);
circle(tags[0].x,tags[0].y,3*M+5);
setfillstyle(1,3);
floodfill(tags[0].x,tags[0].y,15);
if(success2)
{
setcolor(15);
circle(tags[2].x,tags[2].y,3*M+5);
setfillstyle(1,14);
floodfill(tags[2].x,tags[2].y,15);
setcolor(5);
circle(tags[2].x,tags[2].y,3*M+5);
}
key=move(abcd[0].x,abcd[0].y,1,buf);
if(success1)
{
for(r1=0,i=12;i<18;i++)
if(maze[(sate[i].y-30)/35][(sate[i].x-30)/35]==1)
r1++;
if(r1==6)
{
for(k=0;k<25;k++)
explode(k);
initsate();law();glorify2();
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(maze[j][i]==1)
{
setcolor(1);
circle(i*35+30,j*35+30,M);
setfillstyle(1,3);
floodfill(i*35+30,j*35+30,1);
}
if(maze[j][i]==2)
{
setcolor(1);
circle(i*35+30,j*35+30,M);
{
int i,j,k,tag=1,key=1,success1=1,success2=1;
unsigned size;
void *buf[3];
size=imagesize(20,20,40,40);
for(i=0;i<3;i++)
buf[i]=malloc(size);
setcolor(1);
for(i=0;i<45;i++)
{
if(i>=0&&i<=5)
{
setfillstyle(1,3);
maze[(sate[i].y-30)/35][(sate[i].x-30)/35]=1;
}
else if(i>=12&&i<=17)
{
setfillstyle(1,5);
maze[(sate[i].y-30)/35][(sate[i].x-30)/35]=2;
}
else
{
setfillstyle(1,7);
maze[(sate[i].y-30)/35][(sate[i].x-30)/35]=0;
}
circle(sate[i].x,sate[i].y,M);
floodfill(sate[i].x,sate[i].y,1);
}
setcolor(14);
for(i=0,k=1;i<=12;i+=12,k++)
{
abcd[k-1].x=sate[i].x;abcd[k-1].y=sate[i].y;
getimage(sate[i].x-10,sate[i].y-10,sate[i].x+10,sate[i].y+10,buf[k]);
circle(sate[i].x,sate[i].y,M);
}
setcolor(1);
for(i=0,k=1;i<=12;i+=12,k++)
{circle(sate[i].x,sate[i].y,M);}
while(1)
{
int r1=0,r2=0;
if(back) break;
for(i=12;i<18;i++)
if(maze[(sate[i].y-30)/35][(sate[i].x-30)/35]==1)
r1++;
if(r1==6) key++;
if(key==1)
{
setcolor(15);
circle(tags[0].x,tags[0].y,3*M+5);
setfillstyle(1,3);
floodfill(tags[0].x,tags[0].y,15);
if(success2)
{
setcolor(15);
circle(tags[2].x,tags[2].y,3*M+5);
setfillstyle(1,14);
floodfill(tags[2].x,tags[2].y,15);
setcolor(5);
circle(tags[2].x,tags[2].y,3*M+5);
}
key=move(abcd[0].x,abcd[0].y,1,buf);
if(success1)
{
for(r1=0,i=12;i<18;i++)
if(maze[(sate[i].y-30)/35][(sate[i].x-30)/35]==1)
r1++;
if(r1==6)
{
for(k=0;k<25;k++)
explode(k);
initsate();law();glorify2();
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(maze[j][i]==1)
{
setcolor(1);
circle(i*35+30,j*35+30,M);
setfillstyle(1,3);
floodfill(i*35+30,j*35+30,1);
}
if(maze[j][i]==2)
{
setcolor(1);
circle(i*35+30,j*35+30,M);