From 12d870f34f2e01faebccdd202b27e220baa0edcc Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Tue, 20 Feb 2024 01:07:01 +0100 Subject: [PATCH] Impl: Convert index --- src/playfield.rs | 12 ++++++++++-- src/sudoku_solver.rs | 6 +++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/playfield.rs b/src/playfield.rs index a70f122..df4ff7f 100644 --- a/src/playfield.rs +++ b/src/playfield.rs @@ -58,7 +58,11 @@ impl Playfield { pub fn get_field(&self, row: usize, col: usize) -> &Field { &self.fields[row][col] } - pub fn convert_index(&self, index: usize) -> (usize, usize) {} + pub fn convert_index(&self, index: usize) -> (usize, usize) { + let row = index / self.size; + let col = index % self.size; + (row, col) + } } impl fmt::Display for Playfield { @@ -135,9 +139,13 @@ mod tests { assert_eq!(row_2, 1); assert_eq!(col_2, 1); - let (row_2, col_2) = playfield.convert_index(9); + let (row_2, col_2) = playfield.convert_index(8); assert_eq!(row_2, 2); assert_eq!(col_2, 2); + + let (row_2, col_2) = playfield.convert_index(3); + assert_eq!(row_2, 1); + assert_eq!(col_2, 0); } } mod parse { diff --git a/src/sudoku_solver.rs b/src/sudoku_solver.rs index 94b6b0e..e996210 100644 --- a/src/sudoku_solver.rs +++ b/src/sudoku_solver.rs @@ -19,6 +19,10 @@ impl SudokuSolver { return self.playfield.clone(); } + fn solve_fields(&mut self) { + for open_field in &self.playfield.open_fields {} + } + fn populate_possible_values(&mut self) { for open_field in &self.playfield.open_fields { let row_index = open_field / self.playfield.size; @@ -74,7 +78,7 @@ mod tests { #[test] fn simple() { - let solver = setup_solver("1 0 3 4 4 0 2 0 0 1 0 2 2 4 0 3", 4); + let solver = &mut setup_solver("1 0 3 4 4 0 2 0 0 1 0 2 2 4 0 3", 4); let expected = create_test_playfield("1 2 3 4 4 3 2 1 3 1 4 2 2 4 1 3", 4); let solved = solver.solve();