# Tetris **Repository Path**: LuoShu-784/Tetris ## Basic Information - **Project Name**: Tetris - **Description**: 我的第一个 C++ 练手项目:基于 C++17 和 Windows 终端 VT 序列实现的俄罗斯方块,支持 24-bit 真彩色和无闪烁双缓冲渲染。 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-08 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: Cpp, Windows, Cpp17 ## README # 🎮 C++ 控制台俄罗斯方块 (Tetris-Console) > **作者注记** > > 这是我的第一个 C++ 项目,主要目的是为了学习和实践 C++ 编程,并熟悉面向对象的设计(OOP)。 > > 项目从零开始,在 Windows 控制台环境下实现了一个功能完整的经典俄罗斯方块。 ## 📜 项目简介 本项目是一个经典的俄罗斯方块 (Tetris) 游戏。它不依赖任何第三方图形库,而是完全运行在 **Windows 控制台**环境中。 项目利用 Windows API 和现代 Windows 终端的 VT 序列支持,实现了 24-bit 真彩色和高性能的无闪烁渲染。 ## ✨ 主要特性 * **纯控制台实现** :完全基于 Windows API 和 VT 序列,无需额外图形库。 * **24-bit 真彩色** :利用虚拟终端 (VT) 转义序列,在兼容的终端中实现了 24-bit 真彩色渲染,提供了比传统 16 色控制台更丰富的视觉体验。 * **高性能渲染** :采用双缓冲机制。所有绘图操作(方块、UI、边框)都在一个后台缓冲区中完成,最后一次性构建并刷新到屏幕,实现了无闪烁的流畅游戏体验。 * **面向对象设计** :代码结构清晰,分为几个核心类: * `Tetris`:主游戏逻辑、循环和状态管理。 * `GameArea`:游戏区域网格、碰撞检测和行消除逻辑。 * `Block`:封装了 7 种方块类型、旋转和形状数据。 * `Screen`:封装了 Windows 控制台缓冲区和 VT 序列渲染。 * **核心游戏机制** : * 实现了所有 7 种标准方块 (I, J, L, O, S, T, Z) 及其 4 种旋转状态。 * 完整的碰撞检测(边界和已固定方块)。 * 方块的移动、旋转、软下落和硬下落。 * 满行消除(支持一次消除 1-4 行) * 计分系统和基于消除行数的等级提升。 * “下一个”方块预览。 ## 🖥️ 环境说明 * **操作系统 (OS)** : * Windows 10 / Windows 11(项目依赖 Windows 系统的特定 API,因此不兼容 Linux/macOS)。 * **终端 (Terminal)** : * 必须使用支持 VT 序列和 24-bit 真彩色的现代终端。推荐使用 **Windows Terminal** 。 * **语言标准** :C++17 ## ℹ️ 版本信息 * **最终发行版本** :1.0 ## 📄 许可证 (License) 本项目基于 **MIT 许可证** 发行。 详情请参见 [`LICENSE`](LICENSE) 文件。