format code
This commit is contained in:
parent
38157d7b5e
commit
39cd50e8fb
4 changed files with 35 additions and 35 deletions
|
@ -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<usize>) -> Option<usize> {
|
||||
|
@ -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<usize> {
|
||||
|
|
|
@ -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:?}");
|
||||
|
||||
|
|
58
src/main.rs
58
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}");
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Reference in a new issue