This commit is contained in:
StevanFreeborn
2022-05-27 12:28:02 -05:00
parent 49fb66463a
commit 544ebfe78b
6 changed files with 231 additions and 34 deletions
+4
View File
@@ -18,5 +18,9 @@ export const puzzlesAndSolutions = [
[
'82..4..6...16..89...98315.749.157.............53..4...96.415..81..7632..3...28.51',
'827549163531672894649831527496157382218396475753284916962415738185763249374928651'
],
[
// unsolvable
'9.9..5.1.85.4....2432......1...69.83.9.....6.62.71...9......1945....4.37.4.3..6..'
]
];
+27 -8
View File
@@ -1,5 +1,3 @@
import { columns } from '../models/columns';
import { rows } from '../models/rows';
import { grids } from '../models/grids';
class SudokuSolver {
@@ -16,6 +14,18 @@ class SudokuSolver {
checkRowPlacement(puzzleString, row, column, value) {
const rows = {
A: [],
B: [],
C: [],
D: [],
E: [],
F: [],
G: [],
H: [],
I: [],
};
// rowKeys
const rowKeys = Object.keys(rows);
@@ -45,8 +55,20 @@ class SudokuSolver {
checkColPlacement(puzzleString, row, column, value) {
const columnKeys = Object.keys(columns);
const columns = {
1: [],
2: [],
3: [],
4: [],
5: [],
6: [],
7: [],
8: [],
9: [],
};
const columnKeys = Object.keys(columns);
columnKeys.forEach((key, i) => {
let values = []
@@ -58,12 +80,9 @@ class SudokuSolver {
const columnValue = puzzleString.slice(start, end);
values.push(columnValue);
columns[n].push(columnValue);
});
columns[key] = values;
});
// get column values for placement
@@ -103,7 +122,7 @@ class SudokuSolver {
default:
break;
}
// make sure placement location doesn't contain a value and column doesn't contain value
// or location already contains value
return (existingValue == '.' && !columnValues.includes(value)) || existingValue == value;