更新list 补充具体函数完成待办
This commit is contained in:
@@ -1,110 +1,53 @@
|
|||||||
# 项目开发阶段划分
|
# 函数 TODO 分阶段清单
|
||||||
|
|
||||||
本项目可以按开发过程拆分为 6 个阶段完成,符合“分阶段实现程序”的写法,也便于后续直接写入实验报告。
|
|
||||||
|
|
||||||
## 第一阶段:窗口创建与程序框架搭建
|
## 第一阶段:窗口创建与程序框架搭建
|
||||||
|
|
||||||
本阶段需要完成的内容:
|
简要说明:完成程序入口、主窗口创建、消息循环和基础对话框处理。
|
||||||
|
|
||||||
- 创建 Windows 程序入口。
|
- [ ] `_tWinMain` - `src/Tetris.cpp`
|
||||||
- 注册窗口类并创建主窗口。
|
- [ ] `MyRegisterClass` - `src/Tetris.cpp`
|
||||||
- 建立消息循环和基础消息处理机制。
|
- [ ] `InitInstance` - `src/Tetris.cpp`
|
||||||
- 完成程序启动、关闭、重绘等基础框架。
|
- [ ] `WndProc` - `src/Tetris.cpp`
|
||||||
- 为后续游戏逻辑和绘图模块提供运行环境。
|
- [ ] `About` - `src/Tetris.cpp`
|
||||||
|
|
||||||
本阶段目标:
|
## 第二阶段:游戏区域与状态初始化
|
||||||
|
|
||||||
- 程序能够成功启动。
|
简要说明:完成游戏初始状态建立和重新开始相关逻辑。
|
||||||
- 能显示游戏主窗口。
|
|
||||||
- 窗口能正常响应关闭和刷新操作。
|
|
||||||
|
|
||||||
## 第二阶段:游戏区域与方块数据结构设计
|
- [ ] `Restart` - `src/TetrisLogic.cpp`
|
||||||
|
|
||||||
本阶段需要完成的内容:
|
## 第三阶段:方块生成、移动与旋转
|
||||||
|
|
||||||
- 定义游戏区域的宽度、高度和网格大小。
|
简要说明:完成方块的基础操作,包括下落、左右移动、旋转和快速到底。
|
||||||
- 设计方块坐标结构和不同类型方块的数据表示方式。
|
|
||||||
- 建立游戏地图数组,用于保存已落地方块状态。
|
|
||||||
- 定义当前方块、下一方块、分数、暂停、结束标志等全局状态。
|
|
||||||
- 准备颜色数据和基础常量。
|
|
||||||
|
|
||||||
本阶段目标:
|
- [ ] `MoveDown` - `src/TetrisLogic.cpp`
|
||||||
|
- [ ] `MoveLeft` - `src/TetrisLogic.cpp`
|
||||||
|
- [ ] `MoveRight` - `src/TetrisLogic.cpp`
|
||||||
|
- [ ] `Rotate` - `src/TetrisLogic.cpp`
|
||||||
|
- [ ] `DropDown` - `src/TetrisLogic.cpp`
|
||||||
|
|
||||||
- 程序内部具备完整的游戏状态表示能力。
|
## 第四阶段:碰撞检测与方块固定
|
||||||
- 可以为后续方块运动和碰撞判断提供数据基础。
|
|
||||||
|
|
||||||
## 第三阶段:方块生成、移动与旋转功能
|
简要说明:完成越界判断、碰撞检测、方块落地固定和结束判定。
|
||||||
|
|
||||||
本阶段需要完成的内容:
|
- [ ] `CanMoveDown` - `src/TetrisLogic.cpp`
|
||||||
|
- [ ] `CanMoveLeft` - `src/TetrisLogic.cpp`
|
||||||
- 实现新方块生成。
|
- [ ] `CanMoveRight` - `src/TetrisLogic.cpp`
|
||||||
- 实现方块自动下落。
|
- [ ] `Fixing` - `src/TetrisLogic.cpp`
|
||||||
- 实现左移、右移操作。
|
- [ ] `GameOver` - `src/TetrisLogic.cpp`
|
||||||
- 实现方块旋转。
|
|
||||||
- 实现快速下落或直接落到底部的功能。
|
|
||||||
- 保证键盘输入可以正确控制当前方块。
|
|
||||||
|
|
||||||
本阶段目标:
|
|
||||||
|
|
||||||
- 方块可以正常出现。
|
|
||||||
- 玩家可以通过键盘控制方块移动和旋转。
|
|
||||||
- 方块运动过程符合基本游戏规则。
|
|
||||||
|
|
||||||
## 第四阶段:碰撞检测与方块固定逻辑
|
|
||||||
|
|
||||||
本阶段需要完成的内容:
|
|
||||||
|
|
||||||
- 判断方块是否可以继续下落。
|
|
||||||
- 判断方块左右移动时是否越界或与已有方块冲突。
|
|
||||||
- 判断旋转后是否发生重叠或越界。
|
|
||||||
- 当方块落到底部或接触已有方块时,将其固定到游戏区域中。
|
|
||||||
- 实现游戏结束判定。
|
|
||||||
|
|
||||||
本阶段目标:
|
|
||||||
|
|
||||||
- 方块不会穿过边界。
|
|
||||||
- 方块不会与已固定方块错误重叠。
|
|
||||||
- 游戏在堆叠到顶部时能够正确结束。
|
|
||||||
|
|
||||||
## 第五阶段:消除逻辑与分数系统
|
## 第五阶段:消除逻辑与分数系统
|
||||||
|
|
||||||
本阶段需要完成的内容:
|
简要说明:完成消行、行下移和得分更新等核心反馈机制。
|
||||||
|
|
||||||
- 检测某一行是否已被填满。
|
- [ ] `DeleteOneLine` - `src/TetrisLogic.cpp`
|
||||||
- 实现整行消除。
|
- [ ] `DeleteLines` - `src/TetrisLogic.cpp`
|
||||||
- 在消除后更新上方方块数据。
|
|
||||||
- 设计分数统计规则。
|
|
||||||
- 在界面中显示当前分数或游戏状态。
|
|
||||||
|
|
||||||
本阶段目标:
|
## 第六阶段:界面绘制与扩展功能
|
||||||
|
|
||||||
- 玩家完成满行后可以正确消除。
|
简要说明:完成游戏界面绘制,并实现落点预测等增强功能。
|
||||||
- 分数能够随着游戏进展更新。
|
|
||||||
- 游戏具备基本反馈机制。
|
|
||||||
|
|
||||||
## 第六阶段:界面完善与创新功能扩展
|
- [ ] `ComputeTarget` - `src/TetrisLogic.cpp`
|
||||||
|
- [ ] `TDrawScreen` - `src/TetrisRender.cpp`
|
||||||
本阶段需要完成的内容:
|
|
||||||
|
|
||||||
- 完善游戏界面绘制效果。
|
|
||||||
- 显示下一个方块、暂停状态、结束提示等信息。
|
|
||||||
- 加入资源文件,如图标、菜单、关于框。
|
|
||||||
- 优化构建脚本和工程配置,确保项目可稳定运行。
|
|
||||||
- 根据课程设计要求加入创新功能。
|
|
||||||
|
|
||||||
可选创新功能示例:
|
|
||||||
|
|
||||||
- 预览下一方块
|
|
||||||
- 阴影落点提示
|
|
||||||
- 暂停与继续
|
|
||||||
- 重新开始
|
|
||||||
- 难度提升
|
|
||||||
- 背景图或界面美化
|
|
||||||
- 音效或动画效果
|
|
||||||
|
|
||||||
本阶段目标:
|
|
||||||
|
|
||||||
- 程序界面更加完整。
|
|
||||||
- 功能更加接近完整游戏。
|
|
||||||
- 项目达到课程大作业展示要求。
|
|
||||||
|
|
||||||
|
## 第七阶段:创新扩展
|
||||||
Reference in New Issue
Block a user