summaryrefslogtreecommitdiff
path: root/src/sudoku.cc
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2012-06-15 18:52:40 +0000
committerStijn Buys <ingar@osirion.org>2012-06-15 18:52:40 +0000
commit68da3e6ab18544d43069d8d25d50abadf7267b30 (patch)
treef1e9a376ead133bb11e09d3fa24966ea36d93ac0 /src/sudoku.cc
parent9b82e566b648d530df7e3fac61cc2e5b694fa24e (diff)
Integrated Cell class, minor refactoring.
Diffstat (limited to 'src/sudoku.cc')
-rw-r--r--src/sudoku.cc32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/sudoku.cc b/src/sudoku.cc
index 13369fe..2725b02 100644
--- a/src/sudoku.cc
+++ b/src/sudoku.cc
@@ -3,18 +3,18 @@
Sudoku::Sudoku()
{
- for (int row = 0; row < 9; row++) {
- for (int column = 0; column < 9; column++) {
- sudoku_value[row][column] = 0;
- }
- }
+}
+
+void Sudoku::set_value(int row, int column, int value)
+{
+ sudoku_cell[row][column].set_value(value);
}
int Sudoku::solve_step(int pos_row, int pos_column)
{
// verify if the cell has already been solved
- if ((sudoku_value[pos_row][pos_column] > 0 ) && (sudoku_value[pos_row][pos_column] <= 9)) {
- return sudoku_value[pos_row][pos_column];
+ if ((value(pos_row,pos_column) > 0 ) && (value(pos_row,pos_column) <= 9)) {
+ return value(pos_row,pos_column);
}
bool possible_solution[9];
@@ -26,18 +26,18 @@ int Sudoku::solve_step(int pos_row, int pos_column)
// eliminate row
for (int column = 0; column < 9; column++) {
if (column != pos_column) {
- int value = sudoku_value[pos_row][column];
- if ((value > 0) && (value <= 9)) {
- possible_solution[value - 1] = false;
+ const int v = value(pos_row,column);
+ if ((v > 0) && (v <= 9)) {
+ possible_solution[v - 1] = false;
}
}
}
// eliminate column
for (int row = 0; row < 9; row++) {
if (row != pos_row) {
- int value = sudoku_value[row][pos_column];
- if ((value > 0) && (value <= 9)) {
- possible_solution[value - 1] = false;
+ const int v = value(row,pos_column);
+ if ((v > 0) && (v <= 9)) {
+ possible_solution[v - 1] = false;
}
}
@@ -49,9 +49,9 @@ int Sudoku::solve_step(int pos_row, int pos_column)
for (int row = grid_row; row < grid_row + 3; row++) {
for (int column = grid_column; column < grid_column + 3; column ++) {
if ((column != pos_column) && (row != pos_row)) {
- int value = sudoku_value[row][column];
- if ((value > 0) && (value <= 9)) {
- possible_solution[value - 1] = false;
+ const int v = value(row, column);
+ if ((v > 0) && (v <= 9)) {
+ possible_solution[v - 1] = false;
}
}