1use sodo::{Cell, Solver, Sudoku};
2
3fn main() {
4 let mut sudoku = Sudoku::new(9);
6
7 sudoku.set(0, 0, 5).unwrap();
9 sudoku.set(0, 1, 3).unwrap();
10 sudoku.set(0, 4, 7).unwrap();
11
12 println!("Valid: {}", sudoku.is_valid());
14 println!("Complete: {}", sudoku.is_complete());
15
16 let candidates = sudoku.candidates(0, 2);
18 println!("Candidates at (0,2): {:?}", candidates);
19
20 match sudoku.get(0, 0) {
22 Some(Cell::Filled(v)) => println!("Cell (0,0) = {v}"),
23 Some(Cell::Given(v)) => println!("Cell (0,0) = {v} (given)"),
24 Some(Cell::Empty) => println!("Cell (0,0) is empty"),
25 None => println!("Out of bounds"),
26 }
27
28 let solver = Solver::new();
30 if let Some((r, c, val)) = solver.hint(&sudoku) {
31 println!("Hint: Place {val} at ({r}, {c})");
32 }
33}