🎈 作者:Linux猿
🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
🎈 关注专栏:C/C++/Java课程设计100例 优质好文持续更新中……🚀🚀🚀
🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬
目录
一、第一版功能
二、加强版功能
2.1 关卡增强
2.2 其它功能
三、自行添加关卡
四、后续更新
本文是「推箱子游戏」的「加强版」,第一版本的实现请看这里【课程设计】 推箱子游戏(源码+详解),下面先来看下「加强版」的效果图!
一、第一版功能
第一版实现的功能比较基础,主要包含程序主要架构,并且关卡仅有一关,关于第一版的详细功能和源码请点击:【课程设计】 推箱子游戏(源码+详解)。
二、加强版功能
2.1 关卡增强
新版的关卡增加到了「四关」,每通过一关可以通向下一关,不能跳关,第一关的界面如下所示:
每通过一关,可以选择进入下一关,输入 Y 即可。输入 N 则返回「」主界面,主界面如下所示。
返回主界面后可以选择开始游戏或退出游戏。
主要函数如下所示。
void game();
void showMap(); //输出地图
void move(char ch); //移动
void hideCursor(); //隐藏光标
void getCoord(int x, int y);//光标定位
void menu(); //选择界面
void readGameData(); //读取游戏数据
void sokoban(); //游戏主要流程
2.2 其它功能
在每一关的右侧,会有两个操作,一个是输入 r 重试本关,输入 m 返回主界面,所有关都通过后会自动返回主界面。
三、自行添加关卡
关卡的数据存储在 data.txt 文件中,可以根据规则自行增加关卡,主要规则如下:
11 11 6 6
11111111111
11111C11111
11111211111
11111211111
11111B11111
1C22BAB22C1
11111B11111
11111211111
11111211111
11111C11111
11111111111
上述数据是第一关的地图,其中数据表示如下:
1 表示墙,人和箱子都不能通过和移动;
2 表示空格,人和箱子均可通过;
B 表示箱子,人可以在箱子上下左右推动箱子,前提是箱子同方向上是空格;
A 表示人;
C 表示目标,需要将所有箱子都推到目标上,每个箱子占据一个目标,人和箱子可以通过目标。
知道规则后就可以自行添加关卡啦!
四、后续更新
推箱子当前这个版本已经比较完善了,当然,后续还会继续更新,这里先记录下可以更新的内容,如下所示。
(1)增加退一步操作,当然最好不能一直可以退回,可以限制退回次数;
(2)增加用户属性,保存数据,基于上次的数据继续闯关;
(3)增加更多的关卡,这个是苦力活!
大家如果有更多的想法,可以在评论区留言~
或者如果有更好的关卡,可以在评论区留言~
🍓 🍓🍓 需要「源码」可订阅专栏C/C++/Java课程设计100例后获取~ 🎉🎉🎉
🎈 感觉有帮助记得「一键三连」支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章」回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞