C语言推箱子课程设计(附报告)
更新时间:2024-01-30 23:45:01 阅读量: 教育文库 文档下载
(注:VC运行时,分别新建两个文件BotIt.cpp
代码部分
目录下运行其中cpp)
和Maps.h,再在同一
文件“BoxIt.cpp”如下:
#include
#include
#define AISLE \ \走廊 #define N_AISLE 0
#define WALL \■\墙壁
#define N_WALL 1
#define AIM \※\未放箱子的目标 #define N_AIM 2
#define BOX \□\未在目标位置的箱子 #define N_BOX 3
#define MAN \♀\人
#define N_MAN 4
#define BOX_OK \?\■已经在目标位置的箱子[即已放箱子的目标] #define N_BOX_OK 5 #define MAN_IN \#define N_MAN_IN 6
#define ESC 0x1B #define UP 'w' #define DOWN 's' #define LEFT 'a' #define RIGHT 'd' #define RESTART 'r' #define SAVE 'x'
#define PF(a) printf(\
1
struct Point{int x;int y;}man_p;/*小人坐标*/
//struct Filename{int num;char name[20];}filename[10]; //int N;/*存档总人数*/ int M;/*关数*/ int step;/*步数*/ char x;
void welcome(); void ingame();
void playgame(int map[14][16]);/*玩游戏*/
void displaymap(int map[14][16]);/*展示当前游戏界面*/ void findman(int &a,int &b,int map[14][16]);/*找到小人坐标位置*/ unsigned char getKey();/*获得有效按键 返回按键值*/
int getmap(Point p,int map[14][16]);/*获得点p的地图值*/
void moveman(Point man_p,Point manf_p,int X,int Y,int map[14][16]);/*人移动*/ void movebox(Point box_p,Point boxf_p,int map[14][16]);/*移箱子*/ int win(int map[14][16]);/*判断当无※时 赢*/ void choosemap(int map[14][16],int i);/*选关*/
void changemap(int map[14][16],int mapx[14][16]);/*换地图*/ void save();/*保存当前*/ int read();/*读取存档*/
int a=0,b=0,c=0,d=0; //system(\int main() { x='0'; }
while(x!='4') {welcome();
if(x=='3'&&read()==0) continue; if(x!='4') ingame(); } return 0;
void displaymap(int map[14][16]) {int i,j;
system(\
printf(\
for(i=0;i<14;i++) {
for(j=0;j<16;j++) { switch(map[i][j]) {
2
case N_AISLE: PF(\ \ break; case N_WALL: PF(WALL);
break; PF(AIM); break; PF(BOX); break;
case N_AIM:
case N_BOX:
case N_MAN: PF(MAN);
break;
case N_BOX_OK:
PF(BOX_OK); break;
case N_MAN_IN: }
PF(MAN_IN);
default:;
} }
if(i==2) printf(\
if(i==3) printf(\、'a'、's'、'd' to control ♀ \if(i==5) printf(\if(i==7) printf(\
if(i==9) printf(\if(i==12) printf(\PF(\}
void playgame(int map[14][16]) { int X,Y;
Point manf_p,manff_p;
//findman(man_p.x,man_p.y,map); displaymap(map); step=0;
while(win(map)==0)
{findman(man_p.x,man_p.y,map); //printf(\输入:\ switch(getKey()) {case DOWN:
3
//printf(\下\\n\
manf_p.x=man_p.x;manff_p.x=man_p.x;
manf_p.y=man_p.y+1,manff_p.y=man_p.y+2; X=0,Y=1; break;
case UP: //printf(\上\\n\
manf_p.x=man_p.x;manff_p.x=man_p.x; manf_p.y=man_p.y-1,manff_p.y=man_p.y-2; X=0,Y=-1;
break; case LEFT:
//printf(\左\\n\ manf_p.x=man_p.x-1;manff_p.x=man_p.x-2; manf_p.y=man_p.y;manff_p.y=man_p.y; X=-1,Y=0; break; case RIGHT:
//printf(\右\\n\
manf_p.x=man_p.x+1;manff_p.x=man_p.x+2;
manf_p.y=man_p.y;manff_p.y=man_p.y; X=1,Y=0; break; case SAVE: save(); continue;
case RESTART:
changemap(map,map0);M--; continue; case ESC:
system(\ continue;
default:; }
//printf(\人位置[%d %d]\\n\,man_p.x);
//printf(\人前方[%d %d]人前前方[%d %d]\\n\,manff_p.x);
switch(getmap(manf_p,map))
{case N_AISLE://0 case N_AIM://2 moveman(man_p,manf_p,X,Y,map);
4
break;
case N_BOX://3 case N_BOX_OK://5 if(getmap(manff_p,map)==N_AISLE||getmap(manff_p,map)==N_AIM) {movebox(manf_p,manff_p,map);
moveman(man_p,manf_p,X,Y,map);} break;
default:; } }
void findman(int &a,int &b,int map[14][16]) {int i,j;
for(i=0;i<14;i++) for(j=0;j<16;j++)
if(map[i][j]==N_MAN||map[i][j]==N_MAN_IN) a=j,b=i; displaymap(map);
}
if(M==42) printf(\
}
unsigned char getKey() {
unsigned char key; do
{
key = getch();
}while(key != RESTART && key != ESC && key != LEFT && key != RIGHT && key != UP && key != DOWN && key!='x'&& key!=0x1B &&key!='r');
return key; }
int getmap(Point p,int map[14][16]) { }
void moveman(Point man_p,Point manf_p,int X,int Y,int map[14][16])
{map[manf_p.y][manf_p.x]=(map[manf_p.y][manf_p.x]==N_AIM||map[manf_p.y][manf_p.x]==N_BOX_OK)?N_MAN_IN:N_MAN;
5
//printf(\前方值%d\\n\return map[p.y][p.x];
map[man_p.y][man_p.x]=map[man_p.y][man_p.x]==N_MAN_IN?N_AIM:N_AISLE; //printf(\移动后—小人位置值%d\\n\ //printf(\移动后— 原 小人位置值%d\\n\ man_p.x+=X,man_p.y+=Y; step++; }
void movebox(Point box_p,Point boxf_p,int map[14][16]) {
map[boxf_p.y][boxf_p.x]=map[boxf_p.y][boxf_p.x]==N_AISLE?N_BOX:N_BOX_OK; map[box_p.y][box_p.x]=map[box_p.y][box_p.x]==N_BOX?N_AISLE:N_AIM; }
int win(int map[14][16]) {int i,j;
for(i=0;i<14;i++) for(j=0;j<16;j++)
if(map[i][j]==2||map[i][j]==6)
return 0;
return 1; }
void choosemap(int map[14][16],int i) {
switch(i)
{case 1:changemap(map,map1);break; case 2:changemap(map,map2);break; case 3:changemap(map,map3);break; case 4:changemap(map,map4);break; case 5:changemap(map,map5);break; case 6:changemap(map,map6);break; case 7:changemap(map,map7);break;
case 8:changemap(map,map8);break; case 9:changemap(map,map9);break; case 10:changemap(map,map10);break;
case 11:changemap(map,map11);break; case 12:changemap(map,map12);break; case 13:changemap(map,map13);break;
case 14:changemap(map,map14);break; case 15:changemap(map,map15);break; case 16:changemap(map,map16);break; case 17:changemap(map,map17);break;
6
case 18:changemap(map,map18);break;
case 19:changemap(map,map19);break; case 20:changemap(map,map20);break; case 21:changemap(map,map21);break; case 22:changemap(map,map22);break;
case 23:changemap(map,map23);break; case 24:changemap(map,map24);break; case 25:changemap(map,map25);break; case 26:changemap(map,map26);break; case 27:changemap(map,map27);break;
case 28:changemap(map,map28);break; case 29:changemap(map,map29);break; case 30:changemap(map,map30);break; case 31:changemap(map,map31);break; case 32:changemap(map,map32);break; case 33:changemap(map,map33);break; case 34:changemap(map,map34);break; case 35:changemap(map,map35);break; case 36:changemap(map,map36);break; case 37:changemap(map,map37);break; case 38:changemap(map,map38);break; case 39:changemap(map,map39);break; case 40:changemap(map,map40);break; case 41:changemap(map,map41);break; case 42:changemap(map,map42);break;
default:; }
}
void changemap(int map[14][16],int mapx[14][16]) {int i,j;
for(i=0;i<14;i++) }
void save() { int i,j;
FILE *in;
/*char filename[10][20]; for(j=0;j<16;j++)
map[i][j]=mapx[i][j];
printf(\ scanf(\
if((in=fopen(\
7
}
{printf(\ exit(0); }
for(i=0;i<14;i++) for(j=0;j<16;j++)
fwrite(&map[i][j],sizeof(int),1,in);
fwrite(&M,sizeof(int),1,in);
fwrite(&step,sizeof(int),1,in);
printf(\system(\fclose(in);
int read() {
int i,j;
FILE *out;
/*char filename[10][20]; printf(\scanf(\
if((out=fopen(\ {printf(\ return 0; }
else
{for(i=0;i<14;i++)
for(j=0;j<16;j++) fread(&map[i][j],sizeof(int),1,out); fread(&M,sizeof(int),1,out);
fread(&step,sizeof(int),1,out); printf(\
printf(\ fclose(out); }
void welcome() { printf(\♀ Box It \\n\
printf(\ switch(x=getch()) {case '1':printf(\ case '2':printf(\
8
return 1;}
case '3':printf(\ case '4':printf(\ default:printf(\ } }
void ingame() {
while(M<43) {playgame(map); }
step=0; M++;
choosemap(map,M);}
文件“Maps.h”如下:
int map[14][16]; int map0[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
9
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map1[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,2,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0}, {0,0,0,1,1,1,3,0,3,2,1,0,0,0,0,0}, {0,0,0,1,2,0,3,4,1,1,1,0,0,0,0,0}, {0,0,0,1,1,1,1,3,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,2,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map2[14][16]={
10
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0}, {0,0,0,1,4,0,0,1,0,0,0,0,0,0,0,0}, {0,0,0,1,0,3,3,1,0,1,1,1,0,0,0,0}, {0,0,0,1,0,3,0,1,0,1,2,1,0,0,0,0}, {0,0,0,1,1,1,0,1,1,1,2,1,0,0,0,0}, {0,0,0,0,1,1,0,0,0,0,2,1,0,0,0,0}, {0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0}, {0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0}, {0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map3[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0}, {0,0,0,1,1,3,1,1,1,0,0,0,1,0,0,0},
11
{0,0,0,1,0,4,0,3,0,0,3,0,1,0,0,0}, {0,0,0,1,0,2,2,1,0,3,0,1,1,0,0,0}, {0,0,0,1,1,2,2,1,0,0,0,1,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map4[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0}, {0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0}, {0,0,0,1,4,3,0,1,0,0,0,0,0,0,0,0}, {0,0,0,1,1,3,0,1,1,0,0,0,0,0,0,0}, {0,0,0,1,1,0,3,0,1,0,0,0,0,0,0,0}, {0,0,0,1,2,3,0,0,1,0,0,0,0,0,0,0}, {0,0,0,1,2,2,5,2,1,0,0,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
12
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map5[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0}, {0,0,0,0,1,4,0,1,1,1,0,0,0,0,0,0}, {0,0,0,0,1,0,3,0,0,1,0,0,0,0,0,0}, {0,0,0,1,1,1,0,1,0,1,1,0,0,0,0,0}, {0,0,0,1,2,1,0,1,0,0,1,0,0,0,0,0}, {0,0,0,1,2,3,0,0,1,0,1,0,0,0,0,0}, {0,0,0,1,2,0,0,0,3,0,1,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map6[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0},
13
{0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0}, {0,1,0,0,0,2,1,1,1,0,1,0,0,0,0,0}, {0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0}, {0,1,0,1,0,3,0,3,1,2,0,1,0,0,0,0}, {0,1,0,1,0,0,5,0,0,1,0,1,0,0,0,0}, {0,1,0,2,1,3,0,3,0,1,0,1,0,0,0,0}, {0,1,1,0,0,0,0,1,0,1,0,1,1,1,0,0}, {0,0,1,0,1,1,1,2,0,0,0,0,4,1,0,0}, {0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0}, {0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map7[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0}, {0,0,0,0,0,0,1,1,0,0,1,0,4,1,0,0}, {0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0}, {0,0,0,0,0,0,1,3,0,3,0,3,0,1,0,0}, {0,0,0,0,0,0,1,0,3,1,1,0,0,1,0,0},
14
{0,0,0,0,1,1,1,0,3,0,1,0,1,1,0,0}, {0,0,0,0,1,2,2,2,2,2,0,0,1,1,0,0}, {0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map8[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0}, {0,0,0,1,1,2,0,3,1,1,0,1,1,0,0,0}, {0,0,0,1,2,2,3,0,3,0,0,4,1,0,0,0}, {0,0,0,1,2,2,0,3,0,3,0,1,1,0,0,0}, {0,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0}, {0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
15
};
int map9[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0}, {0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0}, {0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,0}, {0,0,0,1,3,0,1,1,1,0,3,1,0,0,0,0}, {0,0,0,1,0,1,2,2,2,1,0,1,0,0,0,0}, {0,0,1,1,0,1,2,2,2,1,0,1,1,0,0,0}, {0,0,1,0,3,0,0,3,0,0,3,0,1,0,0,0}, {0,0,1,0,0,0,0,0,1,0,4,0,1,0,0,0}, {0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map10[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
16
{0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0}, {0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0}, {0,0,0,0,1,1,1,3,3,3,0,1,0,0,0,0}, {0,0,0,0,1,4,0,3,2,2,0,1,0,0,0,0}, {0,0,0,0,1,0,3,2,2,2,1,1,0,0,0,0}, {0,0,0,0,1,1,1,1,0,0,1,0,0,0,0,0}, {0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map11[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,1,1,1,1,0,0,1,1,1,1,1,0,0}, {0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0}, {0,0,1,0,3,0,1,1,1,1,3,0,0,1,0,0}, {0,0,1,0,0,3,2,2,2,2,0,3,0,1,0,0}, {0,0,1,1,0,0,0,0,1,0,4,0,1,1,0,0}, {0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0},
17
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map12[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,1,1,1,0,0,4,1,0,0,0,0,0}, {0,0,0,0,1,0,0,3,2,0,1,1,0,0,0,0}, {0,0,0,0,1,0,0,2,3,2,0,1,0,0,0,0}, {0,0,0,0,1,1,1,0,5,3,0,1,0,0,0,0}, {0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map13[14][16]={
18
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0}, {0,0,0,0,0,1,2,2,1,0,0,0,0,0,0,0}, {0,0,0,0,1,1,0,2,1,1,0,0,0,0,0,0}, {0,0,0,0,1,0,0,3,2,1,0,0,0,0,0,0}, {0,0,0,1,1,0,3,0,0,1,1,0,0,0,0,0}, {0,0,0,1,0,0,1,3,3,0,1,0,0,0,0,0}, {0,0,0,1,0,0,4,0,0,0,1,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map14[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0}, {0,0,0,1,0,3,2,2,3,0,1,0,0,0,0,0},
19
{0,0,0,1,4,3,2,5,0,1,1,0,0,0,0,0}, {0,0,0,1,0,3,2,2,3,0,1,0,0,0,0,0}, {0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map15[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0}, {0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0}, {0,0,0,0,1,0,3,0,3,3,0,1,0,0,0,0}, {0,0,0,0,1,2,2,2,2,2,2,1,0,0,0,0}, {0,0,0,0,1,0,3,3,0,3,0,1,0,0,0,0}, {0,0,0,0,1,1,1,0,4,1,1,1,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
20
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map16[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0}, {0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0}, {0,0,0,0,0,0,1,0,3,0,0,0,0,1,0,0}, {0,0,0,0,1,1,1,0,3,0,1,1,0,1,0,0}, {0,0,0,0,1,2,2,2,0,3,0,0,0,1,0,0}, {0,0,0,0,1,2,2,2,3,1,3,0,1,1,0,0}, {0,0,0,0,1,1,1,1,0,1,0,3,0,1,0,0}, {0,0,0,0,0,0,0,1,0,0,4,0,0,1,0,0}, {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map17[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
21
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0}, {0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0}, {0,0,0,0,1,0,3,3,3,1,1,0,0,0,0,0}, {0,0,0,0,1,0,0,1,2,2,1,1,1,0,0,0}, {0,0,0,0,1,1,0,0,2,2,3,0,1,0,0,0}, {0,0,0,0,0,1,0,4,0,0,0,0,1,0,0,0}, {0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map18[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0}, {0,0,0,0,0,1,0,0,0,1,2,0,1,0,0,0}, {0,0,0,0,1,1,0,0,3,2,2,2,1,0,0,0}, {0,0,0,0,1,0,0,3,0,1,5,2,1,0,0,0}, {0,0,0,1,1,0,1,1,3,1,0,1,1,0,0,0}, {0,0,0,1,0,0,0,3,0,0,3,0,1,0,0,0},
22
{0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0}, {0,0,0,1,1,1,1,1,1,1,4,0,1,0,0,0}, {0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map19[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,1,2,2,2,2,0,1,0,0,0,0,0}, {0,0,0,1,1,1,2,2,2,3,1,1,1,0,0,0}, {0,0,0,1,0,0,3,1,3,0,3,0,1,0,0,0}, {0,0,0,1,0,3,3,0,0,1,3,0,1,0,0,0}, {0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0}, {0,0,0,1,1,1,1,0,4,0,1,1,1,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
23
};
int map20[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,1,2,2,3,2,2,1,0,0,0,0,0}, {0,0,0,0,1,2,2,1,2,2,1,0,0,0,0,0}, {0,0,0,0,1,0,3,3,3,0,1,0,0,0,0,0}, {0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0}, {0,0,0,0,1,0,3,3,3,0,1,0,0,0,0,0}, {0,0,0,0,1,0,0,1,4,0,1,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map21[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,1,0,2,2,2,1,0,0,0,0,0}, {0,0,1,1,1,1,2,2,2,2,1,0,0,0,0,0},
24
{0,0,1,0,0,1,1,1,3,0,1,1,1,0,0,0}, {0,0,1,0,3,0,3,0,0,3,3,0,1,0,0,0}, {0,0,1,0,0,3,0,3,0,0,0,0,1,0,0,0}, {0,0,1,4,0,0,1,1,1,0,0,0,1,0,0,0}, {0,0,1,1,1,1,1,0,0,1,1,1,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map22[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0}, {0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0}, {0,0,1,0,1,3,3,0,0,1,0,0,0,0,0,0}, {0,0,1,0,2,2,2,1,0,1,0,0,0,0,0,0}, {0,0,1,1,2,2,2,3,0,1,1,0,0,0,0,0}, {0,0,0,1,0,1,1,0,3,0,1,0,0,0,0,0}, {0,0,0,1,3,0,0,3,0,0,1,0,0,0,0,0}, {0,0,0,1,0,0,1,4,0,0,1,0,0,0,0,0},
25
{0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map23[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0}, {0,0,0,0,1,0,0,0,3,0,3,0,0,1,0,0}, {0,0,0,0,1,0,3,0,0,0,3,0,4,1,0,0}, {0,0,0,0,1,1,1,3,3,1,1,1,1,1,0,0}, {0,0,0,0,0,0,1,0,0,2,2,1,0,0,0,0}, {0,0,0,0,0,0,1,2,2,2,2,1,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map24[14][16]={
26
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0}, {1,0,0,0,0,1,1,1,0,1,0,0,2,1,0,0}, {1,0,0,3,0,3,0,1,0,1,2,2,2,1,0,0}, {1,0,1,0,0,3,0,1,1,1,0,0,2,1,0,0}, {1,0,0,3,3,3,0,0,0,3,0,4,2,1,0,0}, {1,1,1,0,0,3,0,0,3,1,0,0,2,1,0,0}, {0,0,1,0,0,3,1,3,0,1,2,2,2,1,0,0}, {0,0,1,1,0,0,0,0,0,1,0,0,2,1,0,0}, {0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map25[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0}, {0,0,0,1,1,1,1,1,2,0,0,0,1,0,0,0}, {0,0,0,1,0,0,1,2,2,1,1,0,1,0,0,0}, {0,0,0,1,0,0,3,2,2,0,0,0,1,0,0,0}, {0,0,0,1,0,0,1,0,2,1,0,1,1,0,0,0},
27
{0,0,1,1,1,0,1,1,3,1,0,0,1,0,0,0}, {0,0,1,0,3,0,0,0,0,3,3,0,1,0,0,0}, {0,0,1,0,1,3,1,0,0,1,0,0,1,0,0,0}, {0,0,1,4,0,0,1,1,1,1,1,1,1,0,0,0}, {0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map26[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, {0,0,1,0,0,0,1,1,0,0,1,1,1,1,0,0}, {0,0,1,0,3,0,0,0,0,0,0,0,0,1,0,0}, {0,0,1,1,3,1,1,1,0,1,1,0,0,1,0,0}, {0,0,1,0,0,1,1,0,5,0,1,0,1,1,0,0}, {0,0,1,0,3,2,2,2,2,2,2,0,1,0,0,0}, {0,1,1,0,1,1,1,0,2,0,1,0,1,0,0,0}, {0,1,0,0,0,0,0,3,1,1,1,3,1,0,0,0}, {0,1,0,0,0,1,0,0,0,0,3,4,1,0,0,0}, {0,1,1,1,1,1,3,1,0,1,1,1,1,0,0,0}, {0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0},
28
{0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map27[14][16]={
{0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0}, {0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0}, {0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0}, {0,0,0,0,0,0,1,0,0,3,0,3,1,0,1,0}, {1,1,1,1,1,1,1,0,0,0,3,0,0,0,1,0}, {1,2,2,1,0,0,1,1,0,3,0,3,1,0,1,0}, {1,2,2,0,0,0,1,1,0,3,0,3,0,0,1,0}, {1,2,2,1,0,0,1,1,0,1,1,1,1,1,1,0}, {1,2,2,1,0,1,0,3,0,3,0,1,0,0,0,0}, {1,2,2,0,0,0,0,0,3,0,0,1,0,0,0,0}, {1,0,0,1,1,1,0,4,0,1,1,1,0,0,0,0}, {1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map28[14][16]={
{0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0}, {1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0},
29
{1,0,0,3,0,3,0,1,0,1,1,1,1,1,1,1}, {1,0,0,0,3,0,0,1,0,1,5,2,5,2,5,1}, {1,1,0,3,0,3,0,1,1,1,2,5,2,5,2,1}, {1,1,3,0,3,0,0,1,0,0,5,2,5,2,5,1}, {1,1,4,3,0,3,0,0,0,0,2,5,2,5,1,1}, {1,1,3,0,3,0,0,1,0,0,5,2,5,2,5,1}, {1,1,0,3,0,3,0,1,1,1,2,5,2,5,2,1}, {1,0,0,0,3,0,0,1,0,1,5,2,5,2,5,1}, {1,0,0,3,0,3,0,1,0,1,1,1,1,1,1,1}, {1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map29[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0}, {0,0,0,0,1,2,2,2,2,2,2,1,0,0,0,0}, {0,0,0,0,1,0,0,3,0,1,0,1,1,0,0,0}, {0,0,0,0,1,0,3,0,1,0,3,0,1,0,0,0},
30
{0,0,0,0,1,1,3,0,3,0,3,0,1,0,0,0}, {0,0,0,0,0,1,0,0,4,0,0,0,1,0,0,0}, {0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map30[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0}, {0,0,0,1,1,1,0,0,0,2,0,0,0,0,1,0}, {0,0,0,1,0,0,0,1,1,3,1,1,0,0,1,0}, {0,0,0,1,0,4,3,2,0,2,0,2,3,1,1,0}, {0,0,0,1,1,0,3,1,1,3,1,1,0,1,0,0}, {0,0,0,0,1,0,0,0,0,2,0,0,0,1,0,0}, {0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
31
};
int map31[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0}, {0,0,0,0,1,1,1,1,2,0,0,4,1,0,0,0}, {0,0,0,0,1,0,0,3,3,3,0,0,1,0,0,0}, {0,0,0,0,1,2,1,1,2,1,1,2,1,0,0,0}, {0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0}, {0,0,0,0,1,0,0,3,2,1,0,1,1,0,0,0}, {0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0}, {0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map32[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0},
32
{0,0,0,0,0,1,2,0,2,2,1,0,0,0,0,0}, {0,0,0,0,0,1,2,0,3,2,1,0,0,0,0,0}, {0,0,0,0,1,1,1,0,0,3,1,1,0,0,0,0}, {0,0,0,0,1,0,3,0,0,3,0,1,0,0,0,0}, {0,0,0,0,1,0,1,3,1,1,0,1,0,0,0,0}, {0,0,0,0,1,0,0,0,4,0,0,1,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map33[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0}, {0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0}, {0,0,1,0,0,0,1,3,0,0,0,1,1,1,0,0}, {0,0,1,0,0,0,3,0,0,0,3,3,0,1,0,0}, {0,0,1,0,3,3,0,1,3,0,0,0,0,1,0,0}, {0,0,1,1,0,0,0,3,0,0,0,3,0,1,0,0}, {1,1,1,1,1,1,0,1,3,1,1,1,1,1,0,0}, {1,2,2,4,0,1,3,0,0,1,0,0,0,0,0,0}, {1,2,1,2,2,0,0,3,1,1,0,0,0,0,0,0},
33
{1,2,2,2,2,3,1,0,1,0,0,0,0,0,0,0}, {1,2,2,2,2,0,0,0,1,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map34[14][16]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, {1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0}, {1,0,3,0,1,3,0,1,0,3,1,1,3,0,1,0}, {1,0,1,0,0,3,0,1,0,0,0,0,0,0,1,0}, {1,0,0,0,1,1,3,1,3,1,1,3,3,0,1,0}, {1,0,1,0,1,0,2,2,2,0,1,0,0,0,1,0}, {1,0,3,0,0,2,0,1,0,2,3,0,1,0,1,0}, {1,0,3,1,4,3,2,2,2,1,0,1,0,0,1,0}, {1,0,0,0,0,2,0,1,0,2,0,0,3,0,1,0}, {1,0,1,1,2,3,1,1,1,3,2,0,1,0,1,0}, {1,0,1,0,3,2,2,2,2,2,0,1,1,0,1,0}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map35[14][16]={
34
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0}, {0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0}, {0,0,0,1,0,1,0,3,0,3,0,1,0,0,0,0}, {0,0,0,1,0,0,5,2,1,0,0,1,0,0,0,0}, {0,0,0,1,1,0,1,2,4,2,1,1,0,0,0,0}, {0,0,0,1,1,3,1,1,1,5,1,1,1,0,0,0}, {0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0}, {0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0}, {0,0,0,1,1,1,1,1,1,0,0,0,1,0,0,0}, {0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map36[14][16]={
{1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0}, {1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0}, {1,0,3,3,0,0,0,1,1,1,0,0,0,0,0,0}, {1,0,0,3,0,3,3,3,0,1,1,1,1,1,0,0}, {1,1,0,1,1,0,2,2,2,0,0,0,0,1,1,0}, {0,1,0,1,4,1,2,2,2,1,1,1,3,0,1,0},
35
{0,1,0,1,0,3,2,2,2,0,0,0,0,0,1,0}, {1,1,0,1,0,3,2,2,2,3,0,1,0,1,1,0}, {1,0,0,1,1,1,1,1,0,1,1,1,0,1,0,0}, {1,0,0,0,0,0,0,3,0,0,0,3,0,1,0,0}, {1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0}, {0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map37[14][16]={
{0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0}, {0,1,2,2,1,0,0,0,0,0,0,1,2,2,1,0}, {0,1,2,2,1,1,1,1,1,1,1,1,2,2,1,0}, {0,1,0,3,0,2,2,2,2,2,2,3,2,3,1,0}, {0,1,3,0,3,0,3,0,3,0,3,0,3,0,1,0}, {0,1,0,3,0,3,0,3,4,3,0,3,0,3,1,0}, {0,1,3,0,3,0,3,0,3,0,3,0,3,0,1,0}, {0,1,0,3,0,3,0,3,0,3,0,3,0,3,1,0}, {0,1,3,2,3,2,2,2,2,2,2,0,3,0,1,0}, {0,1,2,2,1,1,1,1,1,1,1,1,2,2,1,0}, {0,1,2,2,1,0,0,0,0,0,0,1,2,2,1,0}, {0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0},
36
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map38[14][16]={
{1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0}, {1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0}, {1,2,2,2,3,3,0,1,1,1,1,1,1,1,0,0}, {1,2,2,2,1,0,0,0,0,0,0,0,0,1,0,0}, {1,2,2,2,1,3,1,1,1,1,1,1,0,1,0,0}, {1,2,2,2,1,0,0,0,0,0,0,1,0,1,1,0}, {1,1,1,1,1,0,3,0,3,1,0,1,0,0,1,0}, {0,0,0,0,1,0,3,0,3,0,3,0,1,0,1,0}, {0,0,0,0,1,0,0,1,0,3,0,0,4,0,1,0}, {0,0,0,0,1,0,3,3,0,3,1,1,1,1,1,0}, {0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map39[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0},
37
{0,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0}, {0,0,1,0,3,0,3,0,2,3,0,0,1,0,0,0}, {0,0,1,0,1,2,1,2,1,2,1,0,1,0,0,0}, {0,0,1,0,3,2,3,4,3,2,3,0,1,0,0,0}, {0,0,1,0,1,2,1,2,1,2,1,0,1,0,0,0}, {0,0,1,0,0,3,2,0,3,0,3,0,1,0,0,0}, {0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0}, {0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map40[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0}, {0,0,1,3,3,3,0,3,3,3,1,0,0,0,0,0}, {0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,0}, {0,0,1,2,2,2,1,2,2,2,1,0,0,0,0,0}, {0,0,1,3,3,3,3,3,3,3,1,0,0,0,0,0}, {0,0,1,0,0,0,4,0,0,0,1,0,0,0,0,0},
38
{0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
int map41[14][16]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0}, {0,0,0,1,2,0,2,0,2,1,0,0,0,0,0,0}, {0,0,0,1,0,3,3,3,0,1,0,0,0,0,0,0}, {0,0,0,1,2,3,4,3,2,1,0,0,0,0,0,0}, {0,0,0,1,0,3,3,3,0,1,0,0,0,0,0,0}, {0,0,0,1,2,0,2,0,2,1,0,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
39
};
int map42[14][16]={
{0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0}, {0,1,0,0,0,0,0,1,0,2,2,2,1,0,0,0}, {0,1,0,0,1,1,0,1,0,0,2,2,1,0,0,0}, {0,1,0,0,1,0,0,0,0,0,2,2,1,0,0,0}, {0,1,0,1,1,3,0,1,0,0,2,2,1,0,0,0}, {0,1,0,0,3,0,0,1,0,0,2,2,1,0,0,0}, {0,1,0,3,3,0,0,1,1,1,1,1,1,0,0,0}, {0,1,0,0,3,3,0,3,0,0,1,1,0,0,0,0}, {0,1,0,1,0,0,3,3,3,0,0,1,0,0,0,0}, {0,1,0,0,0,1,1,0,3,4,1,1,0,0,0,0}, {0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0}, {0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, };
报告部分
Ⅰ问题描述 ........................................... 41 Ⅱ需求分析 ........................................... 41 Ⅲ系统设计 ........................................... 41
40
Ⅳ编码与调试分析 ...................................... 47 Ⅴ系统使用说明 ........................................ 48 Ⅵ测试结果 ........................................... 48 Ⅶ课程设计心得 ........................................ 53 Ⅷ参考文献 ........................................... 53
Ⅰ问题描述
推箱子游戏是目前比较流行的游戏之一,很多操作系统或者流行软件都会带有这种游戏。它既能锻炼思维的严密性,又有很多乐趣。我个人也比较喜欢玩这个游戏,因此,我就借这个机会将这个推箱子游戏用C语言实现了出来,当然,我也借鉴了前人的一些技巧经验。由于时间仓促和本人水平有限,此游戏的制作显得有些粗糙,希望老师能够谅解,我以后将会再接再厉。
Ⅱ需求分析
显示地图:该程序必须在玩家玩的过程中时刻正确地显示地图界面,以保证玩家能 进行判断思考下一步或后几步的推法;
控制小人:小人必须能接收玩家的控制信息,并在地图上正确移动;
过关选关:玩家不用一关关地闯过去,可以自由选取关卡,体验不同难度级别的游戏; 保存读取:可以根据玩家需求,在游戏的任意时刻保存当前游戏进度。
Ⅲ系统设计
1.模块图及主程序流程图
41
地图显示图模块 Box It 移动小人和箱子模块 系 统 模 块 图开 始 X=’0’ 42
功能模块: ‘x’保存、 ‘r’重玩、 ‘Esc’返回 过关和自由选关 N
X!=’4Y welcome(); N x==”3”&&rY continute; X!=’4’ Y N ingame();
return 0;
终 止 主 程 序 流 程 图
2.ADT及作用:
“Maps.h”里面的数组map[14][16],…map42[14][16]:用来储存地图信息; struct Point{int x;int y;}man_p:用来储存小人信息。
3.实现设计的操作函数的流程图 1)welcome ( )显示主菜单界面
43
显示1,2,3,4端口信息,switch()来进行选择;
2)ingame ( )
3)playgame ( )
while(M<43);关数小于43时一直在闯关游戏中;
用getkey()来接受按键信息;当过关数M==42且过关时,显示玩通所有关卡;
44
4)displaymap ( )
用两个for嵌套循环来判断数组值,显示相应图标,从而整体显示地图; 同时在适当换行时显示按键操作说明; 5) findman ( )
用for()嵌套来搜索二维数组地图中小人的下标(小人值为3走廊时,6进入目标时) 6) getkey ( )
用一个while()循环来 过滤接收的按键; w/a/s/d/x/r/Esc
7) getmap( )
int getmap(Point p,int map[14][16]) {return map[p.y][p.x];}
用来返回P点(一个确定的坐标)在map数组地图的值 8) moveman( )
moveman(Point man_p,Point manf_p,int X,int Y,int map[14][16]) {
map[manf_p.y][manf_p.x]=(map[manf_p.y][manf_p.x]==N_AIM||map[manf_p.y][manf_p.x]==N_BOX_OK)?N_MAN_IN:N_MAN;
map[man_p.y][man_p.x]=map[man_p.y][man_p.x]==N_MAN_IN?N_AIM:N_AISLE;
man_p.x+=X,man_p.y+=Y; step++; }
当小人可以移动时,判断前方是否为※目标或箱子进入目标?,是则移动后人变为‘*‘样子,否则保持原样♀;
45
当小人移动后,判断原小人处是否为在目标的小人‘*‘,是则移动后变为※样子,不是则变为‘ ’走廊样子;
9) movebox( )
movebox(Point box_p,Point boxf_p,int map[14][16]) {
map[boxf_p.y][boxf_p.x]=map[boxf_p.y][boxf_p.x]==N_AISLE?N_BOX:N_BOX_OK; map[box_p.y][box_p.x]=map[box_p.y][box_p.x]==N_BOX?N_AISLE:N_AIM; }
当箱子可移动时,判断箱子前面是否为空地走廊‘ ’,是则推后不变样,否(不是空走廊)则变成已达目标?的样子;
当移动后,判断箱子原来处是否为未在目标的箱子,是则推后变走廊‘ ’,否(是在目标的箱子)则变成目标样子?;
10) win( )
用for()嵌套来搜索map
地图中有无2目标/6小人进入这俩数值, 没有则继续游戏,有则通过本关。
11) choosemap( )
choosemap(int map[14][16],int i) { switch(i){case 1:changemap(map,map1);break;……}} 选择要赋给map的全局变量mapi 12) changemap( )
用选好的mapi数组赋值给map 13) save( )
FILE *in=fopen(\game\打开一个文件,并用for()向里面写数据。
14)read( )
46
不能打开文件,则返回0;
能打开,则开始用for()读取数据,并返回1;
Ⅳ编码与调试分析
1.地图显示参差不齐:
在出现问题的地方输入“\\ n”换行 、“ ”空格 、或改换数组值所表示的符 号进行调整;
2.小人动不了或出现两个小人:
未改变全局变量地图map的值。Changemap()函数的参数选择要正确,不能用&引用或*指针变量,只需直接用同类型的int map[][],函数调用后可以返回改变值;对小人另外定义一个point{int x;in y;}坐标全局变量,来记录小人的位置。
3.小人会进入墙体:
movebox()函数在进行分类时考虑不全,导致移动前方是墙体时也能动,需要在所执行的相关swtich选择语句中多加个“case” 分类;
4.过关换地图时,改变全局变量当前地图map[14][16] 的值:
需要把过关分结成两个逻辑函数来解决,先选择要换的地图changemap(),再用choosemap()来给全局变量map[][]来赋值,改变下一关地图; 5.step计数与小人不同步而与按键次数一样:
Step++运算要放在moveman()成功执行后面,而不是放在按键接收函数 key()后面。
47
Ⅴ系统使用说明
1.程序开始后
♀ Box It
1:New Game. 2:Select Misson. 3:Read Record. 4:Exit Game.
Choose- - 按
1) 从第一关开始游戏
2) 从1—42关自由选择地图 3) 读取之前保存的游戏进度 4) 退出程序 2.游戏开始后
在游戏过程中通过‘w’、‘a’、‘s’、‘d’来控制小人移动; 按‘r’本关重新开始;‘x’保存当前进度;‘Esc’回到主菜单; Step统计小人走的步数。
Ⅵ测试结果
图1:菜单
48
图2:选1新游戏后
图3:按‘w’‘a’‘s’‘d’控制小人移动后
49
图4:过关后
图5:按下‘x’保存当前进度后
50
正在阅读:
C语言推箱子课程设计(附报告)01-30
电大心理学网上形成性考核册作业2.06-09
2017年山东省临沂市中考数学试卷03-08
《桃花源记》练习题(含答案)09-20
2019年九年级物理全册15.1电能表与电功习题2(新版)苏科版11-09
数据结构(C语言版)习题及答案第九章08-24
思想政治七年级上册教学计划03-20
五年级阅读理解题及答案11-11
第九届机器人竞赛工程设计记分表概要03-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 推箱子
- 语言
- 课程
- 报告
- 设计
- 书吧设计毕业论文 - 图文
- 七都大桥潮汐条件下高桩承台单壁钢吊箱围堰施工工法
- 市场营销学习心得体会
- 服装工艺 中英文 图解 之- 包边,镶边,嵌边,折光边,还口,卷边
- 射频VCO内部电路剖析 - 图文
- 2018年最新党支部换届选举方案、办法等全套资料
- 基于位运算的数字加密算法的研究
- 华师 组织行为学 期末复习问答题
- 污水泵项目可行性研究报告
- 嵌入式实时操作系统ucos期末考试题
- 我国民营快递企业发展现状的思考 - 以顺丰速运为例
- 广东省实施《中华人民共和国招标投标法》办法
- 集美大学诚毅学院计算05图形学试卷B
- 企业应收账款管理研究毕业论文
- 2010-2011先进集体、先进个人公示通知
- 湖南大学课程考试试卷期中c语言试卷
- 脐针临证 doc
- 安全生产培训心得体会
- 护理理论知识考试模拟试卷及答案
- 数据库技术复习—ACCESS习题及答案(汇总)