销售网站设计方案,网页生成图片,网站开发女生工资,市区网站建设情况文章目录#xff08;1#xff09;内容描述#xff08;2#xff09;功能#xff08;3#xff09;设计目的#xff08;4#xff09;总体设计#xff08;5#xff09;明显缺点#xff08;6#xff09;个人总结7. 实例实例一实例二实例三实例四实例五#xff1a;…
文章目录1内容描述2功能3设计目的4总体设计5明显缺点6个人总结7. 实例实例一实例二实例三实例四实例五1内容描述
描述用户进入页面后可以进行选关每关的关卡难度依次递增当你选择一关并通过后会自动进入下一关直到游戏结束。游戏过程中会有系统提示。 实现方式二维数组
2功能 1.菜单功能。玩家通过看目录按对应的键可以进入对应的管卡。 2.难度。关卡难度依次递增。 3.顺序功能。当玩家完成了一关后可顺利进入下一关继续挑战难度高的关卡。
3设计目的
训练学生掌握c的数据结构和综合变成能力和游戏开发能力等应用能力。
初步设想推箱子是比较经典的益智小游戏目的是在训练人的逻辑思考能力。 在一个狭小的空间中要求把木箱从起始位置处推放到指定位置。在空间中地方有限稍不小心就会出现无法移动或道路被堵住的情况而且箱子不能推不能拉。所以需要玩家利用正确的思维通关。
4总体设计
1初始化模块。该模块包括屏幕初始化和游戏第一关到最后一关的初始化。游戏每一关的初始化时显实现每一关的关键。 2画图模块。该模块主要是被其他模块调用用于画墙、在空地画箱子、在目的地画箱子、画小人和画目的地。 3移动箱子模块。该模块用于移动箱子包括目的地之间、空地之间和目的地与空地之间箱子的移动。 4移动小人模块。该模块是几个功能函数的集合。
5明显缺点 代码的冗余度很高需要进一步优化
6个人总结
总结验完课程设计后我发现了自己与别人的差距相对与别人我的代码不够简练内容不够多样画面不够美化。同时也深深的懂得自己需要变得优秀而不是一味的去完成作业应该把社团留的作业当作一次检验不仅能让自己发现错误更能让自己巩固知识革命尚未结束怎敢停滞不前
7. 实例
实例一
#includestdio.h
#includeiostream
#includecstdlib
#includestdlib.h
#includeconio.h
#includetime.h
#includestring.h
#includewindows.h
using namespace std;int total0;
char name[10],bel[20],names[10],bels[20];void SetColor(unsigned short ForeColor,unsigned short BackGroundColor)
{HANDLE hConGetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundColor%16*16));
}
/*1.先想先了解2. 2.1 地图 --贯穿整个数组 --全局的地图数组2.2 游戏项目的划分就是模块的划分原则一个功能使用一个模块功能与功能尽量不要有交叉的现象功能划分互不影响避免2.3 函数的设计2.3.1 函数的返回值函数唯一的遗留物问题举例判断正负的函数想清楚最终结果是赢还是输游戏结束 通过返回值表示下一步操作一般情况下只需要知道结果的函数才需要返回值 2.3.2 函数的参数形参就是实参的拷贝版复制品 1.要操作数据但是不想改变数据 2.说明函数要具体的操作对象 3.经验和代码量的堆积以及独立思考必须有自己的编程思想↑
*/
//二维数组即多个一维数组三维数组即多个二维数组 int map[5][12][13]
{//0 空的//1▋ 墙//3☆ 4□ 目的地和箱子//5※人//7⊙ 目的地3和箱子4在一起//8※ 人5和目的地3在一起 //数学艺术 上面数字,数字的加减与代表物都是精心策划的 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,1, 3, 1, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1,1, 4, 0, 0, 4, 0, 3, 1, 1, 1, 1, 1, 1,1, 0, 1, 0, 1, 1, 4, 1, 1, 1, 1, 1, 1,1, 0, 0, 5, 0, 0, 0, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,1, 3, 1, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1,1, 3, 4, 5, 4, 0, 3, 1, 1, 1, 1, 1, 1,1, 4, 1, 0, 1, 1, 4, 1, 1, 1, 1, 1, 1,1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 3, 0, 0, 0, 3, 1, 1, 1, 1, 1, 1, 1,1, 1, 4, 1, 0, 4, 1, 1, 1, 1, 1, 1, 1,1, 0, 0, 0, 5, 0, 3, 1, 1, 1, 1, 1, 1,1, 0, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,1, 0, 4, 0, 0, 0, 3, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 0, 0, 0, 0, 1, 0, 1, 0, 4, 0, 3, 1,1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 1, 0, 1, 1, 0, 1,1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1,1, 1, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1,1, 1, 0, 1, 1, 1, 1, 4, 1, 0, 1, 3, 1,1, 1, 0, 1, 1, 1, 0, 0, 0, 5, 1, 0, 1,1, 0, 0, 0, 1, 1, 0, 1, 0, 4, 3, 4, 1,1, 3, 0, 0, 0, 1, 3, 4, 0, 0, 0, 0, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 0, 0, 0, 0, 1, 3, 1, 1, 1, 1, 1, 1,1, 0, 4, 0, 0, 4, 0, 1, 1, 1, 1, 1, 1,1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1,1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1,1, 3, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};int cas0; //为0表示第一关 //你还要有一个量来记录每一关的箱子数或者说箱子和目的地在一起的总数
int boxSum[5]{3,4,4,6,2};
//地图绘制
void drawMap()
{ for(int i0;i12;i){for(int j0;j13;j){switch(map[cas][i][j]){case 0:printf( );break;case 1:printf(▋);break;case 3:printf(☆);break;case 4:printf(□);break;case 5:case 8:printf(※);break;case 7:printf(⊙);break; }}printf(\n);}
}//按键处理
void keyDown()
{//分析按键过程//定位人的坐标//人有两种情况1.人2.人和目的地在一起 int i,j;for(i0;i12;i){for(j0;j13;j){if(map[cas][i][j]5||map[cas][i][j]8){break;}}if(map[cas][i][j]5||map[cas][i][j]8){break;}} char ch_getch(); //看不见的字符输入 switch(ch){//小键盘也要注意 键码值上 72 下 80 左 75 右 77 case w:case W:case 72://358,8表示目的地和人在一起 //什么时候能走 0或者目的地//注意要判断的是什么此位置还是要走的位置 if(map[cas][i-1][j]0||map[cas][i-1][j]3){//新地方(map[i-1][j])人来了map[cas][i-1][j]5;//老地方(map[i][j])人走了map[cas][i][j]-5;} //下一个地方是箱子的话递进关系判断箱子的下一个地方是不是目的地或空地 //箱子有两种情况 1.箱子 2.箱子和目的地在一起 //如果下一个地方是箱子要进一步判断怎么走 else if(map[cas][i-1][j]4||map[cas][i-1][j]7){//做箱子的下一个地方判断能不能走if(map[cas][i-2][j]0||map[cas][i-2][j]3){//新的地方箱子来了map[cas][i-2][j]4;//箱子的位置箱子-4走了人5来了map[cas][i-1][j]1; //只显示最终结果 //原来的地方人走了map[cas][i][j]-5; }}break;case s:case S:case 80://什么时候能走 0或者目的地//注意要判断的是什么是要走的位置 if(map[cas][i1][j]0||map[cas][i1][j]3){//新地方(map[i-1][j])人来了map[cas][i1][j]5;//老地方(map[i][j])人走了map[cas][i][j]-5;} //下一个地方是箱子判断箱子的下一个地方是不是目的地或空地 //箱子有两种情况 1.箱子 2.箱子和目的地在一起 //如果下一个地方是箱子要进一步判断怎么走 else if(map[cas][i1][j]4||map[cas][i1][j]7){//做箱子的下一个地方判断能不能走if(map[cas][i2][j]0||map[cas][i2][j]3){//新的地方箱子来了map[cas][i2][j]4;//箱子的位置箱子-4走了人5来了map[cas][i1][j]1; //只显示最终结果 //原来的地方人走了map[cas][i][j]-5; }}break;case a:case A:case 75://什么时候能走 0或者目的地//注意要判断的是什么是要走的位置 if(map[cas][i][j-1]0||map[cas][i][j-1]3){//新地方(map[i-1][j])人来了map[cas][i][j-1]5;//老地方(map[i][j])人走了map[cas][i][j]-5;} //下一个地方是箱子判断箱子的下一个地方是不是目的地或空地 //箱子有两种情况 1.箱子 2.箱子和目的地在一起 //如果下一个地方是箱子要进一步判断怎么走 else if(map[cas][i][j-1]4||map[cas][i][j-1]7){//做箱子的下一个地方判断能不能走if(map[cas][i][j-2]0||map[cas][i][j-2]3){//新的地方箱子来了map[cas][i][j-2]4;//箱子的位置箱子-4走了人5来了map[cas][i][j-1]1; //只显示最终结果 //原来的地方人走了map[cas][i][j]-5; }}break;case d:case D:case 77://人什么时候能走 0或者目的地//注意要判断的是什么是要走的位置 if(map[cas][i][j1]0||map[cas][i][j1]3){//新地方(map[i-1][j])人来了map[cas][i][j1]5;//老地方(map[i][j])人走了map[cas][i][j]-5;} //下一个地方是箱子判断箱子的下一个地方是不是目的地或空地 //箱子有两种情况 1.箱子 2.箱子和目的地在一起 //如果下一个地方是箱子要进一步判断怎么走 else if(map[cas][i][j1]4||map[cas][i][j1]7){//做箱子的下一个地方判断,能不能走if(map[cas][i][j2]0||map[cas][i][j2]3){//新的地方箱子来了map[cas][i][j2]4;//箱子的位置箱子-4走了人5来了map[cas][i][j1]1; //只显示最终结果 //原来的地方人走了map[cas][i][j]-5;}}break;}
}//胜负判断
//用什么判断胜负想清楚箱子到达目的地的个数
int gameover()
{int count0;//所有的地方都找一遍for(int i0;i12;i){for(int j0;j13;j){if(map[cas][i][j]7)count;}}return count;
}
//箱子数是0的时候也是表示胜利
int gameover2()
{int countboxSum[cas];//所有的地方都找一遍for(int i0;i12;i){for(int j0;j13;j){if(map[cas][i][j]boxSum[cas])count--;}}return count;
}int main()
{printf(游戏开始);Sleep(1100);system(cls);printf(第%d关,cas1);getch();system(cls);while(1){drawMap();if(gameover()boxSum[cas]){cas;if(cas5)break;system(cls);printf(第%d关,cas1);Sleep(900);}keyDown();system(cls);}printf(Game over\n);system(pause);return 0;}
实例二
#includeiostream
#includeconio.h
#includestdlib.h
#includeWindows.h
using namespace std;
int mapsecond[11][13] {{0,0,0,1,1,1,1,1,1,1,0,0,0},{1,1,1,1,0,0,0,0,0,1,0,0,0},{1,0,0,0,3,1,1,1,0,1,0,0,0},{1,0,1,0,1,0,0,0,0,1,1,0,0},{1,0,1,0,4,0,4,1,3,0,1,0,0},{1,0,1,0,0,1,0,0,1,0,1,0,0},{1,0,3,1,4,0,4,0,1,0,1,0,0},{1,1,0,0,0,0,1,0,1,0,1,1,1},{0,1,0,1,1,1,3,0,0,0,5,0,1},{0,1,0,0,0,0,0,1,1,0,0,0,1},{0,1,1,1,1,1,1,1,1,1,1,1,1},
};
int mapfourth[9][11] {{0,1,1,1,1,1,1,1,1,1,0}, {0,1,0,0,0,1,0,0,0,1,0}, {0,1,0,4,4,4,4,4,0,1,0}, {0,1,0,4,0,4,0,4,0,1,1}, {0,1,0,0,0,0,0,0,4,0,1}, {1,1,0,1,1,1,1,0,4,0,1},{1,0,8,3,3,3,3,1,0,0,1},{1,0,3,3,3,3,3,0,0,1,1},{1,1,1,1,1,1,1,1,1,1,0},
};
int mapthird[7][8] {{0,1,1,1,1,1,1,0},{0,1,0,0,0,0,1,1},{1,1,3,1,1,4,0,1},{1,0,3,3,4,0,0,1},{1,0,0,1,4,0,0,1},{1,0,0,5,0,1,1,1},{1,1,1,1,1,1,0,0},
};
int mapfirst[7][8] {{1,1,1,1,1,1,1,1},{1,0,0,0,0,0,0,1},{1,0,1,1,0,1,0,1},{1,0,3,4,0,4,3,1},{1,0,1,1,0,1,0,1},{1,0,0,0,5,0,0,1},{1,1,1,1,1,1,1,1},
};
void drawGamethird() {for(int a0; a7;a) //0:空地 1 ■表示墙 3☆ 目的地 4★箱子 5.※人 7.⊙表示箱子推到了目的的显示//8:※人到达目的地显示人{for(int k0; k8; k) {switch(mapthird[a][k]) {case 0:cout ;break;case 1:cout■;break;case 3:cout☆;break;case 4:cout★;break;case 5:cout※;break;case 7:cout⊙;break;case 8:cout※;break;}}coutendl;}
}
void drawGamesecond() {for(int b0; b11;b){for(int z0; z13; z) {switch(mapsecond[b][z]) {case 0:cout ;break;case 1:cout■;break;case 3:cout☆;break;case 4:cout★;break;case 5:cout※;break;case 7:cout⊙;break;case 8:cout※;break;}}coutendl;}
}
void drawGamefourth() { for(int c0; c9;c){for(int d0; d11; d) {switch(mapfourth[c][d]) {case 0:cout ;break;case 1:cout■;break;case 3:cout☆;break;case 4:cout★;break;case 5:cout※;break;case 7:cout⊙;break;case 8:cout※;break;}}coutendl;}
}
void drawGamefirst() {for(int e0; e7; e){for(int f0; f8; f) {switch(mapfirst[e][f]) {case 0:cout ;break;case 1:cout■;break;case 3:cout☆;break;case 4:cout★;break;case 5:cout※;break;case 7:cout⊙;break;case 8:cout※;break;}}coutendl;}
}
void keydownfourth() { int i,j;for(int a0; a9; a) {for(int k0; k11; k) {if(mapfourth[a][k]5||mapfourth[a][k]8) {ia;jk;}}}char chgetch();switch(ch) {case W:case w:case 72:if(mapfourth[i-1][j]0||mapfourth[i-1][j]3) { mapfourth[i][j]mapfourth[i][j]-5;mapfourth[i-1][j]mapfourth[i-1][j]5; } else if(mapfourth[i-1][j]4||mapfourth[i-1][j]7) { if(mapfourth[i-2][j]0||mapfourth[i-2][j]3) { mapfourth[i-2][j]mapfourth[i-2][j]4;mapfourth[i-1][j]mapfourth[i-1][j]1;mapfourth[i][j]mapfourth[i][j]-5;}}break;case s:case S:case 80:if(mapfourth[i1][j]0||mapfourth[i1][j]3) { mapfourth[i][j]mapfourth[i][j]-5;mapfourth[i1][j]mapfourth[i1][j]5; } else if(mapfourth[i1][j]4||mapfourth[i1][j]7) { if(mapfourth[i2][j]0||mapfourth[i2][j]3) { mapfourth[i2][j]mapfourth[i2][j]4;mapfourth[i1][j]mapfourth[i1][j]1;mapfourth[i][j]mapfourth[i][j]-5;}}break;case a:case A:case 75:if(mapfourth[i][j-1]0||mapfourth[i][j-1]3) { mapfourth[i][j]mapfourth[i][j]-5;mapfourth[i][j-1]mapfourth[i][j-1]5; } else if(mapfourth[i][j-1]4||mapfourth[i][j-1]7) { if(mapfourth[i][j-2]0||mapfourth[i][j-2]3) { mapfourth[i][j-2]mapfourth[i][j-2]4;mapfourth[i][j-1]mapfourth[i][j-1]1;mapfourth[i][j]mapfourth[i][j]-5;}}break;case D:case d:case 77:if(mapfourth[i][j1]0||mapfourth[i][j1]3) { mapfourth[i][j]mapfourth[i][j]-5;mapfourth[i][j1]mapfourth[i][j1]5; } else if(mapfourth[i][j1]4||mapfourth[i][j1]7) { if(mapfourth[i][j2]0||mapfourth[i][j2]3) { mapfourth[i][j2]mapfourth[i][j2]4;mapfourth[i][j1]mapfourth[i][j1]1;mapfourth[i][j]mapfourth[i][j]-5;}}break;}
}
void keydownsecond() { int i,j;for(int b0; b11; b) {for(int z0; z13; z) {if(mapsecond[b][z]5||mapsecond[b][z]8) {ib;jz;}}}char chgetch();switch(ch) {case W:case w:case 72:if(mapsecond[i-1][j]0||mapsecond[i-1][j]3) { mapsecond[i][j]mapsecond[i][j]-5;mapsecond[i-1][j]mapsecond[i-1][j]5; } else if(mapsecond[i-1][j]4||mapsecond[i-1][j]7) { if(mapsecond[i-2][j]0||mapsecond[i-2][j]3) { mapsecond[i-2][j]mapsecond[i-2][j]4;mapsecond[i-1][j]mapsecond[i-1][j]1;mapsecond[i][j]mapsecond[i][j]-5;}}break;case s:case S:case 80:if(mapsecond[i1][j]0||mapsecond[i1][j]3) { mapsecond[i][j]mapsecond[i][j]-5;mapsecond[i1][j]mapsecond[i1][j]5; } else if(mapsecond[i1][j]4||mapsecond[i1][j]7) { if(mapsecond[i2][j]0||mapsecond[i2][j]3) { mapsecond[i2][j]mapsecond[i2][j]4;mapsecond[i1][j]mapsecond[i1][j]1;mapsecond[i][j]mapsecond[i][j]-5;}}break;case a:case A:case 75:if(mapsecond[i][j-1]0||mapsecond[i][j-1]3) { mapsecond[i][j]mapsecond[i][j]-5;mapsecond[i][j-1]mapsecond[i][j-1]5; } else if(mapsecond[i][j-1]4||mapsecond[i][j-1]7) { if(mapsecond[i][j-2]0||mapsecond[i][j-2]3) { mapsecond[i][j-2]mapsecond[i][j-2]4;mapsecond[i][j-1]mapsecond[i][j-1]1;mapsecond[i][j]mapsecond[i][j]-5;}}break;case D:case d:case 77:if(mapsecond[i][j1]0||mapsecond[i][j1]3) { mapsecond[i][j]mapsecond[i][j]-5;mapsecond[i][j1]mapsecond[i][j1]5; } else if(mapsecond[i][j1]4||mapsecond[i][j1]7) { if(mapsecond[i][j2]0||mapsecond[i][j2]3) { mapsecond[i][j2]mapsecond[i][j2]4;mapsecond[i][j1]mapsecond[i][j1]1;mapsecond[i][j]mapsecond[i][j]-5;}}break;}
}
void keydownthird() { int i,j;for(int c0; c7; c) {for(int d0; d8; d) {if(mapthird[c][d]5||mapthird[c][d]8) {ic;jd;}}}char chgetch();switch(ch) {case W:case w:case 72:if(mapthird[i-1][j]0||mapthird[i-1][j]3) { mapthird[i][j]mapthird[i][j]-5;mapthird[i-1][j]mapthird[i-1][j]5; } else if(mapthird[i-1][j]4||mapthird[i-1][j]7) { if(mapthird[i-2][j]0||mapthird[i-2][j]3) { mapthird[i-2][j]mapthird[i-2][j]4;mapthird[i-1][j]mapthird[i-1][j]1;mapthird[i][j]mapthird[i][j]-5;}}break;case s:case S:case 80:if(mapthird[i1][j]0||mapthird[i1][j]3) { mapthird[i][j]mapthird[i][j]-5;mapthird[i1][j]mapthird[i1][j]5; } else if(mapthird[i1][j]4||mapthird[i1][j]7) { if(mapthird[i2][j]0||mapthird[i2][j]3) { mapthird[i2][j]mapthird[i2][j]4;mapthird[i1][j]mapthird[i1][j]1;mapthird[i][j]mapthird[i][j]-5;}}break;case a:case A:case 75:if(mapthird[i][j-1]0||mapthird[i][j-1]3) { mapthird[i][j]mapthird[i][j]-5;mapthird[i][j-1]mapthird[i][j-1]5; } else if(mapthird[i][j-1]4||mapthird[i][j-1]7) { if(mapthird[i][j-2]0||mapthird[i][j-2]3) { mapthird[i][j-2]mapthird[i][j-2]4;mapthird[i][j-1]mapthird[i][j-1]1;mapthird[i][j]mapthird[i][j]-5;}}break;case D:case d:case 77:if(mapthird[i][j1]0||mapthird[i][j1]3) {mapthird[i][j]mapthird[i][j]-5;mapthird[i][j1]mapthird[i][j1]5;} else if(mapthird[i][j1]4||mapthird[i][j1]7) {if(mapthird[i][j2]0||mapthird[i][j2]3) { mapthird[i][j2]mapthird[i][j2]4;mapthird[i][j1]mapthird[i][j1]1;mapthird[i][j]mapthird[i][j]-5;}}break;}
}
void keydownfirst() { int i,j;for(int e0; e7; e) {for(int f0; f8; f) {if(mapfirst[e][f]5||mapfirst[e][f]8) {ie;jf;}}}char chgetch();switch(ch) {case W:case w:case 72:if(mapfirst[i-1][j]0||mapfirst[i-1][j]3) { mapfirst[i][j]mapfirst[i][j]-5;mapfirst[i-1][j]mapfirst[i-1][j]5; } else if(mapfirst[i-1][j]4||mapfirst[i-1][j]7) { if(mapfirst[i-2][j]0||mapfirst[i-2][j]3) { mapfirst[i-2][j]mapfirst[i-2][j]4;mapfirst[i-1][j]mapfirst[i-1][j]1;mapfirst[i][j]mapfirst[i][j]-5;}}break;case s:case S:case 80:if(mapfirst[i1][j]0||mapfirst[i1][j]3) { mapfirst[i][j]mapfirst[i][j]-5;mapfirst[i1][j]mapfirst[i1][j]5; } else if(mapfirst[i1][j]4||mapfirst[i1][j]7) { if(mapfirst[i2][j]0||mapfirst[i2][j]3) { mapfirst[i2][j]mapfirst[i2][j]4;mapfirst[i1][j]mapfirst[i1][j]1;mapfirst[i][j]mapfirst[i][j]-5;}}break;case a:case A:case 75:if(mapfirst[i][j-1]0||mapfirst[i][j-1]3) { mapfirst[i][j]mapfirst[i][j]-5;mapfirst[i][j-1]mapfirst[i][j-1]5; } else if(mapfirst[i][j-1]4||mapfirst[i][j-1]7) { if(mapfirst[i][j-2]0||mapfirst[i][j-2]3) { mapfirst[i][j-2]mapfirst[i][j-2]4;mapfirst[i][j-1]mapfirst[i][j-1]1;mapfirst[i][j]mapfirst[i][j]-5;}}break;case D:case d:case 77:if(mapfirst[i][j1]0||mapfirst[i][j1]3) { mapfirst[i][j]mapfirst[i][j]-5;mapfirst[i][j1]mapfirst[i][j1]5; } else if(mapfirst[i][j1]4||mapfirst[i][j1]7) { if(mapfirst[i][j2]0||mapfirst[i][j2]3) { mapfirst[i][j2]mapfirst[i][j2]4;mapfirst[i][j1]mapfirst[i][j1]1;mapfirst[i][j]mapfirst[i][j]-5;}}break;}
}
void gameoverfourth ()
{int k0;for(int i0;i9;i){for(int j0;j11;j){if(mapfourth[i][j]4)k;}}if(k0){cout恭喜你你赢了endl;exit(0);}
}
void gameoverthird()
{int k0;for(int i0;i7;i){for(int j0;j8;j){if(mapthird[i][j]4)k;}} if(k0) { cout恭喜你顺利进入下一关endl;system(cls);while(1){system(cls);drawGamefourth();cout当前关卡第2关endl;cout本关不给提示祝你好运endl;keydownfourth();gameoverfourth();}}
}
void gameoversecond()
{int k0;for(int i0;i11;i){for(int j0;j13;j){if(mapsecond[i][j]4)k;}}if(k0){cout恭喜你你通过了此关endl;Sleep(1000);while(1){system(cls);drawGamethird();cout当前关卡第3关endl;cout 这一关比较难endl;keydownthird();gameoverthird();}}
}
void gameoverfirst()
{int k0;for(int i0; i7; i) {for (int j0; j8; j) {if(mapfirst[i][j]4)k;}}while(k0){printf(恭喜你你通过过了此关\n);Sleep(1000);while(1) { system(cls);drawGamesecond();cout当前关卡第2关endl;coutD右1B上1右2下1A左1上2D下2右1A右1C下1左2上1D右2左4.endl;keydownsecond();gameoversecond();}}
}
int main() {while(1){ system(color 3F );cout———————请选关————————endl;cout 1. 第一关 endl;cout 2. 第二关 endl;cout 3. 第三关 endl;cout 4. 最后一关 endl;cout 5.退出游戏 endl;cout提示每通关一次你都会进入下一关endl;cout注意0:空地 1 ■表示墙 3☆ 目的地 4★箱子 5.※人 7.⊙表示箱子推到了目的的显示 8:※人到达目的地endl;int n;cinn; if(n1){while(1){system(cls);drawGamefirst();cout 当前关卡第[1]关endl; keydownfirst();gameoverfirst();}}if(n2){ while(1) { system(cls);drawGamesecond(); cout 当前关卡第[2]关endl;cout 提示D右1B上1右2下1A左1上2D下2右1A右1C下1左2上1D右2左4.endl; keydownsecond();gameoversecond();}}if(n3){while(1) { system(cls);drawGamethird();cout 当前关卡第[3]关endl; cout 这一关比较难endl;keydownthird();gameoverthird(); }}if(n4){while(1) { system(cls);drawGamefourth();cout 当前关卡为最后一关endl; cout本关不给提示祝你好运endl; keydownfourth();gameoverfourth();}}if(n5)system(cls);cout已经退出游戏endl;exit(-1);
}return 0;
}实例三
#includeiostream
#includewindows.h
#includeconio.h
//#includestdlib.h
using namespace std;//0.空地 1.墙 2.人 3.箱子 4.目的地 5.箱子与目的地 6.人与目的地
int map[5][10][10]
{{{0,0,0,0,1,1,1,0,0,0},{0,0,0,0,1,4,1,0,0,0},{0,0,0,0,1,0,1,0,0,0},{0,0,0,0,1,3,1,0,0,0},{1,1,1,1,1,0,1,1,1,1},{1,4,0,0,3,2,3,0,4,1},{1,1,1,1,1,3,1,1,1,1},{0,0,0,0,1,0,1,0,0,0},{0,0,0,0,1,4,1,0,0,0},{0,0,0,0,1,1,1,0,0,0},},{{1,1,1,1,1,0,0,0,0,0},{1,0,0,0,1,0,0,0,0,0},{1,0,3,0,1,0,1,1,1,0},{1,0,3,0,1,0,1,4,1,0},{1,1,1,2,1,1,1,4,1,0},{0,1,1,3,0,0,0,4,1,0},{0,1,0,0,0,1,0,0,1,0},{0,1,0,0,0,1,1,1,1,0},{0,1,1,1,1,1,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,1,0,0,0,0,0,1,1,1},{1,1,3,1,1,1,0,0,0,1},{1,0,2,0,3,0,0,3,0,1},{1,0,4,4,1,0,3,0,1,1},{1,1,4,4,1,0,0,0,1,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,1,1,1,1,0,0,0,0,0},{1,1,0,0,1,0,0,0,0,0},{1,2,3,0,1,0,0,0,0,0},{1,1,3,0,1,1,0,0,0,0},{1,1,0,3,0,1,0,0,0,0},{1,4,3,0,0,1,0,0,0,0},{1,4,4,5,4,1,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,1,1,1,1,1,0,0,0,0},{0,1,2,0,1,1,1,0,0,0},{0,1,0,3,0,0,1,0,0,0},{1,1,1,0,1,0,1,1,0,0},{1,4,1,0,1,0,0,1,0,0},{1,4,3,0,0,1,0,1,0,0},{1,4,0,0,0,3,0,1,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},}
};int zongfen(int map[5][10][10],int level)
{int a0,i,j;for(i0;i10;i){for(j0;j10;j){if(map[level][i][j]4){a;}}}return a;
}//0.空地 1.墙 2.人 3.箱子 4.目的地 5.箱子与目的地 6.人与目的地
void getmap(int map[5][10][10],int level)
{for(int i0;i10;i){for(int j0;j10;j){switch(map[level][i][j]){case 0://空地cout ; break;case 1://墙 cout■; break;case 2://人 cout♀;break;case 3://箱子 cout□;break;case 4://目的地cout☆; break;case 5://箱子与目的地cout★; break;case 6://人与目的地cout♀; break;}}coutendl; }
}int main()
{system(mode con cols40 lines20);int score0;//分数int level0;char input;//输入字符system(color ed);while(1){system(cls);cout\t\t推箱子endl;cout\t选择关卡(共五关)endl;int l;cinl;if(l1l5){levell-1;break;}else{cout暂无该关卡endl;return 0; system(pause);}}int b[5];for(int q0;q5;q){b[q]zongfen(map,q);}while(1){system(cls);cout\t推箱子第level1关\t\tendl;cout基本操作w-上 s-下 a-左 d-右 *-退出endlendl;getmap(map,level);coutendl分数scoreendl;//输出分数 int i,j;for(i0;i10;i){for(j0;j10;j){if(map[level][i][j]2 || map[level][i][j]6)break;}if(map[level][i][j]2 || map[level][i][j]6)break;}cout坐标i1,j1endl;if(scoreb[level]){int o1;cout1.下一关endl2.退出endl(请输入两次回车)endl;while(o){int p;cinp;switch(p){case 1:level;score0;o0;break;case 2:o0;exit(0);break;default:cout无效操作endl;break;} }}input getch();//接受字符asdw //1.人前是空地//2.人前是目的地 //3.人前是箱子 //4.人前是箱子与目的地 switch(input){case w://1.人前是空地 if(map[level][i-1][j]0){map[level][i-1][j]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}//2.人前是目的地 if(map[level][i-1][j]4){map[level][i-1][j]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}//3.人前是箱子 if(map[level][i-1][j]3){//箱子前是空地if(map[level][i-2][j]0){map[level][i-2][j]3;map[level][i-1][j]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4;}else{map[level][i][j]0;}}//箱子前是目的地if(map[level][i-2][j]4){score;map[level][i-2][j]5;map[level][i-1][j]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}}//4.人前是箱子与目的地if(map[level][i-1][j]5){//箱子与目的地前是空地if(map[level][i-2][j]0){score--;map[level][i-2][j]3;map[level][i-1][j]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4;}else{map[level][i][j]0;}}//箱子与目的地前是目的地 if(map[level][i-2][j]4){map[level][i-2][j]5;map[level][i-1][j]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;} }}break;case a://1.人前是空地 if(map[level][i][j-1]0){map[level][i][j-1]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}//2.人前是目的地 if(map[level][i][j-1]4){map[level][i][j-1]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}//3.人前是箱子 if(map[level][i][j-1]3){//箱子前是空地if(map[level][i][j-2]0){map[level][i][j-2]3;map[level][i][j-1]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4;}else{map[level][i][j]0;}}//箱子前是目的地if(map[level][i][j-2]4){score;map[level][i][j-2]5;map[level][i][j-1]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}}//4.人前是箱子与目的地if(map[level][i][j-1]5){//箱子与目的地前是空地if(map[level][i][j-2]0){score--;map[level][i][j-2]3;map[level][i][j-1]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4;}else{map[level][i][j]0;}}//箱子与目的地前是目的地 if(map[level][i][j-2]4){map[level][i][j-2]5;map[level][i][j-1]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;} }}break;case s://1.人前是空地 if(map[level][i1][j]0){map[level][i1][j]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}//2.人前是目的地 if(map[level][i1][j]4){map[level][i1][j]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}//3.人前是箱子 if(map[level][i1][j]3){//箱子前是空地if(map[level][i2][j]0){map[level][i2][j]3;map[level][i1][j]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4;}else{map[level][i][j]0;}}//箱子前是目的地if(map[level][i2][j]4){score;map[level][i2][j]5;map[level][i1][j]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}}//4.人前是箱子与目的地if(map[level][i1][j]5){//箱子与目的地前是空地if(map[level][i2][j]0){score--;map[level][i2][j]3;map[level][i1][j]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4;}else{map[level][i][j]0;}}//箱子与目的地前是目的地 if(map[level][i2][j]4){map[level][i2][j]5;map[level][i1][j]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;} }}break;case d://1.人前是空地 if(map[level][i][j1]0){map[level][i][j1]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}//2.人前是目的地 if(map[level][i][j1]4){map[level][i][j1]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}//3.人前是箱子 if(map[level][i][j1]3){//箱子前是空地if(map[level][i][j2]0){map[level][i][j2]3;map[level][i][j1]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4;}else{map[level][i][j]0;}}//箱子前是目的地if(map[level][i][j2]4){score;map[level][i][j2]5;map[level][i][j1]2;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}}//4.人前是箱子与目的地if(map[level][i][j1]5){//箱子与目的地前是空地if(map[level][i][j2]0){score--;map[level][i][j2]3;map[level][i][j1]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4;}else{map[level][i][j]0;}}//箱子与目的地前是目的地 if(map[level][i][j2]4){map[level][i][j2]5;map[level][i][j1]6;if(map[level][i][j]6){//人在目的地map[level][i][j]4; }else{map[level][i][j]0;}}}break;case *:exit(0);break; default:break;}}return 0;
}实例四
#includestdio.h
#includeconio.h
#includewindows.h
int map0();
int map1();
int map2();
int map3();
int map4();
int shuying(int map[9][11]);
int zhuyao(int map[9][11]);
int map0()
{int k1;static int map[9][11]{{0,0,0,0,1,1,1,0,0,0,0},{0,0,0,0,1,4,1,0,0,0,0},{0,0,0,0,1,0,1,1,1,1,1},{1,1,1,1,1,3,3,0,0,4,1},{1,4,0,0,3,2,0,1,1,1,1}, {1,1,1,1,1,1,3,1,0,0,0},{0,0,0,0,0,1,0,1,0,0,0},{0,0,0,0,0,1,4,1,0,0,0},{0,0,0,0,0,1,1,1,0,0,0}};kshuying(map);if(k0)return k;kzhuyao(map);printf( );if(k2)return k;
// return 2;}
int map1()
{static int map[9][11]{{0,0,0,0,1,1,1,1,1,1,1},{1,1,1,1,1,0,0,0,0,0,1},{1,4,1,0,0,0,0,0,0,0,1},{1,0,3,0,3,0,0,1,2,1,1},{1,0,0,0,0,0,0,0,3,0,1},{1,1,0,0,0,0,0,0,0,0,1},{0,1,4,0,1,0,0,0,1,0,1},{0,1,1,0,0,0,0,0,4,1,1},{0,0,1,1,1,1,1,1,1,1,0}};int k1;kshuying(map);if(k0)return k;kzhuyao(map);if(k2)return k;
}
int map2()
{static int map[9][11]{{0,0,1,1,1,1,1,1,1,1,1},{0,1,1,4,0,0,0,0,0,2,1},{1,1,0,0,0,0,0,1,0,1,1},{1,0,0,1,0,0,0,0,3,0,1},{1,0,3,3,4,0,0,0,0,0,1},{1,1,0,1,0,0,0,0,1,1,1},{0,1,4,0,0,0,0,0,1,0,0},{0,1,1,0,0,0,0,0,1,0,0},{0,0,1,1,1,1,1,1,1,0,0}};int k1;kshuying(map);if(k0)return k;kzhuyao(map); if(k2)return k;
}
int map3()
{static int map[9][11]{{0,0,1,1,1,1,0,0,0,0,0},{1,1,1,4,0,1,1,1,1,1,0},{1,4,1,0,0,0,0,0,0,1,1},{1,0,3,0,1,1,0,0,0,0,1},{1,2,0,3,0,0,0,0,4,0,1},{1,0,0,0,0,0,0,0,0,1,1},{1,1,1,0,0,0,0,3,1,1,0},{0,0,1,1,0,0,0,0,1,0,0},{0,0,0,1,1,1,1,1,1,0,0}};int k1;kshuying(map);if(k0)return k;kzhuyao(map); if(k2)return k;
}
int map4()
{static int map[9][11]{{0,1,1,1,1,1,1,1,1,1,0},{0,1,0,0,0,1,0,0,0,1,0},{0,1,0,0,3,0,0,0,0,1,0},{0,1,0,3,0,3,3,3,0,1,1},{0,1,0,0,0,2,0,0,0,0,1},{1,1,0,0,1,1,1,0,3,0,1},{1,0,4,4,0,4,0,0,0,0,1},{1,0,4,4,0,4,4,3,0,1,1},{1,1,1,1,1,1,1,1,1,1,0}};int k1;kshuying(map);if(k0)return k;kzhuyao(map);if(k2)return k;
}
int shuying(int map[9][11])
{int i,j,a0;for(i0;i9;i){for(j0;j11;j){if(map[i][j]3)a;}}if(a0){printf(恭喜你过关^_^);system(pause);return a;}elsereturn 3;
}
int zhuyao(int map[9][11])
{int i,j,a,b,c;for(i0;i9;i){for(j0;j11;j){if(map[i][j]0)printf( );if(map[i][j]1)printf(■);if(map[i][j]2) printf(♀); if(map[i][j]3)printf(◇); if(map[i][j]4)printf(◎); if(map[i][j]6)printf(♂); if(map[i][j]7)printf(◆);}printf(\n);}for(i0;i9;i){for(j0;j11;j){if(map[i][j]2||map[i][j]6){ai;bj;}}} int k1;cgetch();if(cp)return 2;switch(c){case w:case W:case 72:if(map[a-1][b]0||map[a-1][b]4){map[a-1][b]2;map[a][b]-2;}if(map[a-1][b]3||map[a-1][b]7){if(map[a-2][b]0||map[a-2][b]4){map[a][b]-2;map[a-1][b]-1;map[a-2][b]3;}}break;case s :case S:case 80:if(map[a1][b]0||map[a1][b]4){map[a1][b]2;map[a][b]-2;}if(map[a1][b]3||map[a1][b]7){if(map[a2][b]0||map[a2][b]4){map[a1][b]-1;map[a][b]-2;map[a2][b]3;}}break;case a:case A:case 75:if(map[a][b-1]0||map[a][b-1]4){map[a][b]-2;map[a][b-1]2;}if(map[a][b-1]3||map[a][b-1]7){if(map[a][b-2]0||map[a][b-2]4){map[a][b]-2;map[a][b-1]-1;map[a][b-2]3;}}break;case d:case D:case 77 :if(map[a][b1]0||map[a][b1]4){map[a][b]-2;map[a][b1]2;}if(map[a][b1]3||map[a][b1]7){if(map[a][b2]0||map[a][b2]4){map[a][b]-2;map[a][b1]-1;map[a][b2]3;}}break;//casep: k2; break; }printf( );//system(pause);//if(k2)return k;
}
int main()
{printf(***********推箱子游戏欢迎你***********\n);printf(* *\n);printf(* ♀:自己的位置 *\n);printf(* ◇:箱子的位置 *\n);printf(* ◎:终点的位置 *\n);printf(* 游戏规则 *\n);printf(* 控制♀将◇推到◎的位置 *\n);printf(* 按“w,s,a,d”或方向键控制移动 *\n);printf(* 按“p”退出游戏 *\n);printf(**************************************\n);system(pause);int k1;while(1) {system(cls);kmap0();if(k0){break;}if(k2)return 0;}while(1){system(cls);kmap1();if(k0)break;if(k2)return 0;}while(1){system(cls);kmap2();if(k0)break;if(k2)return 0;}while(1){system(cls);kmap3();if(k0)break;if(k2)return 0;}while(1){system(cls);kmap4();if(k0)break;if(k2)return 0;}
}实例五
#includeiostream
#includeconio.h
#includestdlib.h
#includeWindows.h
using namespace std;
int mapsecond[11][13] {{0,0,0,1,1,1,1,1,1,1,0,0,0},{1,1,1,1,0,0,0,0,0,1,0,0,0},{1,0,0,0,3,1,1,1,0,1,0,0,0},{1,0,1,0,1,0,0,0,0,1,1,0,0},{1,0,1,0,4,0,4,1,3,0,1,0,0},{1,0,1,0,0,1,0,0,1,0,1,0,0},{1,0,3,1,4,0,4,0,1,0,1,0,0},{1,1,0,0,0,0,1,0,1,0,1,1,1},{0,1,0,1,1,1,3,0,0,0,5,0,1},{0,1,0,0,0,0,0,1,1,0,0,0,1},{0,1,1,1,1,1,1,1,1,1,1,1,1},
};
int mapfourth[9][11] {{0,1,1,1,1,1,1,1,1,1,0}, {0,1,0,0,0,1,0,0,0,1,0}, {0,1,0,4,4,4,4,4,0,1,0}, {0,1,0,4,0,4,0,4,0,1,1}, {0,1,0,0,0,0,0,0,4,0,1}, {1,1,0,1,1,1,1,0,4,0,1},{1,0,8,3,3,3,3,1,0,0,1},{1,0,3,3,3,3,3,0,0,1,1},{1,1,1,1,1,1,1,1,1,1,0},
};
int mapthird[7][8] {{0,1,1,1,1,1,1,0},{0,1,0,0,0,0,1,1},{1,1,3,1,1,4,0,1},{1,0,3,3,4,0,0,1},{1,0,0,1,4,0,0,1},{1,0,0,5,0,1,1,1},{1,1,1,1,1,1,0,0},
};
int mapfirst[7][8] {{1,1,1,1,1,1,1,1},{1,0,0,0,0,0,0,1},{1,0,1,1,0,1,0,1},{1,0,3,4,0,4,3,1},{1,0,1,1,0,1,0,1},{1,0,0,0,5,0,0,1},{1,1,1,1,1,1,1,1},
};
void drawGamethird() {for(int a0; a7;a) //0:空地 1 ■表示墙 3☆ 目的地 4★箱子 5.※人 7.⊙表示箱子推到了目的的显示//8:※人到达目的地显示人{for(int k0; k8; k) {switch(mapthird[a][k]) {case 0:cout ;break;case 1:cout■;break;case 3:cout☆;break;case 4:cout★;break;case 5:cout※;break;case 7:cout⊙;break;case 8:cout※;break;}}coutendl;}
}
void drawGamesecond() {for(int b0; b11;b){for(int z0; z13; z) {switch(mapsecond[b][z]) {case 0:cout ;break;case 1:cout■;break;case 3:cout☆;break;case 4:cout★;break;case 5:cout※;break;case 7:cout⊙;break;case 8:cout※;break;}}coutendl;}
}
void drawGamefourth() { for(int c0; c9;c){for(int d0; d11; d) {switch(mapfourth[c][d]) {case 0:cout ;break;case 1:cout■;break;case 3:cout☆;break;case 4:cout★;break;case 5:cout※;break;case 7:cout⊙;break;case 8:cout※;break;}}coutendl;}
}
void drawGamefirst() {for(int e0; e7; e){for(int f0; f8; f) {switch(mapfirst[e][f]) {case 0:cout ;break;case 1:cout■;break;case 3:cout☆;break;case 4:cout★;break;case 5:cout※;break;case 7:cout⊙;break;case 8:cout※;break;}}coutendl;}
}
void keydownfourth() { int i,j;for(int a0; a9; a) {for(int k0; k11; k) {if(mapfourth[a][k]5||mapfourth[a][k]8) {ia;jk;}}}char chgetch();//2.找到开始移动//getch() 直接接收 不显示回文 getchar() 接受键盘字符显示回文可以修改 enter键结束switch(ch) {//1.小键盘//上72 下80 左75 右77// 2.移动的原理//0:空地 1 ■表示墙 3☆ 目的地 4★:箱子 5.※人 7.⊙表示箱子推到了目的的显示//8:※人到达目的地显示人case W:case w://二维数组具有行和列的 首先要判断选择结构能走然后在走 上走 列不变行变case 72:if(mapfourth[i-1][j]0||mapfourth[i-1][j]3) { //空格或者目的地mapfourth[i][j]mapfourth[i][j]-5;//人走了mapfourth[i-1][j]mapfourth[i-1][j]5; //人来了} else if(mapfourth[i-1][j]4||mapfourth[i-1][j]7) { //人上面是不是箱子 或者箱子到达了目的地if(mapfourth[i-2][j]0||mapfourth[i-2][j]3) { //箱子上面是不是目的地或空地mapfourth[i-2][j]mapfourth[i-2][j]4;mapfourth[i-1][j]mapfourth[i-1][j]1;mapfourth[i][j]mapfourth[i][j]-5;}}break;case s:case S:case 80:if(mapfourth[i1][j]0||mapfourth[i1][j]3) { //空格或者目的地mapfourth[i][j]mapfourth[i][j]-5;//人走了mapfourth[i1][j]mapfourth[i1][j]5; //人来了} else if(mapfourth[i1][j]4||mapfourth[i1][j]7) { //人上面是不是箱子 或者箱子到达了目的地if(mapfourth[i2][j]0||mapfourth[i2][j]3) { //箱子上面是不是目的地或空地mapfourth[i2][j]mapfourth[i2][j]4;mapfourth[i1][j]mapfourth[i1][j]1;mapfourth[i][j]mapfourth[i][j]-5;}}break;case a:case A:case 75:if(mapfourth[i][j-1]0||mapfourth[i][j-1]3) { //空格或者目的地mapfourth[i][j]mapfourth[i][j]-5;//人走了mapfourth[i][j-1]mapfourth[i][j-1]5; //人来了} else if(mapfourth[i][j-1]4||mapfourth[i][j-1]7) { //人上面是不是箱子 或者箱子到达了目的地if(mapfourth[i][j-2]0||mapfourth[i][j-2]3) { //箱子上面是不是目的地或空地mapfourth[i][j-2]mapfourth[i][j-2]4;mapfourth[i][j-1]mapfourth[i][j-1]1;mapfourth[i][j]mapfourth[i][j]-5;}}break;case D:case d:case 77:if(mapfourth[i][j1]0||mapfourth[i][j1]3) { //空格或者目的地mapfourth[i][j]mapfourth[i][j]-5;//人走了mapfourth[i][j1]mapfourth[i][j1]5; //人来了} else if(mapfourth[i][j1]4||mapfourth[i][j1]7) { //人上面是不是箱子 或者箱子到达了目的地if(mapfourth[i][j2]0||mapfourth[i][j2]3) { //箱子上面是不是目的地或空地mapfourth[i][j2]mapfourth[i][j2]4;mapfourth[i][j1]mapfourth[i][j1]1;mapfourth[i][j]mapfourth[i][j]-5;}}break;}
}
void keydownsecond() { //按键处理int i,j;for(int b0; b11; b) {for(int z0; z13; z) {if(mapsecond[b][z]5||mapsecond[b][z]8) {ib;jz;}}}//2.找到开始移动char chgetch();//getch() 直接接收 不显示回文 getchar() 接受键盘字符显示回文可以修改 enter键结束switch(ch) {//1.小键盘//上72 下80 左75 右77// 2.移动的原理//0:空地 1 ■表示墙 3☆ 目的地 4★:箱子 5.※人 7.⊙表示箱子推到了目的的显示//8:※人到达目的地显示人case W:case w://二维数组具有行和列的 首先要判断选择结构能走然后在走 上走 列不变行变case 72:if(mapsecond[i-1][j]0||mapsecond[i-1][j]3) { //空格或者目的地mapsecond[i][j]mapsecond[i][j]-5;//人走了mapsecond[i-1][j]mapsecond[i-1][j]5; //人来了} else if(mapsecond[i-1][j]4||mapsecond[i-1][j]7) { //人上面是不是箱子 或者箱子到达了目的地if(mapsecond[i-2][j]0||mapsecond[i-2][j]3) { //箱子上面是不是目的地或空地mapsecond[i-2][j]mapsecond[i-2][j]4;mapsecond[i-1][j]mapsecond[i-1][j]1;mapsecond[i][j]mapsecond[i][j]-5;}}break;case s:case S:case 80:if(mapsecond[i1][j]0||mapsecond[i1][j]3) { //空格或者目的地mapsecond[i][j]mapsecond[i][j]-5;//人走了mapsecond[i1][j]mapsecond[i1][j]5; //人来了} else if(mapsecond[i1][j]4||mapsecond[i1][j]7) { //人上面是不是箱子 或者箱子到达了目的地if(mapsecond[i2][j]0||mapsecond[i2][j]3) { //箱子上面是不是目的地或空地mapsecond[i2][j]mapsecond[i2][j]4;mapsecond[i1][j]mapsecond[i1][j]1;mapsecond[i][j]mapsecond[i][j]-5;}}break;case a:case A:case 75:if(mapsecond[i][j-1]0||mapsecond[i][j-1]3) { //空格或者目的地mapsecond[i][j]mapsecond[i][j]-5;//人走了mapsecond[i][j-1]mapsecond[i][j-1]5; //人来了} else if(mapsecond[i][j-1]4||mapsecond[i][j-1]7) { //人上面是不是箱子 或者箱子到达了目的地if(mapsecond[i][j-2]0||mapsecond[i][j-2]3) { //箱子上面是不是目的地或空地mapsecond[i][j-2]mapsecond[i][j-2]4;mapsecond[i][j-1]mapsecond[i][j-1]1;mapsecond[i][j]mapsecond[i][j]-5;}}break;case D:case d:case 77:if(mapsecond[i][j1]0||mapsecond[i][j1]3) { //空格或者目的地mapsecond[i][j]mapsecond[i][j]-5;//人走了mapsecond[i][j1]mapsecond[i][j1]5; //人来了} else if(mapsecond[i][j1]4||mapsecond[i][j1]7) { //人上面是不是箱子 或者箱子到达了目的地if(mapsecond[i][j2]0||mapsecond[i][j2]3) { //箱子上面是不是目的地或空地mapsecond[i][j2]mapsecond[i][j2]4;mapsecond[i][j1]mapsecond[i][j1]1;mapsecond[i][j]mapsecond[i][j]-5;}}break;}
}
void keydownthird() { //按键处理int i,j;for(int c0; c7; c) {for(int d0; d8; d) {if(mapthird[c][d]5||mapthird[c][d]8) {ic;jd;}}}char chgetch();switch(ch) {case W:case w:case 72:if(mapthird[i-1][j]0||mapthird[i-1][j]3) { mapthird[i][j]mapthird[i][j]-5;mapthird[i-1][j]mapthird[i-1][j]5; } else if(mapthird[i-1][j]4||mapthird[i-1][j]7) { if(mapthird[i-2][j]0||mapthird[i-2][j]3) { mapthird[i-2][j]mapthird[i-2][j]4;mapthird[i-1][j]mapthird[i-1][j]1;mapthird[i][j]mapthird[i][j]-5;}}break;case s:case S:case 80:if(mapthird[i1][j]0||mapthird[i1][j]3) { mapthird[i][j]mapthird[i][j]-5;mapthird[i1][j]mapthird[i1][j]5; } else if(mapthird[i1][j]4||mapthird[i1][j]7) { if(mapthird[i2][j]0||mapthird[i2][j]3) { mapthird[i2][j]mapthird[i2][j]4;mapthird[i1][j]mapthird[i1][j]1;mapthird[i][j]mapthird[i][j]-5;}}break;case a:case A:case 75:if(mapthird[i][j-1]0||mapthird[i][j-1]3) { mapthird[i][j]mapthird[i][j]-5;mapthird[i][j-1]mapthird[i][j-1]5; } else if(mapthird[i][j-1]4||mapthird[i][j-1]7) { if(mapthird[i][j-2]0||mapthird[i][j-2]3) { mapthird[i][j-2]mapthird[i][j-2]4;mapthird[i][j-1]mapthird[i][j-1]1;mapthird[i][j]mapthird[i][j]-5;}}break;case D:case d:case 77:if(mapthird[i][j1]0||mapthird[i][j1]3) {mapthird[i][j]mapthird[i][j]-5;mapthird[i][j1]mapthird[i][j1]5;} else if(mapthird[i][j1]4||mapthird[i][j1]7) {if(mapthird[i][j2]0||mapthird[i][j2]3) { mapthird[i][j2]mapthird[i][j2]4;mapthird[i][j1]mapthird[i][j1]1;mapthird[i][j]mapthird[i][j]-5;}}break;}
}
void keydownfirst() { int i,j;for(int e0; e7; e) {for(int f0; f8; f) {if(mapfirst[e][f]5||mapfirst[e][f]8) {ie;jf;}}}char chgetch();switch(ch) {case W:case w:case 72:if(mapfirst[i-1][j]0||mapfirst[i-1][j]3) { mapfirst[i][j]mapfirst[i][j]-5;mapfirst[i-1][j]mapfirst[i-1][j]5; } else if(mapfirst[i-1][j]4||mapfirst[i-1][j]7) { if(mapfirst[i-2][j]0||mapfirst[i-2][j]3) { mapfirst[i-2][j]mapfirst[i-2][j]4;mapfirst[i-1][j]mapfirst[i-1][j]1;mapfirst[i][j]mapfirst[i][j]-5;}}break;case s:case S:case 80:if(mapfirst[i1][j]0||mapfirst[i1][j]3) { mapfirst[i][j]mapfirst[i][j]-5;mapfirst[i1][j]mapfirst[i1][j]5; } else if(mapfirst[i1][j]4||mapfirst[i1][j]7) { if(mapfirst[i2][j]0||mapfirst[i2][j]3) { mapfirst[i2][j]mapfirst[i2][j]4;mapfirst[i1][j]mapfirst[i1][j]1;mapfirst[i][j]mapfirst[i][j]-5;}}break;case a:case A:case 75:if(mapfirst[i][j-1]0||mapfirst[i][j-1]3) { mapfirst[i][j]mapfirst[i][j]-5;mapfirst[i][j-1]mapfirst[i][j-1]5; } else if(mapfirst[i][j-1]4||mapfirst[i][j-1]7) { if(mapfirst[i][j-2]0||mapfirst[i][j-2]3) { mapfirst[i][j-2]mapfirst[i][j-2]4;mapfirst[i][j-1]mapfirst[i][j-1]1;mapfirst[i][j]mapfirst[i][j]-5;}}break;case D:case d:case 77:if(mapfirst[i][j1]0||mapfirst[i][j1]3) { mapfirst[i][j]mapfirst[i][j]-5;mapfirst[i][j1]mapfirst[i][j1]5; } else if(mapfirst[i][j1]4||mapfirst[i][j1]7) { if(mapfirst[i][j2]0||mapfirst[i][j2]3) { mapfirst[i][j2]mapfirst[i][j2]4;mapfirst[i][j1]mapfirst[i][j1]1;mapfirst[i][j]mapfirst[i][j]-5;}}break;}
}
void gameoverfourth ()
{int k0;for(int i0;i9;i){for(int j0;j11;j){if(mapfourth[i][j]4)k;}}if(k0){cout恭喜你你赢了endl;exit(0);}
}
void gameoverthird()
{int k0;for(int i0;i7;i){for(int j0;j8;j){if(mapthird[i][j]4)k;}} if(k0) { cout恭喜你顺利进入下一关endl;system(cls);while(1){system(cls);drawGamefourth();cout当前关卡第2关endl;keydownfourth();gameoverfourth();}}
}
void gameoversecond()
{int k0;for(int i0;i11;i){for(int j0;j13;j){if(mapsecond[i][j]4)k;}}if(k0){cout恭喜你你通过了此关endl;Sleep(1000);while(1){system(cls);drawGamethird();cout当前关卡第3关endl;keydownthird();gameoverthird();}}
}
void gameoverfirst()
{int k0;for(int i0; i7; i) {for (int j0; j8; j) {if(mapfirst[i][j]4)k;}}while(k0){printf(恭喜你你通过过了此关\n);Sleep(1000);while(1) { system(cls);drawGamesecond();cout当前关卡第2关endl;keydownsecond();gameoversecond();}}
}
int main() {while(1){ system(color 3F );cout———————请选关————————endl;cout 1. 第一关 endl;cout 2. 第二关 endl;cout 3. 第三关 endl;cout 4. 最后一关 endl;cout 5.退出游戏 endl;cout提示每通关一次你都会进入下一关endl;cout注意0:空地 1 ■表示墙 3☆ 目的地 4★箱子 5.※人 7.⊙表示箱子推到了目的的显示 8:※人到达目的地endl;int n;cinn; if(n1){while(1){system(cls);drawGamefirst();cout 当前关卡第[1]关endl; keydownfirst();gameoverfirst();}}if(n2){ while(1) { system(cls);drawGamesecond(); cout 当前关卡第[2]关endl;keydownsecond();gameoversecond();}}if(n3){while(1) { system(cls);drawGamethird();cout 当前关卡第[3]关endl; keydownthird();gameoverthird(); }}if(n4){while(1) { system(cls);drawGamefourth();cout 当前关卡为最后一关endl; keydownfourth();gameoverfourth();}}if(n5)system(cls);cout已经退出游戏endl;exit(-1);
}return 0;
}