推箱子 源代码

  • 格式:docx
  • 大小:18.05 KB
  • 文档页数:16

#include"stdio.h"

#include"conio.h"

#include"stdlib.h"

#include"time.h"

void show(char b[9][9])

{

printf("\t\t\t\t***************************\n");

printf("\t\t\t\t 推箱子游戏 ");

printf("\n\t\t\t\t***************************\n");

printf("\t\t\t\t 人:★ 墙:■\n\t\t\t\t 箱子:◎ 目的地:□\n\t\t\t\t 按 d 键 退出游戏\n\t\t\t\t 限时30秒!");

printf("\n\t\t\t\t***************************\n");

for(int i=0;i<9;i++) //使用循环将地图转换输出

{

printf("\t\t\t\t ");

for(int k=0;k<9;k++)

{

if(b[i][k]=='#')

{

printf("■");

}

else

{

if(b[i][k]==3)

{

printf("□");

}

else

{

if(b[i][k]==5)

{

printf("◎");

}

else

{

if(b[i][k]==1)

{

printf("★");

}

else

{

if(b[i][k]=='!')

{

printf("⊙"); }

else

{

printf("%c ",b[i][k]);

}

}

}

}

}

}

printf("\n");

}

printf("\t\t\t\t***************************\n");

}

下面的是cpp文件

#include"show.h"

/*============================================移动函数=============================================================*/

void move(char c[9][9],int *x,int *y,int X,int Y,int A,int B,int N,int M,char *t) {

*t=getch();

/*============================================结束=============================================================*/

if(*t=='d')//遇到d返回

{

}

/*============================================向左=============================================================*/

if(*t==75)

{

if(c[*x][*y-1]=='#'||c[*x][*y-1]==5&&c[*x][*y-2]==5||c[*x][*y-1]==5&&c[*x][*y-2]=='!')//遇到墙或推两个箱子

{

}

else

{

if(c[*x][*y-1]=='!')//把箱子推出目的地

{

if(c[*x][*y-2]!=0)

{

}

else

{

c[*x][*y]=0;

*y-=1;

c[*x][*y]=1;

c[*x][*y-1]=5;

}

}

else

{

if(c[*x][*y-1]==5&&c[*x][*y-2]!='#')//推箱子

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]||c[*x][*y]==c[N][M])//推着箱子离开目的地

{

c[*x][*y]=3;

*y-=1;

c[*x][*y]=1;

c[*x][*y-1]=5;

} else

{

c[*x][*y]=0;

*y-=1;

c[*x][*y]=1;

c[*x][*y-1]=5;

}

}

else

{

if(c[*x][*y-1]==5&&c[*x][*y-2]=='#')//推不动箱子

{

}

else

{

if(c[*x][*y-1]==c[X][Y]||c[*x][*y-1]==c[A][B]||c[*x][*y-1]==c[N][M])//进到目的地

{

c[*x][*y]=0;

*y-=1;

c[*x][*y]=1;

}

else

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]||c[*x][*y]==c[N][M])//离开目的地

{

c[*x][*y]=3;

*y-=1;

c[*x][*y]=1;

}

else //走到空地

{

c[*x][*y]=0;

*y-=1;

c[*x][*y]=1;

}

}

}

}

}

}

if(c[X][Y]==5||c[A][B]==5||c[N][M]==5)//箱子推到目的地 {

c[*x][*y-1]='!';

}

}

/*============================================向右=============================================================*/

if(*t==77)

{

if(c[*x][*y+1]=='#'||c[*x][*y+1]==5&&c[*x][*y+2]==5||c[*x][*y+1]==5&&c[*x][*y+2]=='!')//遇到墙或推两个箱子

{

}

else

{

if(c[*x][*y+1]=='!')//把箱子推出目的地

{

if(c[*x][*y+2]!=0)

{

}

else

{

c[*x][*y]=0;

*y+=1;

c[*x][*y]=1;

c[*x][*y+1]=5;

}

}

else

{

if(c[*x][*y+1]==5&&c[*x][*y+2]!='#')//推箱子

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]||c[*x][*y]==c[N][M])

{

c[*x][*y]=3;

*y+=1;

c[*x][*y]=1;

c[*x][*y+1]=5;

}

else

{

c[*x][*y]=0;

*y+=1; c[*x][*y]=1;

c[*x][*y+1]=5;

}

}

else

{

if(c[*x][*y+1]==5&&c[*x][*y+2]=='#')//推不动箱子

{

}

else

{

if(c[*x][*y+1]==c[X][Y]||c[*x][*y+1]==c[A][B]||c[*x][*y+1]==c[N][M])//进到目的地

{

c[*x][*y]=0;

*y+=1;

c[*x][*y]=1;

}

else

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]||c[*x][*y]==c[N][M])//离开目的地

{

c[*x][*y]=3;

*y+=1;

c[*x][*y]=1;

}

else //走到空地

{

c[*x][*y]=0;

*y+=1;

c[*x][*y]=1;

}

}

}

}

}

}

if(c[X][Y]==5||c[A][B]==5||c[N][M]==5)//箱子进入目的地

{

c[*x][*y+1]='!';

}

}