UNPKG

createsudokupuzzle

Version:
47 lines (45 loc) 2.06 kB
/** * Finds the first empty cell in a Sudoku grid. * @param grid - The Sudoku grid. * @returns The row and column indices of the first empty cell, or an empty array if no empty cells are found. */ declare function findFirstEmpty(grid: Array<Array<number>>): [number, number] | []; /** * Finds all empty cells in a Sudoku grid. * @param grid - The Sudoku grid. * @returns The row and column indices of all empty cells, or an empty array if no empty cells are found. */ declare function findAllEmpty(grid: Array<Array<number>>): [number, number][]; /** * Checks if placing a number in a cell is valid according to Sudoku rules. * @param grid - The Sudoku grid. * @param row - The row index. * @param col - The column index. * @param num - The number to place. * @param outputReason - Whether to output the reason for invalid placement. * @returns If outputReason is undefined or false, it'll return boolean, else an object with `valid` indicating if the placement is valid and `reason` providing the reason if invalid. */ declare function validatePlacement(grid: Array<Array<number>>, row: number, col: number, num: number, outputReason?: boolean): { valid: boolean; reason?: string; } | boolean; /** * Validates a Sudoku grid. * @param puzzle - The Sudoku grid. * @param allowZero - Whether zeros are allowed in the grid, usually applicable to checking if a move is legal. * @returns True if valid, false otherwise. */ declare function validate(puzzle: Array<Array<number>>, allowZero?: boolean): boolean; /** * Generates a Sudoku puzzle with a specified number of blank cells. * @param blank - The number of blank cells. * @returns The generated Sudoku grid. */ declare function generate(blank?: number): Array<Array<number>>; /** * Solves a Sudoku puzzle. * @param puzzle - The Sudoku grid. * @returns The solved grid or throws an error if unsolvable. */ declare function solve(puzzle: Array<Array<number>>): Array<Array<number>>; export { findAllEmpty, findFirstEmpty, generate, solve, validate, validatePlacement };