// SudokuSolver.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include "SudokuFieldProvider.h"
int main()
{
std::cout << "Hello World!\n";
SudokuFieldProvider provider = SudokuFieldProvider();
string name = "Test";
solve(&provider.GetField(name));
}
void printTable(SudokuField* field) {
for (int x = 0; x < sizeof(field->field); x++) {
string line = "";
for (int y = 0; y < sizeof(field->field); y++) {
int num = field->field[x][y];
line += " " + std::to_string(num);
}
cout << line;
}
}
void solve(SudokuField* field) {
for (int x = 0; x < sizeof(field->field); x++) {
for (int y = 0; y < sizeof(field->field); y++) {
for (int i = 0; i < sizeof(field->field); i++) {
if (canPlace(field, x, y, i)) {
field->field[x][y] = i;
printTable(field);
break;
}
}
}
}
}
bool canPlace(SudokuField* field, int x, int y, int num)
{
for (int iX = 0; iX < sizeof(field->field); iX++) {
if (field->field[iX][y] == num)
return false;
}
for (int iY = 0; iY < sizeof(field->field); iY++) {
if (field->field[x][iY] == num)
return false;
}
return true;
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu
// Tips for Getting Started:
// 1. Use the Solution Explorer window to add/manage files
// 2. Use the Team Explorer window to connect to source control
// 3. Use the Output window to see build output and other messages
// 4. Use the Error List window to view errors
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}