📄 pushbox.c
字号:
steps++;
break;
case 1:
break;
case 2:
if(head->left->left==NULL||head->left->left->flag==1||
head->left->left->flag==2||head->left->left->flag==4)
break;
else if(head->left->left->flag==0)
{
if(head->flag==6)
head->flag=3;
else head->flag=0;
head->left->left->flag=2;
head=head->left;
head->flag=5;
steps++;
}
else if(head->left->left->flag==3)
{
if(head->flag==6)
head->flag=3;
else head->flag=0;
head->left->left->flag=4;
head=head->left;
head->flag=5;
steps++;
}
break;
case 3:
if(head->flag==6)
head->flag=3;
else head->flag=0;
head=head->left;
head->flag=6;
steps++;
break;
case 4:
if(head->left->left==NULL||head->left->left->flag==1||
head->left->left->flag==2||head->left->left->flag==4)
break;
else if(head->left->left->flag==0)
{
if(head->flag==6)
head->flag=3;
else head->flag=0;
head->left->left->flag=2;
head=head->left;
head->flag=6;
steps++;
}
else if(head->left->left->flag==3)
{
if(head->flag==6)
head->flag=3;
else head->flag=0;
head->left->left->flag=4;
head=head->left;
head->flag=6;
steps++;
}
break;
default:
break;
}
for(i=0;i<12;i++)
for(j=0;j<15;j++)
c[i][j]=b[i][j];
for(i=0;i<12;i++)
for(j=0;j<15;j++)
b[i][j]=a[i][j].flag;
printall();
}
void right()
{ int i,j;
switch(head->right->flag)
{
case 0:
if(head->flag==6)
head->flag=3;
else head->flag=0;
head=head->right;
head->flag=5;
steps++;
break;
case 1:
break;
case 2:
if(head->right->right==NULL||head->right->right->flag==1||
head->right->right->flag==2||head->right->right->flag==4)
break;
else if(head->right->right->flag==0)
{
if(head->flag==6)
head->flag=3;
else head->flag=0;
head->right->right->flag=2;
head=head->right;
head->flag=5;
steps++;
}
else if(head->right->right->flag==3)
{
if(head->flag==6)
head->flag=3;
else head->flag=0;
head->right->right->flag=4;
head=head->right;
head->flag=5;
steps++;
}
break;
case 3:
if(head->flag==6)
head->flag=3;
else head->flag=0;
head=head->right;
head->flag=6;
steps++;
break;
case 4:
if(head->right->right==NULL||head->right->right->flag==1||
head->right->right->flag==2||head->right->right->flag==4)
break;
else if(head->right->right->flag==0)
{
if(head->flag==6)
head->flag=3;
else head->flag=0;
head->right->right->flag=2;
head=head->right;
head->flag=6;
steps++;
}
else if(head->right->right->flag==3)
{
if(head->flag==6)
head->flag=3;
else head->flag=0;
head->right->right->flag=4;
head=head->right;
head->flag=6;
steps++;
}
break;
default:
break;
}
for(i=0;i<12;i++)
for(j=0;j<15;j++)
c[i][j]=b[i][j];
for(i=0;i<12;i++)
for(j=0;j<15;j++)
b[i][j]=a[i][j].flag;
printall();
}
void recover()
{
int i,j;
for(i=0;i<12;i++)
for(j=0;j<15;j++)
a[i][j].flag=c[i][j];
for(i=0;i<12;i++)
for(j=0;j<15;j++)
if(a[i][j].flag==5||a[i][j].flag==6) head=&a[i][j];
steps--;
printall();
}
void restart()
{
int i,j;
for(i=0;i<12;i++)
for(j=0;j<15;j++)
a[i][j].flag=d[i][j];
for(i=0;i<12;i++)
for(j=0;j<15;j++)
if(a[i][j].flag==5)
head=&a[i][j];
steps=0;
printall();
}
/* ****** * * ****** ****** * **
* * * * * * *
* ****** ****** * **
* * * * * * *
****** * * ****** ****** * ** */
void check()
{
if(stage==57)
{
if(a[3][3].flag==4&&a[3][7].flag==4&&a[5][3].flag==4&&a[5][7].flag==4&&
a[7][3].flag==4&&a[7][7].flag==4&&a[2][5].flag==4&&a[5][2].flag==4&&
a[5][4].flag==4&&a[5][5].flag==4&&a[5][6].flag==4&&a[5][8].flag==4&& a[8][5].flag==4)
{
clearviewport();
clrscr();
setfillstyle(0,7);
bar(0,0,640,480);
setviewport(130,100,520,350,0);
rectangle(0,0,390,250);
outtextxy(100,40,"Congratulations");
outtextxy(200,90,"to you !");
outtextxy(100,140,"press 'ESC'");
outtextxy(200,190,"to go out!");
}
}
switch(stage)
{
case 1:
if(a[5][2].flag==4&&a[6][2].flag==4&&a[7][2].flag==4)
{stage++;init();}
case 2:
if(a[8][3].flag==4&&a[8][4].flag==4&&a[8][5].flag==4)
{stage++;init();}
case 3:
if(a[3][5].flag==4&&a[3][6].flag==4&&a[3][7].flag==4)
{stage++;init();}
case 4:
if(a[3][5].flag==4&&a[3][6].flag==4&&a[4][5].flag==4&&a[4][6].flag==4)
{stage++;init();}
case 5:
if(a[4][8].flag==4&&a[5][8].flag==4&&a[6][8].flag==4&&a[7][8].flag==4)
{stage++;init();}
case 6:
if(a[6][5].flag==4&&a[6][6].flag==4&&a[7][5].flag==4&&a[7][6].flag==4)
{stage++;init();}
case 7:
if(a[9][3].flag==4&&a[9][4].flag==4&&a[9][5].flag==4&&a[9][6].flag==4)
{stage++; init();}
case 8:
if(a[5][5].flag==4&&a[4][4].flag==4&&a[5][3].flag==4&&a[6][4].flag==4)
{stage++;init();}
case 9:
if(a[4][2].flag==4&&a[5][2].flag==4&&a[5][3].flag==4&&a[6][5].flag==4)
{stage++;init();}
case 10:
if(a[4][2].flag==4&&a[4][3].flag==4&&a[4][5].flag==4&&a[4][6].flag==4)
{stage++;init();}
case 11:
if(a[2][6].flag==4&&a[2][7].flag==4&&a[5][7].flag==4&&a[4][7].flag==4)
{stage++;init();}
case 12:
if(a[2][7].flag==4&&a[3][7].flag==4&&a[4][7].flag==4&&a[5][7].flag==4&&
a[6][7].flag==4)
{stage++;init();}
case 13:
if(a[2][4].flag==4&&a[2][5].flag==4&&a[3][3].flag==4&&a[3][4].flag==4&&
a[3][5].flag==4)
{stage++;init();}
case 14:
if(a[4][5].flag==4&&a[5][4].flag==4&&a[5][5].flag==4&&a[6][4].flag==4&&
a[6][5].flag==4)
{stage++;init();}
case 15:
if(a[7][4].flag==4&&a[7][5].flag==4&&a[8][5].flag==4&&a[9][4].flag==4&&
a[9][5].flag==4)
{stage++;init();}
case 16:
if(a[2][4].flag==4&&a[5][2].flag==4&&a[5][4].flag==4&&a[5][6].flag==4&&
a[8][4].flag==4)
{stage++;init();}
case 17:
if(a[4][4].flag==4&&a[6][2].flag==4&&a[6][4].flag==4&&a[6][6].flag==4&&
a[8][4].flag==4)
{stage++;init();}
case 18:
if(a[5][4].flag==4&&a[5][5].flag==4&&a[7][4].flag==4&&a[8][4].flag==4&&
a[8][5].flag==4)
{stage++;init();}
case 19:
if(a[5][3].flag==4&&a[5][5].flag==4&&a[4][4].flag==4&&a[5][4].flag==4&&
a[6][4].flag==4)
{stage++;init();}
case 20:
if(a[4][4].flag==4&&a[4][5].flag==4&&a[5][4].flag==4&&a[5][5].flag==4&&
a[6][4].flag==4&&a[6][5].flag==4)
{stage++;init();}
case 21:
if(a[8][3].flag==4&&a[7][2].flag==4&&a[8][1].flag==4&&a[8][2].flag==4&&
a[9][2].flag==4&&a[9][3].flag==4)
{stage++;init();}
case 22:
if(a[3][4].flag==4&&a[3][5].flag==4&&a[4][4].flag==4&&a[4][5].flag==4&&
a[5][4].flag==4&&a[5][5].flag==4)
{stage++;init();}
case 23:
if(a[4][7].flag==4&&a[5][7].flag==4&&a[6][6].flag==4&&a[6][7].flag==4&&
a[7][6].flag==4&&a[7][7].flag==4)
{stage++;init();}
case 24:
if(a[4][6].flag==4&&a[5][4].flag==4&&a[5][7].flag==4&&a[6][6].flag==4&&
a[7][7].flag==4&&a[8][6].flag==4)
{stage++;init();}
case 25:
if(a[7][5].flag==4&&a[6][5].flag==4&&a[6][6].flag==4&&a[7][6].flag==4&&
a[8][5].flag==4&&a[8][6].flag==4)
{stage++;init();}
case 26:
if(a[5][3].flag==4&&a[5][4].flag==4&&a[5][5].flag==4 &&a[6][3].flag==4&&
a[6][4].flag==4&&a[6][5].flag==4)
{stage++;init();}
case 27:
if(a[2][5].flag==4&&a[2][6].flag==4&&a[3][5].flag==4&&a[3][6].flag==4&&
a[4][5].flag==4&&a[4][6].flag==4)
{stage++;init();}
case 28:
if(a[3][7].flag==4&&a[4][6].flag==4&&a[4][7].flag==4&&a[4][8].flag==4&&
a[5][7].flag==4&&a[5][8].flag==4)
{stage++;init();}
case 29:
if(a[2][2].flag==4&&a[3][2].flag==4&&a[4][2].flag==4&&a[5][2].flag==4&&
a[6][2].flag==4&&a[7][2].flag==4)
{stage++;init();}
case 30:
if(a[4][4].flag==4&&a[4][5].flag==4&&a[4][6].flag==4&&a[9][2].flag==4&&
a[9][3].flag==4&&a[9][4].flag==4)
{stage++;init();}
case 31:
if(a[4][5].flag==4&&a[5][5].flag==4&&a[4][4].flag==4&&a[4][6].flag==4&&
a[5][4].flag==4&&a[5][6].flag==4)
{stage++;init();}
case 32:
if(a[4][5].flag==4&&a[6][4].flag==4&&a[4][3].flag==4&&a[5][3].flag==4&&
a[5][4].flag==4&&a[5][5].flag==4)
{stage++;init();}
case 33:
if(a[6][4].flag==4&&a[4][5].flag==4&&a[5][4].flag==4&&a[5][5].flag==4&&
a[6][5].flag==4&&a[7][4].flag==4)
case 34:
if(a[5][3].flag==4&&a[5][4].flag==4&&a[5][5].flag==4&&a[6][3].flag==4&&
a[6][4].flag==4&&a[6][5].flag==4)
{stage++;init();}
case 35:
if(a[6][5].flag==4&&a[4][4].flag==4&&a[4][5].flag==4&&a[5][3].flag==4&&
a[5][4].flag==4&&a[6][4].flag==4)
{stage++;init();}
case 36:
if(a[3][3].flag==4&&a[3][5].flag==4&&a[5][2].flag==4&&a[5][6].flag==4&&
a[7][3].flag==4&&a[7][5].flag==4)
{stage++;init();}
case 37:
if(a[2][4].flag==4&&a[3][4].flag==4&&a[4][4].flag==4&&a[5][4].flag==4&&
a[6][4].flag==4&&a[7][4].flag==4)
{stage++;init();}
case 38:
if(a[3][2].flag==4&&a[4][2].flag==4&&a[4][3].flag==4&&a[5][2].flag==4&&
a[5][3].flag==4&&a[6][2].flag==4&&a[6][3].flag==4)
{stage++;init();}
case 39:
if(a[5][3].flag==4&&a[6][2].flag==4&&a[6][3].flag==4&&a[7][2].flag==4&&
a[7][3].flag==4&&a[8][2].flag==4&&a[8][3].flag==4)
{stage++;init();}
case 40:
if(a[4][3].flag==4&&a[4][5].flag==4&&a[4][7].flag==4&&a[5][2].flag==4&&
a[6][3].flag==4&&a[6][5].flag==4&&a[6][7].flag==4)
{stage++;init();}
case 41:
if(a[5][3].flag==4&&a[5][5].flag==4&&a[6][3].flag==4&&a[6][4].flag==4&&
a[7][5].flag==4&&a[6][5].flag==4&&a[7][3].flag==4)
{stage++;init();}
case 42:
if(a[3][5].flag==4&&a[4][4].flag==4&&a[6][5].flag==4&&a[7][4].flag==4&&
a[4][5].flag==4&&a[5][4].flag==4&&a[5][5].flag==4&&a[6][4].flag==4)
{stage++;init();}
case 43:
if(a[2][4].flag==4&&a[2][5].flag==4&&a[3][6].flag==4&&a[5][4].flag==4&&
a[6][5].flag==4&&a[6][6].flag==4&&a[3][3].flag==4&&a[5][7].flag==4)
{stage++;init();}
case 44:
if(a[2][2].flag==4&&a[2][4].flag==4&&a[2][6].flag==4&&a[4][2].flag==4&&
a[4][6].flag==4&&a[6][2].flag==4&&a[6][4].flag==4&&a[6][6].flag==4)
{stage++;init();}
case 45:
if(a[2][2].flag==4&&a[2][3].flag==4&&a[3][2].flag==4&&a[3][3].flag==4&&
a[5][2].flag==4&&a[5][3].flag==4&&a[6][2].flag==4&&a[6][3].flag==4)
{stage++;init();}
case 46:
if(a[3][4].flag==4&&a[3][6].flag==4&&a[4][3].flag==4&&a[4][5].flag==4&&
a[4][7].flag==4&&a[5][4].flag==4&&a[5][6].flag==4&&a[2][5].flag==4&&
a[6][5].flag==4)
{stage++;init();}
case 47:
if(a[5][6].flag==4&&a[5][8].flag==4&&a[6][6].flag==4&&a[6][8].flag==4&&
a[7][6].flag==4&&a[7][8].flag==4&&a[5][7].flag==4&&a[6][7].flag==4&&
a[7][7].flag==4)
{stage++;init();}
case 48:
if(a[3][3].flag==4&&a[3][5].flag==4&&a[4][2].flag==4&&a[4][4].flag==4&&
a[4][6].flag==4&&a[5][3].flag==4&&a[5][5].flag==4&&a[6][4].flag==4&&
a[2][4].flag==4)
{stage++;init();}
case 49:
if(a[4][6].flag==4&&a[5][5].flag==4&&a[5][7].flag==4&&a[6][4].flag==4&&
a[6][6].flag==4&&a[6][8].flag==4&&a[7][5].flag==4&&a[7][7].flag==4&&
a[8][6].flag==4)
{stage++;init();}
case 50:
if(a[4][4].flag==4&&a[5][3].flag==4&&a[5][5].flag==4&&a[7][3].flag==4&&
a[7][5].flag==4&&a[8][4].flag==4&&a[5][4].flag==4&&a[6][3].flag==4&&
a[6][5].flag==4&&a[7][4].flag==4)
{stage++;init();}
case 51:
if(a[4][4].flag==4&&a[4][6].flag==4&&a[5][3].flag==4&&a[6][4].flag==4&&
a[6][6].flag==4&&a[8][4].flag==4&&a[8][6].flag==4&&a[7][7].flag==4&&
a[5][7].flag==4&&a[7][3].flag==4)
{stage++;init();}
case 52:
if(a[5][7].flag==4&&a[5][8].flag==4&&a[6][7].flag==4&&a[6][8].flag==4&&
a[7][7].flag==4&&a[7][8].flag==4&&a[8][7].flag==4&&a[8][8].flag==4&&
a[9][7].flag==4&&a[9][8].flag==4)
{stage++;init();}
case 53:
if(a[4][2].flag==4&&a[4][3].flag==4&&a[4][5].flag==4&&a[4][7].flag==4&&
a[4][8].flag==4&&a[5][4].flag==4&&a[2][5].flag==4&&a[3][6].flag==4&&
a[4][4].flag==4&&a[4][6].flag==4&&a[6][5].flag==4)
{stage++;init();}
case 54:
if(a[2][5].flag==4&&a[3][6].flag==4&&a[4][3].flag==4&&a[4][5].flag==4&&
a[4][6].flag==4&&a[4][7].flag==4&&a[5][4].flag==4&&a[6][5].flag==4&&
a[4][2].flag==4&&a[4][4].flag==4&&a[4][8].flag==4)
{stage++;init();}
case 55:
if(a[3][5].flag==4&&a[4][3].flag==4&&a[4][4].flag==4&&a[4][8].flag==4&&
a[2][5].flag==4&&a[4][2].flag==4&&a[4][5].flag==4&&a[4][6].flag==4&&
a[4][7].flag==4&&a[5][5].flag==4&&a[6][5].flag==4)
{stage++;init();}
case 56:
if(a[3][5].flag==4&&a[4][4].flag==4&&a[4][6].flag==4&&a[6][4].flag==4&&
a[6][6].flag==4&&a[7][5].flag==4&&a[3][4].flag==4&&a[3][6].flag==4&&
a[5][4].flag==4&&a[5][6].flag==4&&a[7][4].flag==4&&a[7][6].flag==4)
{stage++;init();}
break;
default:
break;
}
}
void calculate(int n,char *p)
{
int a,b,c;
a=n/100;
b=(n%100)/10;
c=n%10;
switch(a)
{
case 0: *p='0';break;
case 1: *p='1';break;
case 2: *p='2';break;
case 3: *p='3';break;
case 4: *p='4';break;
case 5: *p='5';break;
case 6: *p='6';break;
case 7: *p='7';break;
case 8: *p='8';break;
case 9: *p='9';break;
default: break;
}
switch(b)
{
case 0: *(p+1)='0';break;
case 1: *(p+1)='1';break;
case 2: *(p+1)='2';break;
case 3: *(p+1)='3';break;
case 4: *(p+1)='4';break;
case 5: *(p+1)='5';break;
case 6: *(p+1)='6';break;
case 7: *(p+1)='7';break;
case 8: *(p+1)='8';break;
case 9: *(p+1)='9';break;
default: break;
}
switch(c)
{
case 0: *(p+2)='0';break;
case 1: *(p+2)='1';break;
case 2: *(p+2)='2';break;
case 3: *(p+2)='3';break;
case 4: *(p+2)='4';break;
case 5: *(p+2)='5';break;
case 6: *(p+2)='6';break;
case 7: *(p+2)='7';break;
case 8: *(p+2)='8';break;
case 9: *(p+2)='9';break;
default: break;
}
}
void init1()
{
int i,j;
steps=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -