1
0
Fork 0
sudoku_constraint_solver/src/main.rs
2023-10-08 23:28:12 +02:00

45 lines
1.4 KiB
Rust

pub mod board;
mod constrain;
mod rules;
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));
if constrain::constrain_board(&mut board, &rules::valid_board_sudoku) {
println!("{board}");
} else {
eprintln!("could not solve board!");
}
}