2021级C语言大作业 - 消灭星星

本文详细介绍了21级学生用C语言(部分C++)开发消灭星星游戏的过程,包括设计思路、功能描述和实现方法。游戏采用二维数组表示星星,使用递归检测消除、冒泡算法实现星星下落动画,以及积分、过关、存读档等功能。此外,还涉及技能系统、界面菜单和音效处理。
摘要由CSDN通过智能技术生成

分享21级同学大一上学期用C语言(及少量C++)实现的消灭星星游戏。由于同学们刚学了三个月的编程,实现还不够完善,工程代码、图片音乐素材可以从百度网盘下载:

链接:pan.baidu.com/s/1CbAiQy

提取码:gtc0


一 设计思路

1.1 图形

对现有的消灭星星游戏进行观察可以直观地发现消灭星星中的星星是行列分明的矩阵形式图形表示,由此不难联想到C语言中的二维数组,二维数组在内存中以线性方式存在,但仍然可以很好的表示出行列。

此外,星星不同颜色的解决。由已经确定的二维数组表示星星的想法可以用最简单的赋值法解决星星颜色不同的问题,即给二维数组赋上随机的值,用不同的值表示出星星不同的颜色(基于easyx的hsv颜色模型)。

1.2 核心功能

消灭星星功能相对单一,即相同颜色的检测与消除以及消除过后的星星下落与向左靠齐。

相同颜色星星的检测。相同颜色的检测需要检测与选中的星星相邻的四个方向的星星,如果检测到相同的星星还需要对检测到的星星再进行检测,同时星星是由二维数组表示,所以不难想到用递归的方法,将星星的行列号传入递归函数最后由递归函数的返回值来表示检测的结果(因为可能会选到单独一个颜色的星星,所以会有成功与否)。

颜色相同星星的消除。星星的消除和星星的表示息息相关,所以由用二维数组赋值表示不同颜色星星的方法可以联想到给所选中的二维数组单元赋予一个特殊的值,表示这些单元已经被消除。由此,在检测的递归函数中如果检测到四方有相同颜色的星星的时候将这两个单元都赋予特殊值表示被消除之后,再进行递归调用,这样也可以巧妙避免递归函数无法跳出的情况(若不改变值,相同颜色方块周围始终有相同颜色方块),同时也可以实现只选择一个星星时候不消除。

星星的下落和向左靠齐。星星

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值