⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pushbox.c

📁 本人用C写的一个57关版本的小游戏原程序
💻 C
📖 第 1 页 / 共 5 页
字号:
      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 + -