@sudobility/sudojo_lib 0.0.83 → 0.0.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/authProviders.js.map +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useBoardEntry.js.map +1 -1
- package/dist/hooks/useDailyGame.js.map +1 -1
- package/dist/hooks/useGame.js.map +1 -1
- package/dist/hooks/useGamePersistence.js.map +1 -1
- package/dist/hooks/useGamePlay.d.ts +2 -2
- package/dist/hooks/useGamePlay.d.ts.map +1 -1
- package/dist/hooks/useGamePlay.js +3 -2
- package/dist/hooks/useGamePlay.js.map +1 -1
- package/dist/hooks/useGameSession.js.map +1 -1
- package/dist/hooks/useGameTeaching.js.map +1 -1
- package/dist/hooks/useGameTimer.js.map +1 -1
- package/dist/hooks/useHint.js.map +1 -1
- package/dist/hooks/useLearning.js.map +1 -1
- package/dist/hooks/useLevelGame.js.map +1 -1
- package/dist/hooks/useLevels.js.map +1 -1
- package/dist/hooks/useLocalStorage.js.map +1 -1
- package/dist/hooks/useSudoku.js.map +1 -1
- package/dist/hooks/useTechniques.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/stores/gamePlayStore.d.ts +1 -1
- package/dist/stores/gamePlayStore.d.ts.map +1 -1
- package/dist/stores/gamePlayStore.js +18 -2
- package/dist/stores/gamePlayStore.js.map +1 -1
- package/dist/test/setup.js.map +1 -1
- package/dist/types/currentGame.d.ts +6 -0
- package/dist/types/currentGame.d.ts.map +1 -1
- package/dist/types/currentGame.js.map +1 -1
- package/dist/types/display.js.map +1 -1
- package/dist/types/game.js.map +1 -1
- package/dist/types/gamePersistence.js.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/progress.js.map +1 -1
- package/dist/types/settings.js.map +1 -1
- package/dist/types/subscription.js.map +1 -1
- package/dist/types/sudoku.js.map +1 -1
- package/dist/utils/board.js.map +1 -1
- package/dist/utils/digitDisplay.js.map +1 -1
- package/dist/utils/hintExplanation.js.map +1 -1
- package/dist/utils/i18nKeys.js.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/localizedHint.js.map +1 -1
- package/dist/utils/progress.js.map +1 -1
- package/dist/utils/subscription.js.map +1 -1
- package/dist/utils/sudokuPresenter.js.map +1 -1
- package/dist/utils/sudokuScrambler.js.map +1 -1
- package/dist/utils/technique.js.map +1 -1
- package/dist/utils/theme.js.map +1 -1
- package/dist/utils/time.js.map +1 -1
- package/dist/utils/validation.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sudokuScrambler.js","sourceRoot":"","sources":["../../src/utils/sudokuScrambler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sudokuScrambler.js","sourceRoot":"","sources":["../../src/utils/sudokuScrambler.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Sudoku board scrambler - ported from renderable/utils/Scrambler.kt\n *\n * Generates permutations for rows, columns, and digits to create unique puzzles\n * while preserving Sudoku validity.\n */\n\nimport { columnOf, rowOf, type SudokuCell } from '../types/sudoku';\n\n// =============================================================================\n// Scrambler Protocol\n// =============================================================================\n\nexport interface ScramblerProtocol {\n scramble9(symmetrical: boolean, seed?: number): number[];\n}\n\n// =============================================================================\n// Random Utilities\n// =============================================================================\n\n/**\n * Simple seeded random number generator\n */\nclass SeededRandom {\n private seed: number;\n\n constructor(seed: number) {\n this.seed = seed;\n }\n\n nextInt(): number {\n // Linear congruential generator\n this.seed = (this.seed * 1664525 + 1013904223) >>> 0;\n return this.seed;\n }\n}\n\n// =============================================================================\n// Main Scrambler\n// =============================================================================\n\n/**\n * Scrambler implementation that matches the Kotlin version\n */\nexport const Scrambler: ScramblerProtocol = {\n scramble9(symmetrical: boolean, seed?: number): number[] {\n const random = new SeededRandom(seed ?? Math.floor(Date.now() / 1000));\n\n const block0 = scramble3(symmetrical, random);\n const block1 = scramble3(symmetrical, random);\n const block2 = symmetrical ? block0 : scramble3(symmetrical, random);\n const blocks: number[][] = [block0, block1, block2];\n\n const board = scramble3(symmetrical, random);\n const result: number[] = [];\n\n for (let i = 0; i < 3; i++) {\n const target = board[i] ?? 0;\n const block = blocks[i] ?? [0, 1, 2];\n for (let j = 0; j < 3; j++) {\n result.push(target * 3 + (block[j] ?? 0));\n }\n }\n\n return result;\n },\n};\n\n/**\n * Non-scrambler that returns identity permutation\n */\nexport const NonScrambler: ScramblerProtocol = {\n scramble9(_symmetrical: boolean, _seed?: number): number[] {\n return [0, 1, 2, 3, 4, 5, 6, 7, 8];\n },\n};\n\nfunction hashCells(cells: SudokuCell[]): number {\n let hash = 2166136261;\n for (const cell of cells) {\n const given = cell.given ?? 0;\n const solution = cell.solution ?? 0;\n hash ^= (given * 11 + solution) & 0xff;\n hash = Math.imul(hash, 16777619) >>> 0;\n }\n return hash >>> 0;\n}\n\n/**\n * Generates a permutation of [0, 1, 2]\n */\nfunction scramble3(symmetrical: boolean, random: SeededRandom): number[] {\n if (symmetrical) {\n const seed = random.nextInt();\n // 50% chance for identity or reverse\n return seed % 2 === 0 ? [0, 1, 2] : [2, 1, 0];\n } else {\n // Generate 3 random values and sort to get permutation\n const values = [random.nextInt(), random.nextInt(), random.nextInt()];\n const sorted = [...values].sort((a, b) => a - b);\n return sorted.map(v => values.indexOf(v));\n }\n}\n\n// =============================================================================\n// Board Scrambling\n// =============================================================================\n\nexport interface ScrambleResult {\n /** Scrambled cells array */\n cells: SudokuCell[];\n /** Digit mapping from original (1-9) to scrambled (1-9) */\n digitMapping: Map<number, number>;\n /** Reverse digit mapping from scrambled to original */\n reverseDigitMapping: Map<number, number>;\n}\n\n/**\n * Scramble a board using the given scrambler\n *\n * @param scrambler - Scrambler protocol implementation\n * @param cells - Original 81 cells\n * @param symmetrical - Whether to use symmetrical scrambling\n * @returns Scrambled cells and digit mapping\n */\nexport function scrambleBoard(\n scrambler: ScramblerProtocol,\n cells: SudokuCell[],\n symmetrical: boolean = false\n): ScrambleResult {\n const seedBase = hashCells(cells);\n const rows = scrambler.scramble9(symmetrical, seedBase);\n const columns = scrambler.scramble9(symmetrical, seedBase + 1);\n const numbers = scrambler.scramble9(symmetrical, seedBase + 2);\n\n // Create digit mapping (1-based to 1-based)\n const digitMapping = new Map<number, number>();\n const reverseDigitMapping = new Map<number, number>();\n for (let i = 0; i < 9; i++) {\n const original = i + 1;\n const scrambled = (numbers[i] ?? i) + 1;\n digitMapping.set(original, scrambled);\n reverseDigitMapping.set(scrambled, original);\n }\n\n const scrambledCells = Array.from({ length: 81 }, (_, index) => {\n const x = columnOf(index);\n const y = rowOf(index);\n const scrambledY = rows[y] ?? y;\n const scrambledX = columns[x] ?? x;\n const existing = cells[scrambledY * 9 + scrambledX];\n if (!existing) {\n throw new Error(`Missing cell at index ${scrambledY * 9 + scrambledX}`);\n }\n\n return {\n index,\n solution: mapDigit(existing.solution, numbers),\n given: mapDigit(existing.given, numbers),\n input: mapDigit(existing.input, numbers),\n pencilmarks: mapPencilmarks(existing.pencilmarks, numbers),\n };\n });\n\n return {\n cells: scrambledCells,\n digitMapping,\n reverseDigitMapping,\n };\n}\n\n/**\n * Map a digit using the lookup array\n * @param digit - Original digit (1-9) or null\n * @param lookup - Permutation array (0-indexed, returns 0-indexed)\n * @returns Mapped digit (1-9) or null\n */\nfunction mapDigit(digit: number | null, lookup: number[]): number | null {\n if (digit === null || digit === 0) return null;\n // digit is 1-based, lookup is 0-indexed\n const mapped = lookup[digit - 1];\n return mapped !== undefined ? mapped + 1 : digit;\n}\n\n/**\n * Map pencilmarks array using the lookup array\n * Matches Kotlin: map(digits: Array<Int>?, lookup: Array<Int>?): Array<Int>?\n */\nfunction mapPencilmarks(\n pencilmarks: number[] | null,\n lookup: number[]\n): number[] | null {\n if (pencilmarks === null) return null;\n return pencilmarks\n .map(digit => mapDigit(digit, lookup))\n .filter((d): d is number => d !== null)\n .sort((a, b) => a - b);\n}\n\n// =============================================================================\n// Board Parsing\n// =============================================================================\n\n/**\n * Parse a puzzle string (81 chars of 0-9 or .) into cells\n *\n * @param puzzle - 81 character string\n * @param solution - 81 character solution string (optional)\n * @returns Array of 81 cells\n */\nexport function parsePuzzleString(\n puzzle: string,\n solution?: string\n): SudokuCell[] {\n if (puzzle.length !== 81) {\n throw new Error(`Invalid puzzle string length: ${puzzle.length}`);\n }\n\n if (solution && solution.length !== 81) {\n throw new Error(`Invalid solution string length: ${solution.length}`);\n }\n\n return Array.from({ length: 81 }, (_, index) => {\n const givenChar = puzzle[index];\n if (givenChar === undefined) {\n throw new Error(`Missing puzzle character at index ${index}`);\n }\n const givenDigit = parseDigit(givenChar);\n\n const solutionChar = solution?.[index];\n const solutionDigit = solutionChar ? parseDigit(solutionChar) : null;\n\n return {\n index,\n solution: solutionDigit,\n given: givenDigit,\n input: null,\n pencilmarks: null,\n };\n });\n}\n\n/**\n * Parse a character to a digit (1-9) or null\n */\nfunction parseDigit(char: string): number | null {\n if (char === '0' || char === '.') return null;\n const digit = parseInt(char, 10);\n if (digit >= 1 && digit <= 9) return digit;\n return null;\n}\n\n/**\n * Convert cells to puzzle string\n */\nexport function cellsToPuzzleString(cells: SudokuCell[]): string {\n return cells.map(cell => cell.given?.toString() ?? '0').join('');\n}\n\n/**\n * Convert cells to current state string (given + input)\n */\nexport function cellsToStateString(cells: SudokuCell[]): string {\n return cells\n .map(cell => (cell.given ?? cell.input)?.toString() ?? '0')\n .join('');\n}\n\n/**\n * Convert cells to input-only string\n */\nexport function cellsToInputString(cells: SudokuCell[]): string {\n return cells.map(cell => cell.input?.toString() ?? '0').join('');\n}\n\n/**\n * Convert cells to pencilmarks string (comma-separated)\n * Matches Kotlin: pencilmarksParam - returns empty string for null pencilmarks\n */\nexport function cellsToPencilmarksString(cells: SudokuCell[]): string {\n return cells\n .map(cell => {\n if (cell.pencilmarks !== null) {\n return cell.pencilmarks.join('');\n } else {\n return '';\n }\n })\n .join(',');\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"technique.js","sourceRoot":"","sources":["../../src/utils/technique.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"technique.js","sourceRoot":"","sources":["../../src/utils/technique.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC","sourcesContent":["/**\n * Technique-related utilities\n */\n\nexport { getTechniqueIconUrl } from '@sudobility/sudojo_types';\n"]}
|
package/dist/utils/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/utils/theme.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,uCAAuC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAEhD;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC;IAClD,OAAO,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO;QAC9D,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,UAA2B,EAC3B,WAA0B;IAE1B,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAc;IAEd,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAC;AACrE,CAAC"}
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/utils/theme.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,uCAAuC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAEhD;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC;IAClD,OAAO,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO;QAC9D,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,UAA2B,EAC3B,WAA0B;IAE1B,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAc;IAEd,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAC;AACrE,CAAC","sourcesContent":["/**\n * Theme utilities\n */\n\n/** Available theme options */\nexport type ThemePreference = 'light' | 'dark' | 'system';\n\n/** Resolved theme (without system option) */\nexport type ResolvedTheme = 'light' | 'dark';\n\n/** Storage key for theme preference */\nexport const THEME_STORAGE_KEY = 'sudojo-theme';\n\n/**\n * Detect system color scheme preference\n *\n * @returns 'dark' if system prefers dark mode, 'light' otherwise\n */\nexport function getSystemTheme(): ResolvedTheme {\n if (typeof window === 'undefined') return 'light';\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n}\n\n/**\n * Resolve theme preference to actual theme\n *\n * @param preference - User's theme preference\n * @param systemTheme - Current system theme\n * @returns Resolved theme ('light' or 'dark')\n */\nexport function resolveTheme(\n preference: ThemePreference,\n systemTheme: ResolvedTheme\n): ResolvedTheme {\n if (preference === 'system') {\n return systemTheme;\n }\n return preference;\n}\n\n/**\n * Check if a value is a valid theme preference\n *\n * @param value - Value to check\n * @returns Whether value is a valid theme preference\n */\nexport function isValidThemePreference(\n value: unknown\n): value is ThemePreference {\n return value === 'light' || value === 'dark' || value === 'system';\n}\n"]}
|
package/dist/utils/time.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;IAE1B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/F,CAAC;IACD,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,UAAkB;IAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;QAC9B,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;QACrC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;IAE1B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/F,CAAC;IACD,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,UAAkB;IAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;QAC9B,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;QACrC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC","sourcesContent":["/**\n * Time formatting utilities\n */\n\n/**\n * Format seconds into MM:SS or HH:MM:SS string\n *\n * @param seconds - Total seconds to format\n * @returns Formatted time string\n *\n * @example\n * formatTime(65) // \"1:05\"\n * formatTime(3665) // \"1:01:05\"\n */\nexport function formatTime(seconds: number): string {\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const secs = seconds % 60;\n\n if (hours > 0) {\n return `${hours}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;\n }\n return `${minutes}:${secs.toString().padStart(2, '0')}`;\n}\n\n/**\n * Parse a time string back to seconds\n *\n * @param timeString - Time string in MM:SS or HH:MM:SS format\n * @returns Total seconds\n */\nexport function parseTime(timeString: string): number {\n const parts = timeString.split(':').map(Number);\n if (parts.length === 2) {\n const [minutes, secs] = parts;\n return (minutes ?? 0) * 60 + (secs ?? 0);\n }\n if (parts.length === 3) {\n const [hours, minutes, secs] = parts;\n return (hours ?? 0) * 3600 + (minutes ?? 0) * 60 + (secs ?? 0);\n }\n return 0;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Game validation utilities for checking mistakes, completion, and game state\n */\n\nimport type { GameBoard, GameState } from '../types';\nimport { BOARD_SIZE, parseBoardString } from '@sudobility/sudojo_types';\n\n/**\n * Checks if a cell value matches the solution\n * @param board - GameBoard\n * @param solution - 81-character solution string\n * @param row - Row index\n * @param col - Column index\n * @returns true if the cell value matches the solution (or is empty)\n */\nexport function isCellCorrect(\n board: GameBoard,\n solution: string,\n row: number,\n col: number\n): boolean {\n const cell = board[row]?.[col];\n if (!cell || cell.value === null) {\n return true; // Empty cells are not incorrect\n }\n\n const solutionArray = parseBoardString(solution);\n const correctValue = solutionArray[row]?.[col];\n return cell.value === correctValue;\n}\n\n/**\n * Checks if a specific value would be correct for a cell\n * @param solution - 81-character solution string\n * @param row - Row index\n * @param col - Column index\n * @param value - Value to check (1-9)\n * @returns true if the value matches the solution\n */\nexport function isValueCorrect(\n solution: string,\n row: number,\n col: number,\n value: number\n): boolean {\n const solutionArray = parseBoardString(solution);\n return solutionArray[row]?.[col] === value;\n}\n\n/**\n * Gets all cells with incorrect values\n * @param board - GameBoard\n * @param solution - 81-character solution string\n * @returns Array of {row, column} positions with incorrect values\n */\nexport function getIncorrectCells(\n board: GameBoard,\n solution: string\n): Array<{ row: number; column: number }> {\n const solutionArray = parseBoardString(solution);\n const incorrectCells: Array<{ row: number; column: number }> = [];\n\n for (let row = 0; row < BOARD_SIZE; row++) {\n for (let col = 0; col < BOARD_SIZE; col++) {\n const cell = board[row]?.[col];\n if (cell && cell.value !== null && !cell.isClue) {\n const correctValue = solutionArray[row]?.[col];\n if (cell.value !== correctValue) {\n incorrectCells.push({ row, column: col });\n }\n }\n }\n }\n\n return incorrectCells;\n}\n\n/**\n * Updates the error state of all cells based on the solution\n * @param board - GameBoard to update\n * @param solution - 81-character solution string\n * @param showErrors - Whether to show errors\n * @returns Updated GameBoard\n */\nexport function updateCellErrors(\n board: GameBoard,\n solution: string,\n showErrors: boolean\n): GameBoard {\n if (!showErrors) {\n // Clear all errors\n return board.map(row => row.map(cell => ({ ...cell, isError: false })));\n }\n\n const solutionArray = parseBoardString(solution);\n\n return board.map((row, rowIndex) =>\n row.map((cell, colIndex) => {\n if (cell.value === null || cell.isClue) {\n return { ...cell, isError: false };\n }\n const correctValue = solutionArray[rowIndex]?.[colIndex];\n return {\n ...cell,\n isError: cell.value !== correctValue,\n };\n })\n );\n}\n\n/**\n * Checks if the game is complete (all cells filled correctly)\n * @param board - GameBoard\n * @param solution - 81-character solution string\n * @returns true if all cells are filled with correct values\n */\nexport function isGameComplete(board: GameBoard, solution: string): boolean {\n const solutionArray = parseBoardString(solution);\n\n for (let row = 0; row < BOARD_SIZE; row++) {\n for (let col = 0; col < BOARD_SIZE; col++) {\n const cell = board[row]?.[col];\n const correctValue = solutionArray[row]?.[col];\n\n if (!cell || cell.value === null || cell.value !== correctValue) {\n return false;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks if the board is fully filled (regardless of correctness)\n * @param board - GameBoard\n * @returns true if all cells have values\n */\nexport function isBoardFilled(board: GameBoard): boolean {\n for (let row = 0; row < BOARD_SIZE; row++) {\n for (let col = 0; col < BOARD_SIZE; col++) {\n if (board[row]?.[col]?.value === null) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * Counts the number of mistakes in the current board\n * @param board - GameBoard\n * @param solution - 81-character solution string\n * @returns Number of incorrect cells\n */\nexport function countMistakes(board: GameBoard, solution: string): number {\n return getIncorrectCells(board, solution).length;\n}\n\n/**\n * Updates highlight state for all cells based on selected cell\n * @param board - GameBoard\n * @param selectedRow - Selected row (or null if nothing selected)\n * @param selectedCol - Selected column (or null if nothing selected)\n * @param highlightRelated - Whether to highlight related cells\n * @param highlightSameValue - Whether to highlight cells with same value\n * @returns Updated GameBoard\n */\nexport function updateCellHighlights(\n board: GameBoard,\n selectedRow: number | null,\n selectedCol: number | null,\n highlightRelated: boolean,\n highlightSameValue: boolean\n): GameBoard {\n const selectedValue =\n selectedRow !== null && selectedCol !== null\n ? board[selectedRow]?.[selectedCol]?.value\n : null;\n\n return board.map((row, rowIndex) =>\n row.map((cell, colIndex) => {\n const isSelected = rowIndex === selectedRow && colIndex === selectedCol;\n\n let isHighlighted = false;\n if (highlightRelated && selectedRow !== null && selectedCol !== null) {\n // Same row\n if (rowIndex === selectedRow) isHighlighted = true;\n // Same column\n if (colIndex === selectedCol) isHighlighted = true;\n // Same block\n const selectedBlockRow = Math.floor(selectedRow / 3);\n const selectedBlockCol = Math.floor(selectedCol / 3);\n const cellBlockRow = Math.floor(rowIndex / 3);\n const cellBlockCol = Math.floor(colIndex / 3);\n if (\n cellBlockRow === selectedBlockRow &&\n cellBlockCol === selectedBlockCol\n ) {\n isHighlighted = true;\n }\n }\n\n const isSameValue =\n highlightSameValue &&\n selectedValue !== null &&\n cell.value === selectedValue &&\n !isSelected;\n\n return {\n ...cell,\n isSelected,\n isHighlighted: isHighlighted && !isSelected,\n isSameValue,\n };\n })\n );\n}\n\n/**\n * Clears all highlights from the board\n * @param board - GameBoard\n * @returns Board with no highlights\n */\nexport function clearHighlights(board: GameBoard): GameBoard {\n return board.map(row =>\n row.map(cell => ({\n ...cell,\n isSelected: false,\n isHighlighted: false,\n isSameValue: false,\n }))\n );\n}\n\n/**\n * Auto-removes pencilmarks from related cells when a value is placed\n * @param board - GameBoard\n * @param row - Row where value was placed\n * @param col - Column where value was placed\n * @param value - Value that was placed\n * @returns Updated GameBoard with pencilmarks removed\n */\nexport function autoRemovePencilmarks(\n board: GameBoard,\n row: number,\n col: number,\n value: number\n): GameBoard {\n const blockStartRow = Math.floor(row / 3) * 3;\n const blockStartCol = Math.floor(col / 3) * 3;\n\n return board.map((r, rowIndex) =>\n r.map((cell, colIndex) => {\n // Check if this cell is in the same row, column, or block\n const inSameRow = rowIndex === row;\n const inSameCol = colIndex === col;\n const inSameBlock =\n rowIndex >= blockStartRow &&\n rowIndex < blockStartRow + 3 &&\n colIndex >= blockStartCol &&\n colIndex < blockStartCol + 3;\n\n if (inSameRow || inSameCol || inSameBlock) {\n const newPencilmarks = new Set(cell.pencilmarks);\n newPencilmarks.delete(value);\n return { ...cell, pencilmarks: newPencilmarks };\n }\n\n return cell;\n })\n );\n}\n\n/**\n * Gets the progress percentage (filled cells / total empty cells in original puzzle)\n * @param board - GameBoard\n * @returns Progress percentage (0-100)\n */\nexport function getProgressPercentage(board: GameBoard): number {\n let clueCount = 0;\n let filledCount = 0;\n\n for (let row = 0; row < BOARD_SIZE; row++) {\n for (let col = 0; col < BOARD_SIZE; col++) {\n const cell = board[row]?.[col];\n if (cell) {\n if (cell.isClue) {\n clueCount++;\n } else if (cell.value !== null) {\n filledCount++;\n }\n }\n }\n }\n\n const totalEmptyCells = BOARD_SIZE * BOARD_SIZE - clueCount;\n if (totalEmptyCells === 0) return 100;\n\n return Math.round((filledCount / totalEmptyCells) * 100);\n}\n\n/**\n * Validates the entire game state\n * @param state - GameState\n * @returns Object with validation results\n */\nexport function validateGameState(state: GameState): {\n isComplete: boolean;\n isFilled: boolean;\n mistakeCount: number;\n progressPercentage: number;\n incorrectCells: Array<{ row: number; column: number }>;\n} {\n return {\n isComplete: isGameComplete(state.board, state.scrambledSolution),\n isFilled: isBoardFilled(state.board),\n mistakeCount: countMistakes(state.board, state.scrambledSolution),\n progressPercentage: getProgressPercentage(state.board),\n incorrectCells: getIncorrectCells(state.board, state.scrambledSolution),\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/sudojo_lib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.84",
|
|
4
4
|
"description": "Business logic library for Sudojo app",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"license": "BUSL-1.1",
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@sudobility/di": "^1.5.34",
|
|
50
|
-
"@sudobility/sudojo_client": "^0.0.
|
|
50
|
+
"@sudobility/sudojo_client": "^0.0.76",
|
|
51
51
|
"@sudobility/sudojo_types": "^1.2.31",
|
|
52
52
|
"@sudobility/types": "^1.9.50",
|
|
53
53
|
"@tanstack/react-query": "^5.90.11",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
},
|
|
74
74
|
"peerDependencies": {
|
|
75
75
|
"@sudobility/di": "^1.5.34",
|
|
76
|
-
"@sudobility/sudojo_client": "^0.0.
|
|
76
|
+
"@sudobility/sudojo_client": "^0.0.76",
|
|
77
77
|
"@sudobility/sudojo_types": "^1.2.31",
|
|
78
78
|
"@sudobility/types": "^1.9.50",
|
|
79
79
|
"@tanstack/react-query": ">=5.0.0",
|