Files
Tereis/report/report.md
T
2026-04-23 19:08:06 +08:00

5.4 KiB
Raw Blame History

大学计算实验报告

封面信息

  • 姓名:
  • 学号:
  • 授课教员:
  • 所属学院:

摘要

本文围绕 Tereis 项目的设计与实现展开。项目目标是实现一个基于 Windows API 与 C++ 的俄罗斯方块程序,完成基础游戏逻辑、界面绘制、输入响应与结果展示等功能。实验过程中,采用模块化设计方式,将程序拆分为窗口管理、游戏逻辑、渲染绘制和资源配置等部分,并通过 MinGW 构建脚本完成编译与运行验证。最终实现了程序的基本运行,并能够完成方块生成、移动、旋转、消行与结束判定等核心功能。后续可继续在资源管理、界面表现与可维护性方面进行优化。

关键词

俄罗斯方块;C++Windows APIMinGW;程序设计

1 引言

本实验的目标是完成一个桌面端俄罗斯方块程序,并通过实际编码过程加深对 C++ 程序结构设计、Windows 图形界面开发以及模块化实现方式的理解。俄罗斯方块作为经典游戏,具有规则明确、逻辑完整、适合分模块实现等特点,适合作为程序设计综合实验项目。

在本项目中,程序以 Windows API 为基础,结合消息循环、图形绘制和键盘输入处理完成交互式游戏窗口。实验重点不仅在于实现游戏功能本身,也在于梳理一个完整程序从工程组织、编译运行到功能验证的开发过程。

2 总体框架

项目源码位于 src/ 目录,按照工程结构进一步划分为 includesourceresources 三个子目录,整体上可分为以下几个部分:

  • src/source/Tetris.cpp:程序入口、窗口创建与消息处理
  • src/source/TetrisLogic.cpp:核心游戏逻辑,如移动、旋转、消行和结束判定
  • src/source/TetrisRender.cpp:界面绘制
  • src/include/Tetris.h:全局常量、结构体与函数声明
  • src/resources/Tetris.rc:窗口图标、菜单与对话框等资源定义
  • build-mingw.ps1MinGW 构建脚本

整体流程可以概括为:程序启动后创建窗口并初始化数据,随后在消息循环中响应用户输入和定时事件,驱动游戏状态更新,再由绘图模块将当前状态显示到窗口中。

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 的俄罗斯方块程序的整理与验证工作。通过对源码结构、功能模块和构建流程的分析,可以看出该项目已经具备较完整的程序框架和基础功能。实验过程中,不仅实现了游戏核心逻辑,也进一步理解了图形界面程序的组织方式和工程调试方法。后续若继续完善,可从界面效果、资源管理、可维护性和测试完整性等方面进一步优化。