feat: refactor AlgorithmicEvaluator to stateless, add game engine module and holdem_sim CLI

- Refactor AlgorithmicEvaluator from stateful Arc<Evaluator> wrapper to
  pure stateless evaluator with zero-allocation construction
- Extract shared evaluation logic into pub(crate) methods, eliminating
  ~220 lines of duplicated code from Evaluator
- Add game module: table, hand runner, tournament, bots, config, stats
- Add holdem_sim CLI binary crate for running simulations
- Convert MathEvaluator to thread-safe singleton with Arc<Inner> pattern
- Replace heap-allocated combination generation with const-generics
  stack-based approach in AlgorithmicEvaluator::evaluate_n_card_hand
- Add thiserror 2 dependency for GameError derive
- Update docs: README, ACHIEVEMENTS, ROADMAP
This commit is contained in:
Jan-Peter von Hunnius 2026-05-18 15:12:34 +02:00
parent dd605e8a66
commit 17d0440c86
43 changed files with 12329 additions and 494 deletions

View file

@ -16,25 +16,30 @@
- Game type configurations (Cash/SNG/MTT, buyins, blinds, hands per level, etc.)
- Simulation parameters (hands/tournaments count, buyin thresholds for bots, etc.)
### Phase 2: Simulation Testbed
### Phase 2: Simulation Testbed ✅
**Goal:** Mass simulation capability
**Testbed core**
- Tournament/cash game runners
- Parallel simulation engine
- Result collection and analysis
- Bot interface with early folding capability
- Bot performance metrics & visualization
- Simulation and game factories
- Configuration-driven experiment runner
**Testbed core** ✅
- Tournament/cash game runners ✅
- Result collection and analysis ✅
- Bot interface with early folding capability ✅
- Bot performance metrics & summary ✅
- Simulation and game factories ✅
- Configuration-driven experiment runner ✅
- Seed control for reproducibility ✅
**Remaining for mass simulation**
- Parallel simulation engine (multi-threading)
- Result visualization (charts/graphs)
- Rebuy/addon support for tournaments
---
### Phase 3: Bot Framework
**Goal:** All bot types with playability enhancement
**Bot core implementations**
- Generic helper functions for strategies
**Bot core implementations** (partially complete — basic bots exist)
- ~~Generic helper functions for strategies~~ (basic bots done: CallBot, FoldBot, RaiseBot, RandomBot)
- Modular Strategy per stage and game situation
- Rule-based bot with configurable thresholds – port from Java
- Nash equilibrium calculator for SNG endgame – port from Java