45 lines
1.4 KiB
Rust
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!");
|
|
}
|
|
}
|