本文的目的

公开俄罗斯方块 AI 使用的源代码。只有在展开文件时才会加载代码。

使用的模型

  • stable-baselines3 DQN:低层 7 动作模型(30 万步、37 万步)和宏 40 动作模型(30 万步)。没有附上模型文件。
  • Qwen2.5-3B-Instruct GGUF q4_k_m(llama-cpp-python):文字棋盘裁判、选择候选编号
  • Qwen2.5-VL-3B-Instruct(transformers):图像棋盘裁判、直接选择位置

文件夹结构

  • tetris:C++ 引擎(tetris_engine)、C API(tetris_c_api)、Qt6 画面与 TCP 服务器(main_window、tetris_widget)、CMake
  • local_tetris_env.py:用 ctypes 封装引擎的 gymnasium 环境
  • simple_tetris_env.py:没有构建引擎时使用的纯 Python 环境。观测和动作格式不同,模型不能互换使用。
  • macro_planning_env.py:每个方块只选一次的 40 动作环境
  • train_tetris_rl.py:无画面的 DQN 训练
  • train_qt_live.py:一边训练一边在 Qt 画面上显示当前模型。也有用人下的棋局来训练的模式。
  • qt_rl_client.py:把训练好的模型连接到 Qt 画面上
  • llm_teacher.py、vlm_teacher.py、llm_reward_wrapper.py:LLM 与 VLM 奖励裁判
  • vlm_macro_client.py:由 VLM 直接选择位置的客户端
  • llm_macro_client.py:候选计算与 LLM 选择编号
  • moe_macro_policy.py:混合四条规则的候选选择
  • config/rl_config.py:训练设置

构建产物、虚拟环境、模型权重和训练好的模型文件均已排除。

完整源代码

25 个文件 · 4,969 行 — 展开文件夹后点击文件即可加载代码。

项目根目录14 个文件
llm_macro_client.pypython · 894 行 · 33KB

正在加载代码…

llm_reward_wrapper.pypython · 96 行 · 3KB

正在加载代码…

llm_teacher.pypython · 128 行 · 4KB

正在加载代码…

local_tetris_env.pypython · 252 行 · 9KB

正在加载代码…

macro_planning_env.pypython · 152 行 · 5KB

正在加载代码…

moe_macro_policy.pypython · 81 行 · 3KB

正在加载代码…

project.mdmarkdown · 46 行 · 2KB

正在加载代码…

qt_rl_client.pypython · 148 行 · 5KB

正在加载代码…

requirements.txttext · 11 行 · 128B

正在加载代码…

simple_tetris_env.pypython · 154 行 · 6KB

正在加载代码…

train_qt_live.pypython · 726 行 · 28KB

正在加载代码…

train_tetris_rl.pypython · 316 行 · 11KB

正在加载代码…

vlm_macro_client.pypython · 236 行 · 8KB

正在加载代码…

vlm_teacher.pypython · 179 行 · 6KB

正在加载代码…

config/2 个文件
config/__init__.pypython · 2 行 · 55B

正在加载代码…

config/rl_config.pypython · 101 行 · 3KB

正在加载代码…

tetris/9 个文件
tetris/CMakeLists.txttext · 57 行 · 2KB

正在加载代码…

tetris/src/main_window.cppc++ · 408 行 · 13KB

正在加载代码…

tetris/src/main_window.hc++ · 58 行 · 1KB

正在加载代码…

tetris/src/main.cppc++ · 38 行 · 1KB

正在加载代码…

tetris/src/tetris_c_api.cppc++ · 167 行 · 6KB

正在加载代码…

tetris/src/tetris_engine.cppc++ · 446 行 · 13KB

正在加载代码…

tetris/src/tetris_engine.hc++ · 130 行 · 4KB

正在加载代码…

tetris/src/tetris_widget.cppc++ · 117 行 · 3KB

正在加载代码…

tetris/src/tetris_widget.hc++ · 26 行 · 536B

正在加载代码…