updates
This commit is contained in:
@@ -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..'
|
||||
]
|
||||
];
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user