Files
Tereis/report/report.md
T

111 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 大学计算实验报告
## 封面信息
- 姓名:
- 学号:
- 授课教员:
- 所属学院:
## 摘要
本文围绕 `Tereis` 项目的设计与实现展开。项目目标是实现一个基于 Windows API 与 C++ 的俄罗斯方块程序,完成基础游戏逻辑、界面绘制、输入响应与结果展示等功能。实验过程中,采用模块化设计方式,将程序拆分为窗口管理、游戏逻辑、渲染绘制和资源配置等部分,并通过 MinGW 构建脚本完成编译与运行验证。最终实现了程序的基本运行,并能够完成方块生成、移动、旋转、消行与结束判定等核心功能。后续可继续在资源管理、界面表现与可维护性方面进行优化。
## 关键词
俄罗斯方块;C++Windows APIMinGW;程序设计
## 1 引言
本实验的目标是完成一个桌面端俄罗斯方块程序,并通过实际编码过程加深对 C++ 程序结构设计、Windows 图形界面开发以及模块化实现方式的理解。俄罗斯方块作为经典游戏,具有规则明确、逻辑完整、适合分模块实现等特点,适合作为程序设计综合实验项目。
在本项目中,程序以 Windows API 为基础,结合消息循环、图形绘制和键盘输入处理完成交互式游戏窗口。实验重点不仅在于实现游戏功能本身,也在于梳理一个完整程序从工程组织、编译运行到功能验证的开发过程。
## 2 总体框架
项目源码位于 `src/` 目录,整体上可分为以下几个部分:
- `Tetris.cpp`:程序入口、窗口创建与消息处理
- `TetrisLogic.cpp`:核心游戏逻辑,如移动、旋转、消行和结束判定
- `TetrisRender.cpp`:界面绘制
- `Tetris.h`:全局常量、结构体与函数声明
- `build-mingw.ps1`MinGW 构建脚本
整体流程可以概括为:程序启动后创建窗口并初始化数据,随后在消息循环中响应用户输入和定时事件,驱动游戏状态更新,再由绘图模块将当前状态显示到窗口中。
## 3 功能模块一:游戏主体框架
### 3.1 窗口创建与消息处理
#### 实验思路
本部分负责创建主窗口、注册窗口类并处理 Windows 消息。通过消息循环机制,程序能够持续响应键盘输入、绘制请求以及定时器事件,从而构成游戏运行的基础框架。
#### 实验代码
此处后续补充 `Tetris.cpp` 中的窗口初始化和消息分发关键代码。
#### 实验结果
完成本部分后,程序能够正常创建游戏窗口,并具备基础的事件响应能力,为后续游戏逻辑实现提供运行环境。
### 3.2 游戏逻辑实现
#### 实验思路
本部分围绕俄罗斯方块的核心规则展开,实现方块生成、左右移动、下落、旋转、到底固定、消除整行以及游戏结束判定等逻辑。通过二维数组表示游戏区域,并结合方块数据结构管理当前状态。
#### 实验代码
此处后续补充 `TetrisLogic.cpp` 中的关键数据结构和函数实现。
#### 实验结果
完成本部分后,程序能够正确处理方块运动与碰撞逻辑,并在满足条件时完成消行和结束判定,达成游戏基本要求。
## 4 功能模块二:界面绘制与工程构建
### 4.1 界面绘制
#### 实验思路
绘图部分负责根据当前游戏状态刷新窗口内容,包括游戏区域、方块显示和必要的界面元素。该部分通过 Windows GDI 接口完成图形绘制。
#### 实验代码
此处后续补充 `TetrisRender.cpp` 中的绘图代码片段。
#### 实验结果
完成本部分后,程序可以将逻辑状态直观显示在窗口中,使用户能够观察游戏过程与结果。
### 4.2 工程构建与运行验证
#### 实验思路
为了适应当前开发环境,项目使用 `build-mingw.ps1` 作为构建脚本,统一处理源文件编译、资源文件转换与链接流程,从而保证项目能够在新的目录位置下稳定构建。
#### 实验代码
此处后续补充构建脚本中的关键步骤,如编译器定位、资源文件处理和链接流程。
#### 实验结果
完成本部分后,项目可以通过脚本一键完成构建,并生成可执行文件,说明工程配置已经满足当前实验环境要求。
## 5 实验结果与分析
从当前实验结果看,项目已经能够完成基本编译与运行,核心游戏逻辑与图形界面具备基础可用性。通过构建脚本适配和资源文件处理,项目在迁移目录后仍能保持正常构建,说明工程组织具有一定的稳定性。
后续在正式报告中,可以加入以下内容:
- 程序运行截图
- 不同操作下的界面表现
- 消行、结束判定等测试结果
- 可能存在的问题与改进方向
## 6 结论
本实验完成了一个基于 C++ 和 Windows API 的俄罗斯方块程序的整理与验证工作。通过对源码结构、功能模块和构建流程的分析,可以看出该项目已经具备较完整的程序框架和基础功能。实验过程中,不仅实现了游戏核心逻辑,也进一步理解了图形界面程序的组织方式和工程调试方法。后续若继续完善,可从界面效果、资源管理、可维护性和测试完整性等方面进一步优化。