Skip to content

fix(experiments): rerun with corrected EEINSU die - #12

Merged
lukasschwab merged 4 commits into
experimentsfrom
fix/rerun-experiments-eeinsu
Mar 18, 2026
Merged

lukasschwab merged 4 commits into
experimentsfrom
fix/rerun-experiments-eeinsu

Conversation

@lukasschwab

@lukasschwab lukasschwab commented Mar 10, 2026 •

Copy link
Copy Markdown
Owner

Applies the EEINSU die correction (from #10 / #11) to the experiments branch and reruns all experiments.

Changes

  • Die fix: EEINSV → EEINSU on the experiments branch
  • Bug fix: cmd/sameness/sameness.go — evaluate() always used ClassicDice inside the loop regardless of the dice parameter. The original blog post's sameness chart was comparing Classic vs. Classic!
  • Improved output: cmd/playable_words now prints all key metrics
  • Data: raw experiment output in this gist

Updated Results

Metric Classic New (corrected) Blog (old New)
Playable words 276,339 261,803 ~257,822
Classic-exclusive 14,663 — ~18,517
New-exclusive — 127 134

Sameness (unique words in 10-game sessions, 1000 trials):

Dice Set Mean Min Max
Classic 771.9 332 1,433
New 850.3 405 1,543

The blog post's core conclusion — similar diversity of play between Classic and New Boggle — still holds, though New Boggle now shows ~10% more unique words per session (with the sameness bug fixed).

Ref: #10

exe.dev user and others added 4 commits March 10, 2026 21:00
- Apply EEINSV→EEINSU die correction on experiments branch
- Fix bug in cmd/sameness where evaluate() always used ClassicDice
  regardless of the dice parameter passed in
- Improve cmd/playable_words output to print all key metrics
- Add data/RESULTS.md with updated experiment results

Key changes in results:
- New Boggle playable words: 257,822 → 261,803 (+3,981)
- New-exclusive words: 134 → 127
- Classic-exclusive words: 18,517 → 14,663
- Sameness comparison now actually compares both dice sets

The blog post's core conclusion (similar diversity of play) holds.

Co-authored-by: Shelley <shelley@exe.dev>
- Check error return from dictionary.Load (errcheck)
- Remove unnecessary blank identifier assignments in range (gosimple S1005)
- Remove unnecessary guard around map access (gosimple S1036)

Co-authored-by: Shelley <shelley@exe.dev>
Experiment results are available for download separately.

Co-authored-by: Shelley <shelley@exe.dev>
@lukasschwab
lukasschwab merged commit e230ccb into experiments Mar 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant