C++轻松实现贪吃蛇游戏,图形界面是必学的!零基础一看就会!
这里打算使用有一定挑战性的方法写一个十分简单的游戏——贪吃蛇,这里尽量使用较为直白的叙述,让大家能短时间内写出一个贪吃蛇,下面就是贪吃蛇的截图。
游戏展示:

游戏原理:

整个程序设计的原理就是:主函数死循环,不断刷新打印贪吃蛇和食物。这样每循环一次,就类似电影里面的一帧,最终显示的效果就是蛇会动起来。
直接上代码,c++把整个游戏拆分成几个文件,分开上,有一定的c++基础的同学应该可以很容易看懂。
项目结构展示:

挑几个重点部分讲下:
一、画地图边界
这个函数主要是根据上面所给的游戏窗口长宽来打印地图边界的。其中还划分了几个区域,主要用来放不同的信息的。

划分区域如下图,#就是边框了:

二、画出分数和模式
该函数主要是在右上角画出成绩和游戏模式的,在绘制之前会进行刷新处理。先清除,再重新打印。用到了一个gotoxy()函数。这个函数主要是移动光标到(x, y)坐标处的。关于(x, y)的位置,根据实际情况调整即可。

三、随机生成食物
随机生成食物,原则上不允许食物出现在蛇身的位置上,如果有。我们重新生成。注意地图的范围,就是区域左边一块。实际情况根据自身的地图范围来调整食物坐标的范围,注意不要越界。用rand()函数获得随机坐标。代码如下:

然后,在构造函数里面传入蛇身的坐标。即可生成食物。
四、贪吃蛇类
定义贪吃蛇的移动,打印,吃食物等等。这节课我们暂时不讨论AI功能,先把手动操作的贪吃蛇做了跑起来,下节课再做AI功能的介绍。该类大体如下:

五、主函数,组装我们的游戏
我们的游戏在主函数里面进行组装。然后开始运行。
首先我们做游戏相关的初始化和模式选择。

然后就是画地图边框,打印游戏相关信息和说明。生成食物了。

最后就是游戏死循环,在死循环里面,我们需要不断移动蛇,画蛇,判断蛇的状态,判断食物的状态,是否吃到食物等等。具体代码:

最终,我们的代码就可以Run起来了。具体效果放在开头了。界面算不上好看,但是整个程序向大家展示了最基本最核心的功能和代码,大家可以在这个基础上开发自己喜欢的各种美丽的界面哦。
如果有想学习C/C++的同学,可来我们的C/C++技术学习QQ群:361191484,免费送整套系统的C/C++视频教程!我每晚上8点还会在群内直播讲解C/C++知识,这是一个仅供粉丝朋友们学习交流的群,欢迎大家前来学习哦~不是学习C/C++的小伙伴非诚勿扰哦下面是部分资料截图:

声明:本文内容来源于网络,如有侵权请联系删除