Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
6a5ba8d
feat: add BitSet version of AllValidCode and CanonicalCode along with…
FlysonBot Mar 2, 2026
594f3d6
refactor: pass SolutionSpace directly from MastermindSession to Guess…
FlysonBot Mar 2, 2026
3c47b01
refactor: avoid large int[] allocation by avoiding generating allValid
FlysonBot Mar 2, 2026
a1e7640
refactor: move from code to index representation to avoid overhead
FlysonBot Mar 3, 2026
1ce6b5c
refactor: set threads as daemon threads so they shut down automatically
FlysonBot Mar 3, 2026
58b3859
feat: add getValidSample method to sample only valid secrets
FlysonBot Mar 3, 2026
3ae0da1
refactor: huge improvement on CanonicalCode by utilizing positional s…
FlysonBot Mar 4, 2026
c154a1b
feat: add BestFirstGuess to precompute and hardcode optimal first gue…
FlysonBot Mar 4, 2026
65efc6a
refactor: reorganize java classes and benchmarks into folders
FlysonBot Mar 4, 2026
1259740
refactor: return rank alongside first guess from BestFirstGuess.of()
FlysonBot Mar 4, 2026
cd61ae1
fix: ExpectedSize.convertSampleRankToExpectedSize overflow issue
FlysonBot Mar 4, 2026
5d94aed
fix: suggestGuessWithDetails call getSecrets().length on first guess
FlysonBot Mar 4, 2026
fa7b9f9
feat: add incremental feedback computation for faster first filter
FlysonBot Mar 5, 2026
c504bb9
docs: add inline comments explaining key algorithms
FlysonBot Mar 5, 2026
63025f8
chore: remove currently unneeeded GitHub workflow
FlysonBot Mar 5, 2026
622ce51
refactor: rename parititon params in CanonicalCode to frequency/color…
FlysonBot Mar 5, 2026
33acbda
perf: replace new Random() with ThreadLocalRandom in SampledCode
FlysonBot Mar 5, 2026
13d31b8
refactor: extract computing logic from BestFirstGuess to BestFirstGue…
FlysonBot Mar 5, 2026
143309a
test: add getValidSample tests covering both sampling paths and edge …
FlysonBot Mar 5, 2026
77c988a
test: add getValidSample tests covering both sampling paths and edge …
FlysonBot Mar 5, 2026
91551a7
test: add two-filter test to SolutionSpace convering the standard fil…
FlysonBot Mar 5, 2026
479f5c5
test: add suggestGuessWithDetails test verifying first-guess table in…
FlysonBot Mar 5, 2026
fd18153
test: more test to improve coverage
FlysonBot Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 0 additions & 44 deletions .github/workflows/coverage.yaml

This file was deleted.

46 changes: 0 additions & 46 deletions .github/workflows/deploy_sphinx.yaml

This file was deleted.

41 changes: 0 additions & 41 deletions .github/workflows/ossf_scorecard.yml

This file was deleted.

39 changes: 0 additions & 39 deletions .github/workflows/release_pypi.yaml

This file was deleted.

12 changes: 7 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

Mastermind solver using Java algorithms (performance) + Python UI (terminal).
Goal: Efficiently solve c=9, d=9 cases.
Status: Rewriting codebase; currently focused on Java algorithm only.
Status: Java algorithm complete and performing well (~2s for a full 9x9 solve). Currently in cleanup phase (comments,
tests, chores). Python UI not yet started.

### Code Organization

Expand All @@ -20,13 +21,14 @@ Status: Rewriting codebase; currently focused on Java algorithm only.
5. `GuessStrategy.select()` — chooses which guesses and secrets arrays to pass into `BestGuess`
6. `MastermindSession` — manages a full game: history, solution space, strategy-based suggestions, undo

### Next Move / Current Move
### Current Focus

- Run a 9x9 demo and profile the code to determine where the bottleneck is.
- Continue micro-optimizing code to increase efficiency
- Java side mostly done; touching up code quality, expanding test coverage, misc chores.
- Next major phase: Python UI.

### Preference

- Stick to primitive type unless there is a reason not to.
- Unless necessary, do not write extra class and objects. Be simple.
- Do not run any tests or benchmark for me unless specifically instructed.
- Do not run any tests or benchmark for me unless specifically instructed.
- DO NOT TOUCH the average performance in benchmarks. Don't delete, don't modify, don't change, don't update.
59 changes: 0 additions & 59 deletions src/benchmarks/java/org/mastermind/FeedbackBenchmark.java

This file was deleted.

33 changes: 0 additions & 33 deletions src/benchmarks/java/org/mastermind/SampledCodeBenchmark.java

This file was deleted.

Loading