Impl: Calculate Box Size
This commit is contained in:
@@ -25,13 +25,13 @@ impl SudokuSolver {
|
||||
|
||||
fn populate_possible_values(&mut self) {
|
||||
for open_field in &self.playfield.open_fields {
|
||||
let row_index = open_field / self.playfield.size;
|
||||
let row = &self.playfield.fields[row_index];
|
||||
let (row_idx, col_idx) = self.playfield.convert_index(*open_field);
|
||||
let row = &self.playfield.fields[row_idx];
|
||||
|
||||
let possible_values_row = possible_values_from_vec(row, self.playfield.size as u32);
|
||||
|
||||
let col_index = open_field % self.playfield.size;
|
||||
let col = self.playfield.get_column(col_index);
|
||||
let col = self.playfield.get_column(col_idx);
|
||||
let possible_values_col = possible_values_from_vec(&col, self.playfield.size as u32);
|
||||
|
||||
let possible_values = possible_values_row
|
||||
@@ -39,7 +39,7 @@ impl SudokuSolver {
|
||||
.map(|v| *v)
|
||||
.collect();
|
||||
|
||||
let row = &mut self.playfield.fields[row_index];
|
||||
let row = &mut self.playfield.fields[row_idx];
|
||||
let field = &mut row[col_index];
|
||||
field.possible_values = possible_values;
|
||||
}
|
||||
@@ -86,6 +86,11 @@ mod tests {
|
||||
assert_eq!(solved, expected);
|
||||
}
|
||||
}
|
||||
mod solve_fields {
|
||||
use super::*;
|
||||
#[test]
|
||||
fn simple() {}
|
||||
}
|
||||
mod possible_values {
|
||||
use super::*;
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user