#include #include #include "sudoku.h" Sudoku::Sudoku() { int i, j; char c; for (i = 0; i < 9; i++) { for (j = 0; j < 9; j++) { if (!(cin >> c)) { cerr << "Bad Sudoku File -- not enough entries\n"; exit(1); } if (c == '-') Grid[i][j] = -1; else if (c >= '0' && c <= '9') Grid[i][j] = c - '0'; else { cerr << "Bad Sudoku File -- entry: " << c << endl; exit(1); } } } for (i = 0; i < 9; i++) { if (!Is_Row_Valid(i)) { cerr << "Bad Sudoku File -- Bad row " << i << endl; exit(1); } if (!Is_Col_Valid(i)) { cerr << "Bad Sudoku File -- Bad col " << i << endl; exit(1); } } } void Sudoku::Print_Screen() { int i, j; for (i = 0; i < 9; i++) { for (j = 0; j < 9; j++) { if (j != 0) printf(" "); if (Grid[i][j] == -1) printf("- "); else printf("%d ", Grid[i][j]); if (j == 2 || j == 5) printf(" "); } printf("\n"); if (i == 2 || i == 5) printf("\n"); } } void Sudoku::Print_Convert() { } bool Sudoku::Solve() { return false; } bool Sudoku::Is_Row_Valid(int r) { int i; for (i = 1; i <= 9; i++) checker[i] = false; for (i = 0; i < 9; i++) { if (Grid[r][i] != -1) { if (checker[Grid[r][i]]) return false; checker[Grid[r][i]] = true; } } return true; } bool Sudoku::Is_Col_Valid(int c) { int i, j; for (i = 1; i <= 9; i++) checker[i] = false; for (i = 0; i < 9; i++) { if (Grid[i][c] != -1) { if (checker[Grid[i][c]]) return false; checker[Grid[i][c]] = true; } } return true; } bool Sudoku::Is_Panel_Valid(int sr, int sc) { return false; } bool Sudoku::Recursive_Solve(int r, int c) { return false; }