Difficulty tuning: slower grace ramp + harder default strategy (tangled)#46
Conversation
Higher levels were getting easier, not harder: grace tiles grew as level-1 (7 by level 8) and the only strategy (scatter) is the most forgiving. Two changes give an upward curve: - Grace tiles ramp slowly: 1 from level 2, 2 from level 5, 3 from level 15+ (was level - 1). Grace only adds selectability, so solvability is unaffected. - New default strategy `tangled`: peels low tiles first (fewer matches open at once → harder) but disperses each exposed upper tile into the base, so the top never forms a "ready-made" cluster. Measured ~20% fewer simultaneous matches than scatter (branching 7.6 vs 9.4) with 0% top-cluster — restoring the old default's difficulty without its artifact. scatter and the others remain selectable.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughIntroduces a new ChangesTangled Strategy and Grace-Tiles Ramp
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
src/utils/init-gameboard.test.tsOops! Something went wrong! :( ESLint: 9.39.4 TypeError: Converting circular structure to JSON src/utils/init-gameboard.tsOops! Something went wrong! :( ESLint: 9.39.4 TypeError: Converting circular structure to JSON src/utils/order-strategies.test.tsOops! Something went wrong! :( ESLint: 9.39.4 TypeError: Converting circular structure to JSON
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Follows up on production feedback that the game got easier as you climbed levels. Measured root cause: every per-level lever reduced difficulty — grace tiles grew as
level − 1(7 by level 8) and the only board strategy (scatter) is the most forgiving one we have.Changes
1. Grace tiles ramp slowly (
init-gameboard.ts)Was
level − 1. Now a slow step schedule:Grace only adds selectability, so solvability is unaffected.
2. New default strategy
tangled(order-strategies.ts)scatter(current default) is the most forgiving strategy; the harder existing ones (topDownRandom,bottomUpRandom) carry the "ready-made" top-cluster artifact.tangledpeels low tiles first (fewer matches open at once → harder) but pulls each exposed upper tile down into the base, so the top never clusters.Measured (branching = simultaneous legal moves; lower = harder; top-cluster = the artifact):
So
tangledrestores roughly the pre-scatterdifficulty without the artifact.scatterand the others stay selectable (dev switcher / env override).Notes
tangled. Production stays locked to the default (no player override).yarn lint/type-check/vitest(106) /buildall green.Summary by CodeRabbit
New Features
Enhancements