Repository navigation
feat: add bounded built-in search players - #20
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add a core-only opponent crate with a uniform seeded random baseline, iterative-deepening alpha-beta minimax, and UCT Monte Carlo tree search. Decisions include nodes, completed depth, evaluation, principal variation, and budget exhaustion. Node, depth, and injected-clock limits bound each search.
Players receive only a seat's observation and legal actions. New provided engine hooks reconstruct planning states, with Tic-Tac-Toe and Connect Four implementations; the dynamic adapter verifies the reconstructed observation. Search currently refuses hidden-information, stochastic, and simultaneous games until their sampling policies are available. Resource levels are explicitly provisional pending calibration.
Tests cover round-trip reconstruction through random full games, tactical wins, reproducible searches, time/node limits, malformed inputs, and minimax versus random from both seats. Service scheduling and public opponent routes follow as a separate unit. Rust CI, Web CI, and game benchmarks pass. The server test suite includes four new reconstruction/search tests, and dependency boundaries and core API compatibility pass.