资源描述:
《C语言推箱子源代码推箱子代码完善.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#includetypedefstructMAP//地图{intwall[50][2];//墙intbox[9][2];//箱子intdes[9][2];//终点intoverlap[9][2];//箱子与终点的重叠位置intall,now;//总箱子个数,到位箱子个数intx,y;//起点}MAP,*map;//全局变量//intU=1,D=2,L=3,R=4;//定义按键状态//intjump;intofx=10,ofy=9;//定义xy偏移量intp
2、layer[2];//玩家位置intnextp[2],nextb[2];//玩家下一步位置,箱子下一步位置MAPPass[5];//关卡数组mapGroup,p;//关卡数组指针,当前关卡指针intlevel;//关卡等级intstatus;//玩家状态intboxc[9][2],overlapc[9][2];//箱子状态栈,重叠箱子状态栈intnowbox;//当前到位箱子个数intreset;//是否重玩//声明全部函数//voidPos(intx,inty)//设置光标位置{COORDpos;HANDLEhOutput;pos.X=x;po
3、s.Y=y;hOutput=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(hOutput,pos);system("color3B");}voidwelcometogame()//开始界面{system("title2017程序设计之推箱子");Pos(28,3);printf("欢迎来到推箱子!");Pos(50,24);printf("软件1603刘刈");Pos(27,9);printf("用↑.↓.←.→控制人物的移动。");Pos(27,10);printf("按空
4、格键重新开始此局。");Pos(27,11);printf("按ESC结束游戏。");Pos(0,22);system("pause");if(GetAsyncKeyState(VK_ESCAPE)){system("cls");Pos(34,14);printf("欢迎下次再玩。");Pos(25,20);printf("请按任意键退出。");getch();exit(0);}system("cls");}voidinputmap(inta[][2])//创建地图数据{inti,k;p->x=a[0][0];p->y=a[0][1];//玩
5、家坐标p->all=a[1][0];p->now=a[1][1];//箱子状态for(k=0,i=2;i<2+p->now;i++,k++)//输入重叠箱子信息{p->overlap[k][0]=a[i][0];p->overlap[k][1]=a[i][1];}for(k=0;i<2+p->now+p->all;i++,k++)//输入终点信息{p->des[k][0]=a[i][0];p->des[k][1]=a[i][1];}for(k=0;i<2+p->now+2*p->all;i++,k++)//输入箱子信息{p->box[k][0]=
6、a[i][0];p->box[k][1]=a[i][1];}for(k=0;a[i][0]!=666;i++,k++)//输入墙的信息{p->wall[k][0]=a[i][0];p->wall[k][1]=a[i][1];}}voidinitgame()//初始化游戏{//[0][0],[0][1]是玩家起始位置,[1][0],[1][1]是箱子个数和到位个数,//之后是重叠箱子位置,终点位置,箱子位置,墙位置inta0[50][2]={{4,4},{4,0},{1,4},{3,1},{4,6},{6,3},{3,3},{3,4},{4,5},
7、{5,3},{0,3},{0,4},{0,5},{1,3},{1,5},{2,0},{2,1},{2,2},{2,3},{2,5},{3,0},{3,5},{3,6},{3,7},{4,0},{4,1},{4,2},{4,7},{5,2},{5,4},{5,5},{5,6},{5,7},{6,2},{6,4},{7,2},{7,3},{7,4},{666,666}},a1[50][2]={{1,1},{3,0},{7,3},{7,4},{7,5},{2,2},{2,3},{3,2},{0,0},{0,1},{0,2},{0,3},{0,4},{1
8、,0},{1,4},{1,5},{1,6},{1,7},{1,8},{2,0},{2,4},{2,5},{2,8},{3,0},{3,8