# tetriz **Repository Path**: hang-jingqi/tetriz ## Basic Information - **Project Name**: tetriz - **Description**: 可以在Linux/Windows系统上运行的现代版俄罗斯方块 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-05-28 - **Last Updated**: 2025-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: ConsoleGame, Cpp ## README

Tetriz

一款基于CMake开发的现代版俄罗斯方块

--- ## 目录 [TOC] ## 特性 一款基于CMake开发的现代版俄罗斯方块。 - 支持Windows与Linux平台 - 支持SRS旋转系统 - 支持HOLD功能 - 使用Bag7随机算法生成方块(应该写对了) ## 文件结构 ``` . ├─bin ├─build ├─include ├─src └─tool └─Graphics ├─VS └─VSCode ``` - `include`: 存放 `.h` 文件 - `src`: 存放 `.cpp` 文件 - `bin`: 生成的可执行文件在这 - `bulid`: (`VSCode`)编译的中间文件和配置的环境文件 - `out`: (`Visual Studio`)编译的中间文件和配置的环境文件 ### 命名空间 - `ui`: layout - `dw`: draw - `gm`: game logic - `ut`: utils - `tc`: terminal control ## 安装 - 使用 `git clone https://git.acwing.com/YagiMiji/tetriz.git` 将库克隆到本地 - 下载源码包 [:paperclip:.zip](https://git.acwing.com/YagiMiji/tetriz/-/archive/master/tetriz-master.zip) ## 源码使用说明 ### Windows上运行 #### 使用 VSCode > *需要有 `GCC` 或 `Visual Studio Community` 环境* 1. 用 `vscode` 打开文件夹,会自动提示安装插件,安装 `CMake` 和 `C/C++ Extension Pack`。 2. 在左边栏选择 `CMake` ,点击 `CMake `设置栏下配置第一行选择工具包( `GCC` 或 `Visual Studio Community` )。`vscode` 会自动构建环境。 `Visual Studio Community` 环境下显示类似如下,及构建完成。 ``` [visual-studio] 为 D:\VisualStudio\VC\Auxiliary\Build\vcvarsall.bat 修补从 C:\Program Files (x86)\Windows Kits\10\bin\x86 到 C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86 的 Windows SDK 路径 ``` `GCC` 环境下显示类似如下,及构建完成。 ``` [cmake] -- Build files have been written to: D:/CodeProjects/tetriz/build ``` 3. 点击下方栏生成即可在 `bin` 文件夹下生成可执行文件。点击运行可在 `vscode` 终端运行。 VSCodeRunning; #### 使用Visual Studio 1. 用 `visual studio` 打开文件夹,会自行创建环境。 2. 点击运行即可运行。VSRunning ### 在Linux上运行 1. 确保 `Linux` 上已经安装 `CMake` 与 `GCC` 。分别查看它们的版本号确定已安装。 ``` gcc -v cmake -version ``` > 缺什么则安装什么,上为 `gcc` 下为 `cmake`。 > > ``` > sudo apt install g++ gcc gdb > > sudo apt install cmake > ``` 2. 移动到克隆的 `tetriz` 仓库。 ``` cd ./teriz ``` 3. 创建并移动到 `build` 文件夹。 ``` mkdir build && cd build ``` 4. 使用 `CMake` 编译并创建可执行文件。 ``` cmake .. && make ``` > 当然你也可以指定编译的类型。 > `Debug`: 禁用优化,包括调试信息 > > ``` > cmake -DCMAKE_BUILD_TYPE=Debug .. && make > ``` > > `Release`: 启用优化,排除调试信息 > > ``` > cmake -DCMAKE_BUILD_TYPE=Release .. && make > ``` > > `MinSizeRel`: 优化最小二进制大小,排除调试信息 > > ``` > cmake -DCMAKE_BUILD_TYPE=MinSizeRel .. && make > ``` > 5. 移动到 `bin` 文件夹并运行。 ``` cd ../bin ./tetriz ``` ## 游戏如何操作 ### 基本键位 - 旋转: 空格键 - 左移: a 键 - 右移: d 键 - 下移: s 键 - 旋转: w 键 - Hold:r 键 - 急降: 空格键 - 帮助: h 键 - 退出: q 键 ### 关于键位更改 目前并没有设计在游戏中更改键位功能,故更改键位只能修改代码。 你可以在 `include/define.h` 中增加按键定义(只支持可用键盘直接打出的字符)。 ``` define.h ... //----- 下面定义了按键宏-------------------- #define KEY_Q 'q' #define KEY_W 'w' #define KEY_S 's' #define KEY_A 'a' #define KEY_D 'd' #define KEY_R 'r' #define KEY_H 'h' #define KEY_BS ' ' // TODO: 可以在这添加新键位 //---------------------------------------- ... ``` 在 `src/control.cpp` 中可以添加或修改按键与对应的函数。 ``` control.cpp ... // -----按键对应的函数调用--------------------------------- std::map> comm_func{ {KEY_Q, command_quit}, /*退出*/ {KEY_W, command_rotate}, /*旋转*/ {KEY_A, command_left}, /*向左*/ {KEY_D, command_right}, /*向右*/ {KEY_S, command_down}, /*下降*/ {KEY_BS, command_drop}, /*直降*/ {KEY_R, command_hold}, /*Hold*/ {KEY_H, command_help} /*帮助*/ //TODO: 增加新的调用 }; //-------------------------------------------------------- ... ``` ## 维护者 | :stuck_out_tongue_closed_eyes: | :grinning: | :frog: | | ------ | ------ | ------ | |
|
|
| ## 许可证 MIT License © 2024 [杭 景琦](https://git.acwing.com/YagiMiji)