[][src]Function sudokugen::solver::solve

pub fn solve(board: &Board) -> Result<Board, UnsolvableError>

Helper function to solve a sudoku puzzle.

Given a reference to a board, this function returns a new board representing a solution to that sudoku puzzle.

use sudokugen::solver::solve;
use sudokugen::board::Board;

let board: Board =
    ". . . | 4 . . | 8 7 .
     4 . 3 | . . . | . . .
     2 . . | . . 3 | . . 9
     ---------------------
     . . 6 | 2 . . | . . 7
     . . . | 9 . 6 | . . .
     3 . 9 | . 8 . | . . .
     ---------------------
     . . . | . . . | . 4 .
     8 7 2 | 5 . . | . . .
     . . . | 7 2 . | 6 . .
    "
       .parse()
       .unwrap();

assert_eq!(
    solve(&board).unwrap(),
    "695412873413879526287653419146235987728946135359187264561398742872564391934721658"
    .parse()
    .unwrap()
);

If the puzzle has no possible solutions, this function returns UnsolvableError.

let board = "123. ...4 .... ....".parse().unwrap();
assert!(matches!(solve(&board), Err(UnsolvableError)));