Remove old commented out code.
This commit is contained in:
parent
60eaca4af5
commit
8bc8a6c0c7
1 changed files with 0 additions and 152 deletions
152
src/main.rs
152
src/main.rs
|
@ -287,155 +287,3 @@ fn main() {
|
||||||
grid.print();
|
grid.print();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Only removes possibilities; does not add any
|
|
||||||
|
|
||||||
*/
|
|
||||||
fn calculate_and_remove_possibilities(grid: &mut Grid){
|
|
||||||
|
|
||||||
for r in 0..9{
|
|
||||||
for c in 0..9 {
|
|
||||||
let cell = &*grid.get(r, c).unwrap();
|
|
||||||
|
|
||||||
let digit : u8 = match &*cell.borrow() {
|
|
||||||
CellValue::FIXED(digit) => {digit.clone()},
|
|
||||||
CellValue::UNKNOWN(_) => {continue}
|
|
||||||
};
|
|
||||||
|
|
||||||
let (row, column, section) = grid.get_vectors_containing_coordinates(r, c).unwrap();
|
|
||||||
let fun = |vec: &Vec<Rc<RefCell<CellValue>>>| vec.iter().for_each(|x| remove_possibility(x.borrow(), &digit));
|
|
||||||
|
|
||||||
fun(row);
|
|
||||||
fun(column);
|
|
||||||
fun(section);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fn remove_possibility(cell: &RefCell<CellValue>, to_remove: &u8){
|
|
||||||
let borrowed_cell = cell.borrow();
|
|
||||||
let value = &*borrowed_cell;
|
|
||||||
let existing_possibilities = match value {
|
|
||||||
CellValue::FIXED(_) => {return},
|
|
||||||
CellValue::UNKNOWN(existing_possibilities) => existing_possibilities
|
|
||||||
};
|
|
||||||
|
|
||||||
let mut new_possibilities = existing_possibilities.clone();
|
|
||||||
|
|
||||||
match new_possibilities.binary_search(to_remove) {
|
|
||||||
Ok(index_remove) => {new_possibilities.remove(index_remove);},
|
|
||||||
_ => {}
|
|
||||||
};
|
|
||||||
|
|
||||||
drop(borrowed_cell);
|
|
||||||
|
|
||||||
let new_cell = CellValue::UNKNOWN(new_possibilities);
|
|
||||||
cell.replace(new_cell);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
let mut grid = retrieve_grid();
|
|
||||||
|
|
||||||
calculate_and_remove_possibilities(&mut grid);
|
|
||||||
grid.print();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
For now this is a stub with a pre-programmed grid; later I'll add functionality to read a CSV file
|
|
||||||
*/
|
|
||||||
fn retrieve_grid() -> Grid {
|
|
||||||
let grid = Grid::new();
|
|
||||||
|
|
||||||
|
|
||||||
grid.get(0, 4).unwrap().replace(CellValue::FIXED(8));
|
|
||||||
grid.get(0, 5).unwrap().replace(CellValue::FIXED(5));
|
|
||||||
grid.get(0, 6).unwrap().replace(CellValue::FIXED(6));
|
|
||||||
|
|
||||||
grid.get(2, 3).unwrap().replace(CellValue::FIXED(9));
|
|
||||||
grid.get(2, 4).unwrap().replace(CellValue::FIXED(4));
|
|
||||||
grid.get(2, 5).unwrap().replace(CellValue::FIXED(3));
|
|
||||||
grid.get(2, 6).unwrap().replace(CellValue::FIXED(5));
|
|
||||||
grid.get(2, 7).unwrap().replace(CellValue::FIXED(7));
|
|
||||||
|
|
||||||
grid.get(3, 0).unwrap().replace(CellValue::FIXED(8));
|
|
||||||
grid.get(3, 2).unwrap().replace(CellValue::FIXED(2));
|
|
||||||
grid.get(3, 3).unwrap().replace(CellValue::FIXED(6));
|
|
||||||
grid.get(3, 4).unwrap().replace(CellValue::FIXED(7));
|
|
||||||
grid.get(3, 5).unwrap().replace(CellValue::FIXED(4));
|
|
||||||
grid.get(3, 6).unwrap().replace(CellValue::FIXED(9));
|
|
||||||
|
|
||||||
grid.get(4, 4).unwrap().replace(CellValue::FIXED(9));
|
|
||||||
grid.get(4, 8).unwrap().replace(CellValue::FIXED(5));
|
|
||||||
|
|
||||||
grid.get(5, 1).unwrap().replace(CellValue::FIXED(6));
|
|
||||||
grid.get(5, 6).unwrap().replace(CellValue::FIXED(2));
|
|
||||||
|
|
||||||
grid.get(6, 1).unwrap().replace(CellValue::FIXED(8));
|
|
||||||
grid.get(6, 8).unwrap().replace(CellValue::FIXED(2));
|
|
||||||
|
|
||||||
grid.get(7, 3).unwrap().replace(CellValue::FIXED(7));
|
|
||||||
grid.get(7, 5).unwrap().replace(CellValue::FIXED(6));
|
|
||||||
grid.get(7, 7).unwrap().replace(CellValue::FIXED(5));
|
|
||||||
grid.get(7, 8).unwrap().replace(CellValue::FIXED(4));
|
|
||||||
|
|
||||||
grid.get(8, 2).unwrap().replace(CellValue::FIXED(7));
|
|
||||||
grid.get(8, 3).unwrap().replace(CellValue::FIXED(4));
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
grid.get_mut(0, 4).unwrap().0 = CellValue::FIXED(8);
|
|
||||||
grid.get_mut(0, 5).unwrap().0 = CellValue::FIXED(5);
|
|
||||||
grid.get_mut(0, 6).unwrap().0 = CellValue::FIXED(6);
|
|
||||||
|
|
||||||
grid.get_mut(2, 3).unwrap().0 = CellValue::FIXED(9);
|
|
||||||
grid.get_mut(2, 4).unwrap().0 = CellValue::FIXED(4);
|
|
||||||
grid.get_mut(2, 5).unwrap().0 = CellValue::FIXED(3);
|
|
||||||
grid.get_mut(2, 6).unwrap().0 = CellValue::FIXED(5);
|
|
||||||
grid.get_mut(2, 7).unwrap().0 = CellValue::FIXED(7);
|
|
||||||
|
|
||||||
grid.get_mut(3, 0).unwrap().0 = CellValue::FIXED(8);
|
|
||||||
grid.get_mut(3, 2).unwrap().0 = CellValue::FIXED(2);
|
|
||||||
grid.get_mut(3, 3).unwrap().0 = CellValue::FIXED(6);
|
|
||||||
grid.get_mut(3, 4).unwrap().0 = CellValue::FIXED(7);
|
|
||||||
grid.get_mut(3, 5).unwrap().0 = CellValue::FIXED(4);
|
|
||||||
grid.get_mut(3, 6).unwrap().0 = CellValue::FIXED(9);
|
|
||||||
|
|
||||||
grid.get_mut(4, 4).unwrap().0 = CellValue::FIXED(9);
|
|
||||||
grid.get_mut(4, 8).unwrap().0 = CellValue::FIXED(5);
|
|
||||||
|
|
||||||
grid.get_mut(5, 1).unwrap().0 = CellValue::FIXED(6);
|
|
||||||
grid.get_mut(5, 6).unwrap().0 = CellValue::FIXED(2);
|
|
||||||
|
|
||||||
grid.get_mut(6, 1).unwrap().0 = CellValue::FIXED(8);
|
|
||||||
grid.get_mut(6, 8).unwrap().0 = CellValue::FIXED(2);
|
|
||||||
|
|
||||||
grid.get_mut(7, 3).unwrap().0 = CellValue::FIXED(7);
|
|
||||||
grid.get_mut(7, 5).unwrap().0 = CellValue::FIXED(6);
|
|
||||||
grid.get_mut(7, 7).unwrap().0 = CellValue::FIXED(5);
|
|
||||||
grid.get_mut(7, 8).unwrap().0 = CellValue::FIXED(4);
|
|
||||||
|
|
||||||
grid.get_mut(8, 2).unwrap().0 = CellValue::FIXED(7);
|
|
||||||
grid.get_mut(8, 3).unwrap().0 = CellValue::FIXED(4);
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
return grid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
Loading…
Reference in a new issue