资源描述:
《C语言推箱子小游戏程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、推箱子程序:#include#include#ineludevWindows.h>#defineU1#defineD2#defineL3#defineR4〃按键状态,U:上;D:下;L:左R:右#defineofx10^defineofy9//x,y方向偏移量typedefstructMAP〃地图{intwall[50][2];//ijSintbox⑼[2];〃箱子intdes⑼[2];〃终点intoverlap⑼[2];//箱了与终点的重叠位置intall,now;〃总箱子个数,到位箱
2、子个数intx,y;〃起点}MAP,*map;〃全局变呆〃intplayer[2];〃玩家位置intnextp[2],nextb[2];〃玩家下一步位置,箱子下一步位置MAPPass⑸;〃关卡数组mapGroup,p;〃关卡数组指针,当前关R指针intlevel;〃关卡等级intstatus;〃玩家状态intboxc⑼[2],overlapc⑼⑵;〃箱子状态栈,重叠箱子状态栈intnowbox;〃当前到位箱了个数intregame;〃是否重玩〃声明全部函数〃voidPos(intx,inty);〃设置光标位置voidwelc
3、ometogame();〃开始界面voidinitgamef);〃初始化游戏voidstartgame();〃开始游戏voidcopybox(intcopy⑼[2],intb[9][2]);//复制箱子信息voidloadmap();〃加载地图voidprintfoverlap(intb[9][2]);〃打印重叠箱子位置voidmove();〃玩家移动voidtrans(intp[2],intq[2j);〃状态传递voidinputmap(inta[][2]);//输入地图数据voidgamecircle();〃控制游戏in
4、tmain()system("modeconcols=80lines=30");〃控制台宽度80,高度30welcometogame();initgamef);for(level=0;level<4;level++)p=Group+level;startgame();}system("cls");Pos(32,14);printf(“恭喜你已通过所有关卡!”);system("pause");}voidPos(intx,inty)〃设置光标位置{COORDpos;HANDLEhOutput;pos.X=x;pos.Y=y
5、;hOutput=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(hOutput,pos);}voidwelcometogame()〃开始界面{system("titleC语言程序游戏之推箱子”);Pos(31z13);printfC欢迎来到推箱子游戏!”);Pos(55,25);printff"作者:小葱”);system("pause");system(Hcls");Pos(29/12);printf("fflf.I控制人物的移动。“);Pos(29,
6、13);printf(H按F2重新开始此局。");Pos(29,14);printf(”按ESC结束游戏。");system("pause");system("cls");}voidstartgame()〃开始游戏{while(l){system("cls");Pos(25,5);printfC*第%(1关HJevel+l);Pos(40,2);printf("按F2重新开始此局。");Pos(40,3);printf(“按ESC结束游戏。");loadmapf);gamecircle();if(regame==O)//
7、regame为0不重玩break;elseif(regame==l)//regame为1重玩regame=O;}Sleep(3OO);}voidloadmapf)〃加载地图{inti;Pos(2*(p->wall[0][0]+ofx),p->wall[0][l]+ofy);printf(”;for(i=l;p->wall[i][0]l=011p->wall[i][l]!=O;i++)//打印墙{Pos(2*(p->wall[i][0]+ofx),p->wall[i][l]+ofy);prin廿(”■”);}for(i=0;p
8、->des[i][0]!=011p->des[i][l]!=O;i++)//打印终点{Pos(2*(p->des[i][0]+ofx)/p->des[i][l]+ofy);printf("x");}for(i=0;p->box[i][0]!=O11p->box[i][l]!=0;i++)/