C语言小游戏 ——推箱子

文章目录

    • (1)内容描述
    • (2)功能
    • (3)设计目的
    • (4)总体设计
    • (5)明显缺点
    • (6)个人总结
    • 7. 实例
    • 实例一
    • 实例二
    • 实例三
    • 实例四
    • 实例五:

(1)内容描述

描述:用户进入页面后可以进行选关,每关的关卡难度依次递增,当你选择一关并通过后,会自动进入下一关,直到游戏结束。游戏过程中会有系统提示。
实现方式:二维数组

(2)功能

在这里插入图片描述
1.菜单功能。玩家通过看目录按对应的键可以进入对应的管卡。
2.难度。关卡难度依次递增。
3.顺序功能。当玩家完成了一关后可顺利进入下一关,继续挑战难度高的关卡。

(3)设计目的

训练学生掌握c的数据结构和综合变成能力和游戏开发能力等应用能力。

初步设想

推箱子是比较经典的益智小游戏,目的是在训练人的逻辑思考能力。 在一个狭小的空间中,要求把木箱从起始位置处推放到指定位置。在空间中地方有限,稍不小心就会出现无法移动或道路被堵住的情况,而且箱子不能推不能拉。所以需要玩家利用正确的思维通关。

(4)总体设计

(1)初始化模块。该模块包括屏幕初始化和游戏第一关到最后一关的初始化。游戏每一关的初始化时显实现每一关的关键。
(2)画图模块。该模块主要是被其他模块调用,用于画墙、在空地画箱子、在目的地画箱子、画小人和画目的地。
(3)移动箱子模块。该模块用于移动箱子,包括目的地之间、空地之间和目的地与空地之间箱子的移动。
(4)移动小人模块。该模块是几个功能函数的集合。
在这里插入图片描述

(5)明显缺点

代码的冗余度很高,需要进一步优化

(6)个人总结

总结:验完课程设计后,我发现了自己与别人的差距;相对与别人,我的代码不够简练,内容不够多样,画面不够美化。同时也深深的懂得自己需要变得优秀,而不是一味的去完成作业,应该把社团留的作业当作一次检验,不仅能让自己发现错误,更能让自己巩固知识,革命尚未结束,怎敢停滞不前!

7. 实例

实例一

#include<stdio.h>
#include<iostream>
#include<cstdlib>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include<string.h>
#include<windows.h>
using namespace std;int total=0;
char name[10],bel[20],names[10],bels[20];void SetColor(unsigned short ForeColor,unsigned short BackGroundColor)
{HANDLE hCon=GetStdHandle(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 cas=0;   //为0表示第一关 //你还要有一个量,来记录每一关的箱子数,或者说箱子和目的地在一起的总数
int boxSum[5]={3,4,4,6,2}; 
//地图绘制
void drawMap()
{	for(int i=0;i<12;i++){for(int j=0;j<13;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(i=0;i<12;i++){for(j=0;j<13;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://3+5=8,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][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 '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][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;}
}//胜负判断
//用什么判断胜负:想清楚:箱子到达目的地的个数
int gameover()
{int count=0;//所有的地方都找一遍for(int i=0;i<12;i++){for(int j=0;j<13;j++){if(map[cas][i][j]==7)count++;}}return count;
}
//箱子数是0的时候,也是表示胜利 
int gameover2()
{int count=boxSum[cas];//所有的地方都找一遍for(int i=0;i<12;i++){for(int j=0;j<13;j++){if(map[cas][i][j]==boxSum[cas])count--;}}return count;
}int main()
{printf("游戏开始");Sleep(1100);system("cls");printf("第%d关",cas+1);getch();system("cls");while(1){drawMap();if(gameover()==boxSum[cas]){cas++;if(cas==5)break;system("cls");printf("第%d关",cas+1);Sleep(900);}keyDown();system("cls");}printf("Game over\n");system("pause");return 0;}

实例二

#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<Windows.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 a=0; a<7;a++)         //0:空地 1: ■表示墙 3:☆ 目的地 4:★箱子  5.※人 7.⊙表示箱子推到了目的的显示//8:※人到达目的地,显示人{for(int k=0; k<8; 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;}}cout<<endl;}
}
void drawGamesecond() {for(int b=0; b<11;b++){for(int z=0; z<13; 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;}}cout<<endl;}
}
void drawGamefourth() { for(int c=0; c<9;c++){for(int d=0; d<11; 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;}}cout<<endl;}
}
void drawGamefirst() {for(int e=0; e<7; e++){for(int f=0; f<8; 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;}}cout<<endl;}
}
void keydownfourth() { int i,j;for(int a=0; a<9; a++) {for(int k=0; k<11; k++) {if(mapfourth[a][k]==5||mapfourth[a][k]==8) {i=a;j=k;}}}char ch=getch();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[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 '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][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;}
}
void keydownsecond() { int i,j;for(int b=0; b<11; b++) {for(int z=0; z<13; z++) {if(mapsecond[b][z]==5||mapsecond[b][z]==8) {i=b;j=z;}}}char ch=getch();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[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 '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][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;}
}
void keydownthird() { int i,j;for(int c=0; c<7; c++) {for(int d=0; d<8; d++) {if(mapthird[c][d]==5||mapthird[c][d]==8) {i=c;j=d;}}}char ch=getch();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[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 '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][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;}
}
void keydownfirst() { int i,j;for(int e=0; e<7; e++) {for(int f=0; f<8; f++) {if(mapfirst[e][f]==5||mapfirst[e][f]==8) {i=e;j=f;}}}char ch=getch();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[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 '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][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;}
}
void gameoverfourth ()
{int k=0;for(int i=0;i<9;i++){for(int j=0;j<11;j++){if(mapfourth[i][j]==4)k++;}}if(k==0){cout<<"恭喜你,你赢了!"<<endl;exit(0);}
}
void gameoverthird()
{int k=0;for(int i=0;i<7;i++){for(int j=0;j<8;j++){if(mapthird[i][j]==4)k++;}}    if(k==0) {	cout<<"恭喜你,顺利进入下一关"<<endl;system("cls");while(1){system("cls");drawGamefourth();cout<<"当前关卡第2关"<<endl;cout<<"本关不给提示,祝你好运!"<<endl;keydownfourth();gameoverfourth();}}
}
void gameoversecond()
{int k=0;for(int i=0;i<11;i++){for(int j=0;j<13;j++){if(mapsecond[i][j]==4)k++;}}if(k==0){cout<<"恭喜你,你通过了此关!"<<endl;Sleep(1000);while(1){system("cls");drawGamethird();cout<<"当前关卡第3关"<<endl;cout<<"  这一关比较难"<<endl;keydownthird();gameoverthird();}}
}
void gameoverfirst()
{int k=0;for(int i=0; i<7; i++) {for (int j=0; j<8; j++) {if(mapfirst[i][j]==4)k++;}}while(k==0){printf("恭喜你,你通过过了此关!\n");Sleep(1000);while(1) { system("cls");drawGamesecond();cout<<"当前关卡第2关"<<endl;cout<<"D右1,B上1右2下1,A左1上2,D下2右1,A右1,C下1左2上1,D右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;cin>>n; if(n==1){while(1){system("cls");drawGamefirst();cout<<"  当前关卡第[1]关"<<endl; keydownfirst();gameoverfirst();}}if(n==2){ while(1) { system("cls");drawGamesecond(); cout<<"  当前关卡第[2]关"<<endl;cout<<"  提示:D右1,B上1右2下1,A左1上2,D下2右1,A右1,C下1左2上1,D右2左4."<<endl; keydownsecond();gameoversecond();}}if(n==3){while(1) {      system("cls");drawGamethird();cout<<"  当前关卡第[3]关"<<endl; cout<<"  这一关比较难"<<endl;keydownthird();gameoverthird(); }}if(n==4){while(1) {        system("cls");drawGamefourth();cout<<"  当前关卡为最后一关"<<endl; cout<<"本关不给提示,祝你好运!"<<endl; keydownfourth();gameoverfourth();}}if(n==5)system("cls");cout<<"已经退出游戏"<<endl;exit(-1);
}return 0;
}

实例三

#include<iostream>
#include<windows.h>
#include<conio.h> 
//#include<stdlib.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 a=0,i,j;for(i=0;i<10;i++){for(j=0;j<10;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 i=0;i<10;i++){for(int j=0;j<10;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;}}cout<<endl; }
}int main()
{system("mode con cols=40 lines=20");int score=0;//分数int level=0;char input;//输入字符system("color ed");while(1){system("cls");cout<<"\t\t推箱子"<<endl;cout<<"\t选择关卡:(共五关)"<<endl;int l;cin>>l;if(l>=1&&l<=5){level=l-1;break;}else{cout<<"暂无该关卡"<<endl;return 0; system("pause");}}int b[5];for(int q=0;q<5;q++){b[q]=zongfen(map,q);}while(1){system("cls");cout<<"\t推箱子第"<<level+1<<"关\t\t"<<endl;cout<<"基本操作:w-上 s-下 a-左 d-右 *-退出"<<endl<<endl;getmap(map,level);cout<<endl<<"分数:"<<score<<endl;//输出分数 int i,j;for(i=0;i<10;i++){for(j=0;j<10;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<<"坐标:("<<i+1<<","<<j+1<<")"<<endl;if(score==b[level]){int o=1;cout<<"1.下一关"<<endl<<"2.退出"<<endl<<"(请输入两次回车)"<<endl;while(o){int p;cin>>p;switch(p){case 1:level++;score=0;o=0;break;case 2:o=0;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][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 'd'://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 '*':exit(0);break; default:break;}}return 0;
}

实例四

#include<stdio.h>
#include<conio.h> 
#include<windows.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 k=1;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}};k=shuying(map);if(k==0)return k;k=zhuyao(map);printf(" ");if(k==2)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 k=1;k=shuying(map);if(k==0)return k;k=zhuyao(map);if(k==2)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 k=1;k=shuying(map);if(k==0)return k;k=zhuyao(map); if(k==2)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 k=1;k=shuying(map);if(k==0)return k;k=zhuyao(map); if(k==2)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 k=1;k=shuying(map);if(k==0)return k;k=zhuyao(map);if(k==2)return k; 
}
int shuying(int map[9][11])
{int i,j,a=0;for(i=0;i<9;i++){for(j=0;j<11;j++){if(map[i][j]==3)a++;}}if(a==0){printf("恭喜你过关^_^");system("pause");return a;}elsereturn 3;
}
int zhuyao(int map[9][11])
{int i,j,a,b,c;for(i=0;i<9;i++){for(j=0;j<11;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(i=0;i<9;i++){for(j=0;j<11;j++){if(map[i][j]==2||map[i][j]==6){a=i;b=j;}}} int k=1;c=getch();if(c=='p')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[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+1][b]-=1;map[a][b]-=2;map[a+2][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][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'p': k=2;  break; }printf(" ");//system("pause");//if(k==2)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 k=1;while(1) {system("cls");k=map0();if(k==0){break;}if(k==2)return 0;}while(1){system("cls");k=map1();if(k==0)break;if(k==2)return 0;}while(1){system("cls");k=map2();if(k==0)break;if(k==2)return 0;}while(1){system("cls");k=map3();if(k==0)break;if(k==2)return 0;}while(1){system("cls");k=map4();if(k==0)break;if(k==2)return 0;}
}

实例五:

#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<Windows.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 a=0; a<7;a++)         //0:空地 1: ■表示墙 3:☆ 目的地 4:★箱子  5.※人 7.⊙表示箱子推到了目的的显示//8:※人到达目的地,显示人{for(int k=0; k<8; 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;}}cout<<endl;}
}
void drawGamesecond() {for(int b=0; b<11;b++){for(int z=0; z<13; 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;}}cout<<endl;}
}
void drawGamefourth() { for(int c=0; c<9;c++){for(int d=0; d<11; 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;}}cout<<endl;}
}
void drawGamefirst() {for(int e=0; e<7; e++){for(int f=0; f<8; 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;}}cout<<endl;}
}
void keydownfourth() { int i,j;for(int a=0; a<9; a++) {for(int k=0; k<11; k++) {if(mapfourth[a][k]==5||mapfourth[a][k]==8) {i=a;j=k;}}}char ch=getch();//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[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 '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][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;}
}
void keydownsecond() { //按键处理int i,j;for(int b=0; b<11; b++) {for(int z=0; z<13; z++) {if(mapsecond[b][z]==5||mapsecond[b][z]==8) {i=b;j=z;}}}//2.找到开始移动char ch=getch();//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[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 '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][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;}
}
void keydownthird() { //按键处理int i,j;for(int c=0; c<7; c++) {for(int d=0; d<8; d++) {if(mapthird[c][d]==5||mapthird[c][d]==8) {i=c;j=d;}}}char ch=getch();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[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 '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][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;}
}
void keydownfirst() { int i,j;for(int e=0; e<7; e++) {for(int f=0; f<8; f++) {if(mapfirst[e][f]==5||mapfirst[e][f]==8) {i=e;j=f;}}}char ch=getch();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[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 '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][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;}
}
void gameoverfourth ()
{int k=0;for(int i=0;i<9;i++){for(int j=0;j<11;j++){if(mapfourth[i][j]==4)k++;}}if(k==0){cout<<"恭喜你,你赢了!"<<endl;exit(0);}
}
void gameoverthird()
{int k=0;for(int i=0;i<7;i++){for(int j=0;j<8;j++){if(mapthird[i][j]==4)k++;}}    if(k==0) {	cout<<"恭喜你,顺利进入下一关"<<endl;system("cls");while(1){system("cls");drawGamefourth();cout<<"当前关卡第2关"<<endl;keydownfourth();gameoverfourth();}}
}
void gameoversecond()
{int k=0;for(int i=0;i<11;i++){for(int j=0;j<13;j++){if(mapsecond[i][j]==4)k++;}}if(k==0){cout<<"恭喜你,你通过了此关!"<<endl;Sleep(1000);while(1){system("cls");drawGamethird();cout<<"当前关卡第3关"<<endl;keydownthird();gameoverthird();}}
}
void gameoverfirst()
{int k=0;for(int i=0; i<7; i++) {for (int j=0; j<8; j++) {if(mapfirst[i][j]==4)k++;}}while(k==0){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;cin>>n; if(n==1){while(1){system("cls");drawGamefirst();cout<<"  当前关卡第[1]关"<<endl; keydownfirst();gameoverfirst();}}if(n==2){ while(1) { system("cls");drawGamesecond(); cout<<"  当前关卡第[2]关"<<endl;keydownsecond();gameoversecond();}}if(n==3){while(1) {      system("cls");drawGamethird();cout<<"  当前关卡第[3]关"<<endl; keydownthird();gameoverthird(); }}if(n==4){while(1) {        system("cls");drawGamefourth();cout<<"  当前关卡为最后一关"<<endl; keydownfourth();gameoverfourth();}}if(n==5)system("cls");cout<<"已经退出游戏"<<endl;exit(-1);
}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java GUI 实现登录界面

具体效果图&#xff1a; 详细代码&#xff1a; package java_gui;import java.awt.Color; import java.awt.Container; import java.awt.Cursor; import java.awt.Font; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;imp…

for-each循环的认识、定义、适用对象、举例、局限性

文章目录1. for-each的认识2. for-each的定义3. 哪些类型的对象可以适用For-Each&#xff1f;4. for-each的举例5. for-each的局限性1. for-each的认识 &#xff08;1&#xff09;for-each语句是Java中for-Index的一种加强&#xff0c;是Java 5带来的新语法糖。 &#xff08;2…

C语言 实现登录注册功能

文章目录加载动画实验结果图实验代码加载动画 #include<iostream> #include<windows.h> using namespace std;int main(){cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;cout.widen(65);co…

C语言小游戏 ——俄罗斯方块

#include<stdio.h> #include<stdlib.h> #include<windows.h>//Sleep()函数的头文件 #include<time.h> #include<conio.h> #define MOD 28 #define SIZE_N 19//控制边框的高度 #define SIZE_M 12 //控制边框的宽度 int a[100]{200,30,20};/…

C/C++课程设计 之职工管理系统

文章目录 (一) 题目内容及简介(二) 概要设计(三) 详细设计(四) 实现代码(五) 相关案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十案例十一(一) 题目内容及简介 1.课题来源 课题名称和来源,主要介绍为何选择此题目来开展课程设计,此课题的开展能体现面向…

C++ 知识要点

1.类与对象 类是事物的抽象。类的对象就是类的具体化&#xff0c;实际化 2.C三大特性 继承、封装、多态 3.C父类与子类继承过程中&#xff0c;子类的特点&#xff1f; 子类拥有父类的所有属性和行为 子类就是一种特殊的父类 子类对象可以当作父类对象使用 子类中可以添加父类…

C/C++小游戏 ——贪吃蛇

文章目录案例一案例二案例三案例四案例五案例六案例七案例八案例九案例一 #include <stdio.h>#include <windows.h>#include <conio.h>#include <time.h>//游戏窗口#define FrameX 4//游戏窗口左上角的X轴坐标#define FrameY 4//游戏窗口左上角的Y轴坐…

C/C++课程设计 新生入学管理系统(二)

文章目录 案例十六案例十七案例十八案例十九案例二十案例二十一案例二十二案例二十三案例二十四案例二十五案例二十六案例二十七案例二十八案例十六 #include<iostream> #include<cstring> //strcpy,strcmp #

Java类名.方法和变量

文章目录(1) 类名.方法(2) 变量(1) 类名.方法 要是类名直接调用的方法&#xff0c;那这个方法就是静态的(static)方法&#xff0c;是不用new出新对象实例就可以直接调用的方法。看下面例子&#xff1a; class A {public static void Method1(int a, int b) {//方法体}public …

Java小案例(二) 用数组实现增删查改排序

文章目录案例一案例二案例三案例四案例五案例一 Student.Java package curd;public class Student {private String stuid;private String name;private int chinese;private int math;private int english;private int avg;private int sum;public int getAvg() {return avg;…

有趣的一行代码

文章目录爱心曼德勃罗集合打印99乘法表实现快速排序禅语漫画迷宫爱心 print(\n.join([.join([(❤❤❤❤❤❤❤❤❤❤❤❤[(x-y)%12]if((x*0.05)**2(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<0 else )for x in range(-30,30)])for y in range(15,-15,-1)]))效果图&#xff1…

Python练习之 对文件进行创建,然后重命名文件最近进行文件删除

import os os.mkdir("D:\\1815925603") context ("序号&#xff1a;1815925603\n""姓名&#xff1a;阿信\n""班级&#xff1a;18云计算2班\n") with open (D:\\1815925603\\file1.txt,a) as fp:fp.write(context)fp.seek(0, 0) with …

Java接口中的成员变量为什么必须是static ?

接口的含义 接口就是提供一种统一的协议, 而接口中的属性也属于协议中的成员。它们是公共的,静态的,最终的常量。相当于全局常量。 在interface里面的变量都是public static final 的。 public static final int i10;等价于int i10;(可以省略掉一部分) //注意在声明的时候要…

Java函数式编程和面向对象编程

文章目录什么是函数式编程&#xff1f;什么是面向对象编程&#xff1f;函数式编程和面向对象编程的优缺点什么是函数式编程&#xff1f; 函数式编程的核心&#xff1a;在思考问题时&#xff0c;使用不可变对象和函数&#xff0c;函数将一个值经过处理&#xff0c;映射成另一个…

JDBC实现图书管理小案例

文章目录项目文件结构项目运行效果项目详细代码项目文件下载相关案例案例一案例二案例三案例四案例五案例六案例七案例八项目文件结构 项目运行效果 项目详细代码 JDBCUtils.java package jdbc;import java.sql.*; import com.mysql.jdbc.Driver;public class JDBCUtils {pri…

Java实现多线程售票

文章目录Synchronized和Lock的区别是什么&#xff1f;案例一方法一 继承Thread类方法二 实现Runnable接口案例二方法一 继承Thread类方法二 实现Runnable接口案例三方法一 继承Thread类方法二 实现Runnable接口案例四方法一 继承Thread类方法二 实现Runnable接口案例五方法一 继…

基于TCP原理,采用Socket通信技术,实现聊天室

文章目录案例一案例二案例三案例四案例五相关案例案例一 Client.java package SocketCode;import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import java.io.*; import …

HTML+CSS+JS 实现登录注册界面

文章目录案例一 滑动样式案例二 滑动样式案例三 动态样式案例四 普通样式案例五 滑动样式案例六 普通样式具体怎么获取呢&#xff1f;案例一 滑动样式 login.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

数据结构课程设计 迷宫问题

文章目录一、 目的与要求二、 问题描述和求解方法三、 解题过程四、 实现源码五、 相关案例案例一案例二一、 目的与要求 1、目的&#xff1a; 通过布置具有一定难度的实际程序设计项目&#xff0c;使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和…

html+css 小案例(一)

文章目录点击下载index.html <!DOCTYPE html> <html lang"ch"> <head><meta charset"UTF-8"><title>Demo_Test</title><link rel"stylesheet" href"css/Dec.css"> </head> <body…