C++ 简化 推箱子 小游戏 完整代码 参考网络资料 命令行运行 仅供初学者参考交流
说明:学做了4关推箱子, 仅供初学者参考可用g++ 编译,可以将内容复制到TXT文件,将后缀改为".cpp"。打开“运行”,输“CMD”,进命令行窗口,用"CD "命令切换目录到main .cpp所在处,输入"g++ main.cpp"回车,输入"a.exe"回车,进入游戏,输入"ALT + C"退出。
效果图
#墙, _空白区, _终点, $箱子, I人。
完整C++代码如下:命令行 g++ 编译 即可运行
#include <iostream>
#include <string>
using namespace std;
//学做了4关推箱子,与初学者交流
//可用g++ 编译,可以将内容复制到TXT文件,将后缀改为".cpp"。
//打开“运行”,输“CMD”,进命令行窗口,用"CD "命令切换目录到main .cpp所在处
//输入"g++ main.cpp"回车
//输入"a.exe"回车,进入游戏
//输入"ALT + C"退出
//公共变量
int gTimes = 1;//当前关数
int gStageWidth;
int gStageHeight;
int gN;
//关卡1地图,#墙 _空白区 .终点 o砖块 p人,
char gStageData_1[] = "\
########\n\
# #\n\
# $ $__#\n\
# I #\n\
########";
int gStageWidth_1 = 8;
int gStageHeight_1 = 5;
int N_1 = 20;//游戏限定步数
//关卡2地图
char gStageData_2[] = "\
################### \n\
# I ## # # \n\
# _ $ # # \n\
# $## # # # \n\
# # # ### \n\
# _ _ \n\
## ## ##### $ _ # \n\
";
int gStageWidth_2 = 20;
int gStageHeight_2 = 8;
int N_2 = 100;//游戏限定步数
//关卡3地图
char gStageData_3[] = "\
####################\n\
# ##_ # _#\n\
# _ $ # #\n\
# ## # #_ #\n\
# # # ###$ #\n\
# _ I #\n\
##_ ### ##### $ #\n\
# $ _ #\n\
# # _ #\n\
####################";
int gStageWidth_3 = 20;
int gStageHeight_3 = 10;
int N_3 = 150;//游戏限定步数
//关卡4地图
char gStageData_4[] = "\
####################\n\
# ##_ # _#\n\
# _ $ ##_ # $ _#\n\
# #### # #_ #\n\
# # ###$$ #\n\
# $ _ $$ #\n\
# _ #_ $ #\n\
# # $ # ### \n\
# I ### # #_ #\n\
####################";
int gStageWidth_4 = 20;
int gStageHeight_4 = 10;
int N_4 = 150;//游戏限定步数
enum Object{
OBJ_SPACE,
OBJ_WALL,
OBJ_GOAL,
OBJ_BLOCK,
OBJ_BLOCK_ON_GOAL,
OBJ_MAN,
OBJ_MAN_ON_GOAL,
OBJ_UNKNOWN,
};
//函数声明
void initialize( Object* state, int w, int h, char* stageData );
void draw( const Object* state, int w, int h);
void update( Object* state, char input, int w, int h );
bool checkClear(