A research-oriented Texas Hold’em solver for multiplayer games, with offline blueprint training, real-time subgame search, card abstraction clustering, and optional Python bindings.
项目简述: 面向德州扑克(可配置人数与桌况)的策略求解代码库,包含离线蓝图训练、实时子博弈搜索、抽象聚类与可利用度评估等模块。
| Directory | Role |
|---|---|
engine/ |
Game rules, state, players, information and action abstraction |
search/ |
Real-time subgame search (e.g. MCCFR-style tree search) |
offline_trainer/ |
Blueprint / offline training and strategy hashmaps |
metrics/ |
Exploitability, dumps, and related evaluation |
tree/ |
Game-tree node types |
clusters/ |
Abstraction clustering (preflop–river) |
support/ |
Config, utilities, query tools, I/O helpers |
python/ |
Pybind11 module and web-style query glue |
unit_tests/ |
Tests |
Headers and .cpp files use long, role-explicit basenames (for example table_betting_state, subgame_mccfr_engine, blueprint_frequency_map, poker_rts_pybind_module.cpp) so filenames read like a mini design doc. Class and type names inside the sources are mostly unchanged; only on-disk names and #include lines were remapped. The mapping used here is recorded in tools/batch_rename_sources.py for reference or reuse.
This tree does not ship a top-level build file; add the above folders (or src plus subpaths as needed) to your compiler include path and list the .cpp sources you need. The Pybind11 entry translation unit is src/python/poker_rts_pybind_module.cpp (plus src/python/py_session_query_tool.cpp and the rest of the engine). Runtime config is typically loaded from config.json in the working directory.
See LICENSE (MIT).