summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* docs: Add a docs folder on building, the code's structure, the search and ↵HEADv0.1.0masterDylan11 hours10-2/+1367
| | | | | | | | | | training Covers building and dependencies, the architecture and game loop, the board representation, the Player and MinimaxPlayer traits, the minimax search, the network and self-play training, benchmarking, and how to add a player. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* refactor: Drop the neural command in favour of play's -S/-T weights filesDylan12 hours3-35/+5
| | | | | | | | -S and -T already accept a weights file, so the neural subcommand was only a shorthand for one of them. Update the README and CLAUDE.md to show the play form instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: Colour the game result and show scores to 5 significant figuresDylan18 hours2-6/+77
| | | | | | | | The game-over line is bold green for a win, naming the winning player, and bold yellow for a draw. The last-turn panel shows a minimax player's score to 5 significant figures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: Multi-threaded training; play matches every 10 generationsDylan18 hours8-38/+189
| | | | | | | | | | | | Gradients and losses are computed on rayon's pool in fixed-size chunks summed in order, so the weights are the same on any number of threads. Self-play uses the same pool, and the output shows the training time. The matches against the earlier network and ClaudePlayer now run only every --match-every generations (default 10), against the generation that last played them, read back from its saved file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: Draw by threefold repetitionDylan18 hours11-85/+385
| | | | | | | | | | A position coming up for the third time with the same side to move ends the game as a draw, in the TUI and in training self-play. Players now get the game's earlier boards in pick_move, and the search scores the first repetition on its path as a draw, so a side that is ahead avoids one and a side that is behind seeks one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: Parse the command line with clapDylan19 hours5-47/+311
| | | | | | | | Players are now chosen with --sheep/-S and --tiger/-T (human, claude or a weights file) and --time/-t, instead of by editing main.rs. Every training setting is a train option, and --help covers all commands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs: Add READMEDylan41 hours1-0/+85
| | | | Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: Resume training from any weights; balance training by outcomeDylan41 hours4-20/+109
| | | | | | | | | | | | - train --from <weights> starts from any saved network; without it, training still carries on from the out dir's newest generation - Each epoch takes as many positions from sheep-win games as from tiger-win games (Config::balance_outcomes, on by default) - Training output shows the error on tiger-win and sheep-win positions separately, before and after training - Fix a broken sentence in CLAUDE.md's cache description Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: Neural network opponent trained by self-playDylan5 days11-27/+1162
| | | | | | | | | | | | | - NeuralPlayer: a MinimaxPlayer that scores positions with a small MLP (network.rs, hand-written backprop and Adam, no new dependencies) - train subcommand: self-play with TD(lambda) targets, cut at random exploration moves so sheep blunders don't bias the net towards tigers - neural subcommand: play against a trained network - evaluate now gets the side to move - Board symmetries; the search cache keys by the canonical board, which halves the depth-9 bench time with identical moves and scores Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: OptimisationDylan2026-10-2310-75/+632
| | | | Added benchmarking capabilities
* feat: More improvements to UIDylan2026-10-236-48/+217
|
* feat: Improvements to UIDylan2026-10-2210-198/+2775
| | | | Now uses ratatui
* feat: Initial commitDylan2026-10-1916-0/+2199
What works: - Minimax search - With a simple player claude designed - Manual player - Move generation - Board display What needs improvement: - Manual player - Game coordinator - Draw checking - Nix setup