feat: add AlgorithmicEvaluator, migrate to log crate, fix flush value calculation

- Add AlgorithmicEvaluator wrapper for direct hand evaluation without
  lookup tables, with proper Result-based error handling
- Replace all println! and #[cfg(debug_assertions)] debug output with
  log crate macros (log::info!, log::debug!, log::warn!)
- Fix calculate_flush_value to use base-13 encoding for unique flush
  hand values instead of simple linear sum
- Fix is_straight to use cleaner control flow for regular and wheel
  straight detection
- Remove jump table HighCard/value=0 guard in evaluate_5_card to
  simplify evaluation path
- Add evaluate_n_card_hand_public as pub(crate) for AlgorithmicEvaluator
- Add .gitignore to exclude target/ and .idea/ from version control
- Add comprehensive tests for AlgorithmicEvaluator (14 test cases)
- Update README with new API usage examples
- Add log dependency to Cargo.toml
- Add placeholder modules for future implementations (tables_new,
  benchmark_utils, integration_utils, test_utils)
This commit is contained in:
Jan-Peter von Hunnius 2026-05-11 20:22:32 +02:00
parent 51e1f58ef9
commit dd605e8a66
16 changed files with 1666 additions and 228 deletions

View file

@ -8,10 +8,10 @@ readme = "README.md"
license = "MIT"
repository = "https://github.com/jhunnius/rusty_marvin"
documentation = "https://docs.rs/holdem_core"
homepage = "https://github.com/your-org/holdem_core"
homepage = "https://github.com/jhunnius/rusty_marvin"
keywords = ["poker", "bot-testing", "texas-holdem", "testbed"]
categories = ["games", "api-bindings", "mathematics"]
exclude = ["docs/*", "target/*", "*.md"]
exclude = ["docs/*", "target/*"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
@ -24,6 +24,7 @@ tempfile = "3.23.0"
once_cell = "1.19"
chrono = { version = "0.4", features = ["serde"] }
indicatif = "0.17"
log = "0.4"
[dev-dependencies]
proptest = "1.0"