
Objetivo deste post
Publicamos o código-fonte usado na IA de Tetris. O código só é carregado quando você abre um arquivo.
Modelos usados
- DQN do stable-baselines3: os modelos de baixo nível com 7 ações (300 mil e 370 mil passos) e o modelo macro com 40 ações (300 mil passos). Os arquivos dos modelos não foram incluídos.
- Qwen2.5-3B-Instruct GGUF q4_k_m (llama-cpp-python): juiz do tabuleiro em texto, escolha do número do candidato
- Qwen2.5-VL-3B-Instruct (transformers): juiz do tabuleiro em imagem, escolha direta do lugar
Estrutura de pastas
- tetris: motor em C++ (tetris_engine), C API (tetris_c_api), tela em Qt6 e servidor TCP (main_window, tetris_widget), CMake
- local_tetris_env.py: ambiente gymnasium que encapsula o motor com ctypes
- simple_tetris_env.py: ambiente em Python puro usado quando o motor não foi compilado. Os formatos de observação e de ação são diferentes, então os modelos não podem ser trocados entre eles.
- macro_planning_env.py: o ambiente de 40 ações que escolhe uma vez por peça
- train_tetris_rl.py: treino DQN sem tela
- train_qt_live.py: mostra o modelo atual na tela em Qt durante o treino. Também tem um modo que treina com partidas jogadas por uma pessoa.
- qt_rl_client.py: conecta um modelo treinado à tela em Qt
- llm_teacher.py, vlm_teacher.py, llm_reward_wrapper.py: juízes de recompensa de LLM e VLM
- vlm_macro_client.py: cliente em que o VLM escolhe o lugar diretamente
- llm_macro_client.py: cálculo de candidatos e escolha do número pelo LLM
- moe_macro_policy.py: seleção de candidatos que mistura quatro regras
- config/rl_config.py: configuração do treino
Os resultados de build, os ambientes virtuais, os pesos dos modelos e os arquivos dos modelos treinados foram excluídos.
Código-fonte completo
25 arquivos · 4.969 linhas — abra uma pasta e clique em um arquivo para carregar o código.
Raiz do projeto
llm_macro_client.py
Carregando o código…
llm_reward_wrapper.py
Carregando o código…
llm_teacher.py
Carregando o código…
local_tetris_env.py
Carregando o código…
macro_planning_env.py
Carregando o código…
moe_macro_policy.py
Carregando o código…
project.md
Carregando o código…
qt_rl_client.py
Carregando o código…
requirements.txt
Carregando o código…
simple_tetris_env.py
Carregando o código…
train_qt_live.py
Carregando o código…
train_tetris_rl.py
Carregando o código…
vlm_macro_client.py
Carregando o código…
vlm_teacher.py
Carregando o código…
config/
config/__init__.py
Carregando o código…
config/rl_config.py
Carregando o código…
tetris/
tetris/CMakeLists.txt
Carregando o código…
tetris/src/main_window.cpp
Carregando o código…
tetris/src/main_window.h
Carregando o código…
tetris/src/main.cpp
Carregando o código…
tetris/src/tetris_c_api.cpp
Carregando o código…
tetris/src/tetris_engine.cpp
Carregando o código…
tetris/src/tetris_engine.h
Carregando o código…
tetris/src/tetris_widget.cpp
Carregando o código…
tetris/src/tetris_widget.h
Carregando o código…
COMMENTS · CHAPTER 06
O código-fonte completo e os modelos usados 0 comentários
Ainda não há comentários. Deixe uma pergunta ou algo que queira acrescentar.
Para publicar um comentário, comece com o Google e registre um apelido e um e-mail.
Começar com o Google