diff --git a/src/board.rs b/src/board.rs index 3e1702e..ea28e04 100644 --- a/src/board.rs +++ b/src/board.rs @@ -44,9 +44,9 @@ impl Board { /** Set the value of a tile, or removes it if `None` is given. - + Returns the previous value or `None`. - + Panics if `x` or `y` are beyond the boards dimensions or `value` is greater or equal to `num_options`. */ pub fn set_tile(&mut self, x: usize, y: usize, value: Option) -> Option { @@ -63,7 +63,7 @@ impl Board { /** Get the value of a tile, or `None` if no value is known. - + Panics if `x` or `y` are beyond the boards dimensions. */ pub fn get_tile(&self, x: usize, y: usize) -> Option { diff --git a/src/constrain.rs b/src/constrain.rs index 39fabdf..c00964b 100644 --- a/src/constrain.rs +++ b/src/constrain.rs @@ -47,7 +47,7 @@ fn _constrain_board( valid.retain(|&opt| { board.set_tile(x, y, Some(opt)); - check_fn(&board) + check_fn(board) }); log::trace!("still valid {valid:?}"); diff --git a/src/main.rs b/src/main.rs index 1322a5e..a29c7b0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,35 +6,35 @@ fn main() { simple_logger::init_with_level(log::Level::Info).unwrap(); let mut board = board::Board::new(9, 9, 9); - board.set_tile(0, 1, Some(6 -1)); - board.set_tile(0, 2, Some(8 -1)); - board.set_tile(0, 4, Some(3 -1)); - board.set_tile(0, 7, Some(7 -1)); - board.set_tile(1, 0, Some(2 -1)); - board.set_tile(1, 3, Some(9 -1)); - board.set_tile(1, 6, Some(1 -1)); - board.set_tile(2, 1, Some(4 -1)); - board.set_tile(2, 4, Some(8 -1)); - board.set_tile(2, 5, Some(1 -1)); - board.set_tile(2, 8, Some(3 -1)); - board.set_tile(3, 2, Some(7 -1)); - board.set_tile(3, 6, Some(4 -1)); - board.set_tile(4, 3, Some(8 -1)); - board.set_tile(4, 4, Some(1 -1)); - board.set_tile(4, 5, Some(9 -1)); - board.set_tile(5, 2, Some(9 -1)); - board.set_tile(5, 6, Some(2 -1)); - board.set_tile(6, 0, Some(7 -1)); - board.set_tile(6, 3, Some(3 -1)); - board.set_tile(6, 4, Some(9 -1)); - board.set_tile(6, 7, Some(4 -1)); - board.set_tile(7, 2, Some(2 -1)); - board.set_tile(7, 5, Some(5 -1)); - board.set_tile(7, 8, Some(6 -1)); - board.set_tile(8, 1, Some(3 -1)); - board.set_tile(8, 4, Some(7 -1)); - board.set_tile(8, 6, Some(9 -1)); - board.set_tile(8, 7, Some(5 -1)); + board.set_tile(0, 1, Some(6 - 1)); + board.set_tile(0, 2, Some(8 - 1)); + board.set_tile(0, 4, Some(3 - 1)); + board.set_tile(0, 7, Some(7 - 1)); + board.set_tile(1, 0, Some(2 - 1)); + board.set_tile(1, 3, Some(9 - 1)); + board.set_tile(1, 6, Some(1 - 1)); + board.set_tile(2, 1, Some(4 - 1)); + board.set_tile(2, 4, Some(8 - 1)); + board.set_tile(2, 5, Some(1 - 1)); + board.set_tile(2, 8, Some(3 - 1)); + board.set_tile(3, 2, Some(7 - 1)); + board.set_tile(3, 6, Some(4 - 1)); + board.set_tile(4, 3, Some(8 - 1)); + board.set_tile(4, 4, Some(1 - 1)); + board.set_tile(4, 5, Some(9 - 1)); + board.set_tile(5, 2, Some(9 - 1)); + board.set_tile(5, 6, Some(2 - 1)); + board.set_tile(6, 0, Some(7 - 1)); + board.set_tile(6, 3, Some(3 - 1)); + board.set_tile(6, 4, Some(9 - 1)); + board.set_tile(6, 7, Some(4 - 1)); + board.set_tile(7, 2, Some(2 - 1)); + board.set_tile(7, 5, Some(5 - 1)); + board.set_tile(7, 8, Some(6 - 1)); + board.set_tile(8, 1, Some(3 - 1)); + board.set_tile(8, 4, Some(7 - 1)); + board.set_tile(8, 6, Some(9 - 1)); + board.set_tile(8, 7, Some(5 - 1)); if constrain::constrain_board(&mut board, &rules::valid_board_sudoku) { println!("{board}"); diff --git a/src/rules.rs b/src/rules.rs index f8599a8..3e3634a 100644 --- a/src/rules.rs +++ b/src/rules.rs @@ -98,8 +98,8 @@ pub fn valid_board_sudoku(board: &Board) -> bool { } // check 3x3 cells: must be unique - for x in [0,3,6] { - for y in [0,3,6] { + for x in [0, 3, 6] { + for y in [0, 3, 6] { let mut set = HashSet::new(); if !get_cell(board, x, y) .iter()