#include "StdAfx.h" #include ".\sudoku.h" #include //bruges til debug prints #define LINE "+---+---+---+---+---+---+---+---+---+\r\n" Sudoku::Sudoku(void) { clear(); } Sudoku::~Sudoku(void) { } CString Sudoku::print_matrix() { CString out; int i,j,tal; for(i=0; i= matrixSize) return true; if (x >= matrixSize) { x=0; y++; } while (user_matrix[x][y] == true) { x++; if (x>=matrixSize) { x=0; y++; } } if (y>=matrixSize) return true; //out of range for (tal=1; tal<=matrixSize; tal++) { if ( checkrow(x,y,tal) || checkcol(x,y,tal) || checkbox(x,y,tal) ) continue; matrix[x][y] = tal; res = solve(x+1,y); if (res == true) return res; } matrix[x][y] = 0; //before stepping back, clear the current field return false; } bool Sudoku::solve() { clearCalculated(); initCheck(); return solve(0,0); } void Sudoku::setNumber(int x, int y, int number) { matrix[x][y] = number; if (number != 0) user_matrix[x][y] = true; else user_matrix[x][y] = false; } int Sudoku::getNumber(int x, int y) { return matrix[x][y]; } bool Sudoku::getUser(int x, int y) { return user_matrix[x][y]; } // laver en check på om det bruger-indtastede problem kan løses eller om dataene har en intern konflikt void Sudoku::initCheck(void) { int tal; bool res; for (int i=0; i