/Snake-Battle

C++课设

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Snake Battle

贪吃蛇大作战

大一C++课设

内容提要

玩家操控一条贪吃蛇,通过吃到食物来获取更多的分数。该项目运行进入主界面有四个选项,点击普通模式进行该游戏模式,操控一条贪吃蛇来吃到食物即可得分,同时身体会变长,在界面的左上角和左下角可以看到自己目前的得分和该模式的最高分,碰到边界或者自己的身体游戏便会结束。点击障碍模式进行该游戏模式,此时界面上会随机产生10个黑色的有毒食物,如果蛇碰到有毒的食物便会被毒死游戏结束,该模式玩家也可以在界面的左上角和左下角看到自己目前的得分和该模式的最高分。点击游戏说明会看到对游戏玩法、操作的介绍以及对两个游戏模式的说明,此时按任意键可以返回主菜单。点击退出会看到退出界面,此时按“0”便可返回主菜单,按除“0”以外的任意键便可退出游戏。该游戏项目所采用的开发环境是Visual Studio 2022和easyX图形库,所采用的编程语言为C++。

3

设计技术

继承、多重继承、封装、多态、文本文件的读写、构造函数、对象数组、对象指针、this指针、对象的动态建立与释放、纯虚函数、抽象类

类设计

该游戏项目我共设计了point、Food、Score、Snake四个大类,point类主要负责蛇身体的搭建,蛇身由一个个点相连构成,point类包含点的坐标x、y,由于该游戏项目需要设计好的食物和有毒的食物,所以Food类我设计的是一个抽象类,它包含两个纯虚函数分别用来创建食物和定义食物的位置,抽象类Food派生了两个类,分别是GoodFood与BadFood类,这两个类分别定义各自类型食物产生的位置,食物的颜色以及食物返回的位置。由于该游戏项目我设计了两种游戏模式,两种游戏模式的分数需要保存在不同的文件中,所以我设计的Score类是一个抽象类,它包含三个纯虚函数分别用来显示你的分数并与最高分进行比较,保存最高分以及显示最高分,它派生了Score1以及Score2两个类,作用是分别在普通模式与障碍模式中实现分数保存、显示功能的实现。Snake类的作用主要是设置蛇身的颜色,实现蛇身的延长与控制蛇的移动,蛇的返回位置以及规定蛇的前进方向。

注意事项

  1. 我的运行环境为visual studio 2022

  2. 该项目需先下载EasyX图形库

  3. 在项目-属性-配置属性-高级-字符集中改为“使用多字节字符集”

  4. 游戏封装详见上一篇利用Enigma Virtual Box进行封装