refactor: simplify scoring to remove efficiency-based complexity

- Remove efficiency calculation and game-over at 150%
- Remove optimal steps tracking and complex logic timing
- Simplify to time + keystrokes only scoring
- New formula: score = min(1000, (1000 - time_penalty - keystroke_penalty) × size_multiplier)
  - time_penalty = seconds / 10
  - keystroke_penalty = keystrokes / 2
  - size_multiplier = max(1.0, (rows × cols) / 500)
- Maze size-based multiplier rewards larger mazes
- Remove optimalSteps and efficiency from ScoreManager type
- Pass rows and cols to useScore for size calculation
- Align with vim-sudoku's simplified scoring approach
This commit is contained in:
2025-10-22 22:03:44 +01:00
parent 75ff8bc76e
commit 7ccf7cdd55
8 changed files with 16 additions and 2241 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ export function useGame(options: GameOptions, platformHook?: unknown): GameManag
const hero = cursor.hero;
const renderer = useHeroRender({ gameStatus: gameStatusManager.gameStatus, board, hero });
const scoreManager = useScore({ board, hero, gameStatusManager, keyManager });
const scoreManager = useScore({ board, hero, gameStatusManager, keyManager, rows, cols });
const gameManager: GameManager = {
containerRef,