C++版俄罗斯方块游戏
🎈 作者:Linux猿
🎈 简介:CSDN博客专家🏆,C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
俄罗斯方块游戏大家应该非常熟悉,非常经典的一款游戏,本文来详细讲解下俄罗斯方块游戏的制作过程,赶紧来看下吧!
首先,看下效果图:
下面详细讲解下制作过程。
一、主要文件
文件包含三个:tetris.cpp、tetris.h、main.cpp,各个文件的用途如下:
tetris.cpp 文件:函数实现;
tetris.h : 类和函数声明;
main.cpp : 主函数;
二、界面设计
vis[100][100] 用于标记界面坐标,true表示有内容,false 表示空;
Co[100][100] 用于标记界面坐标的颜色;
设置框架函数,如下所示:
三、方块设计
表示方块的类,如下所示:
x,y 是相对坐标;
Col 是方块颜色;
G[10][10][10] :一维表示方块类型,二维表示方块内的方格,三维表示方块的第几种表示形式;
来看下各个方块的设计,如下所示:
四、设计思路
先来看下方块的主要类,如下所示:
Score : 表示游戏分数;
Rank : 表示游戏等级,等级是根据分数计算的;
各个函数的用途如下:
T_Box :构造函数,初始化坐标类型;
staticNum : 更新分数和等级,显示在右下侧小框内;
setValue : 设置方块的初始坐标、类型以及第几种变化,其中类型和变化是随机值;
Move : 将下落的方块向左、右、下移动;
Stop : 计算游戏是否已结束;
printBox : 输出方块图形到界面;
eraseBox : 擦除界面上的方块;
Mark : 标记当前位置已有内容了;
Pause : 游戏暂停,等待开始;
nextBox : 在右上侧方格内显示下一个将要降落的方格;
Transform :在方格下落过程中变换方格样式;
Judge : 判断方格是否可以变换样式;
接下来就说下主程序的设计逻辑,代码如下所示:
1. 首先,设置各种图形以及界面图形;
2. 产生当前方格和下一个方格,下一个方格显示到右上侧方框内;
3. 输出当前下落方格到界面;
4. 判断游戏是否结束;
5. 向下移动方格;
6. 监听用户输入,执行用户输入的操作,包括:移动、急降方格、变换方格样式、退出、暂停等。
7. 检测方格是否降落到底部,循环操作,一直到方格降落到底部;
8. 循环 2 ~ 7,一直到游戏结束;
五、总结
C++俄罗斯方块设计的重点在于界面的设计以及游戏的整体逻辑,其中,界面设计主要是获取对应坐标,在对应坐标处输出对应图形,整体逻辑是不断循环产生下落的方格,方格移动是通过擦除当前位置的方格,将方格坐标整体移动一个再次显示来实现的。
好了,俄罗斯游戏的设计就讲到这里,有疑问欢迎和我交流~
欢迎小伙伴们点赞👍、收藏⭐、留言💬
- 点赞
- 收藏
- 关注作者
评论(0)