XxbambamxX
Mitglied
Hi zusammen
Ich wollte mir mal nen Sudoku solver basteln.
Für die die nicht Wissen wie Sudoku „funktioniert“… http://de.wikipedia.org/wiki/Sudoku
Dazu habe ich mir Folgendes überlegt:
Als erstes erstelle ich ein 9*9 Array das je 2 Variablen hat:
danach setze ich überall free auf true und die nummern auf 0 (mit 2 ineinander verschachtelten For schleifen).
Anschliessend fordere ich den Benutzer auf die Vorgegebenen Werte einzutippen.
Diese übertrage ich in das Array und setze dort free auf false damit ich später weiss, dass diese Werte „unveränderbar“ sind bzw die Vorgegebenen Werte für das Sudoku.
Nun erhalte ich ein Lineares (Un-)Gleichungssystem mit einer Variablen anzahl an Variablen und ich weiss nicht wie ich das Lösen kann. Ich habe mir alle Un/Gleichungen aufgeschirben.
Als erstes habe ich natürlich, dass alle Spalten 45 Ergeben. Und da es 9 Spalten gibt sind das 9 Gleichungen. Dann das Gleiche für die Zeilen(nochmal 9) macht insgesamt 18 Gleichungen.
Dann noch die 9 Felder innerhalb. Macht noch mal 9. Also habe ich insgesamt 27.
Dann bekomme ich noch Einen Haufen ungleichungen ( in jeder Zeile,Spalte und Viereck darf ja jede Zahl nur einmal vorkommen).
Nun habe ich aber keine Ahnung wie ich das meinem Programm „beibringen“ soll..
Mit Bruteforce bzw backtracking habe ich schon ein Funktionierendes Programm gemacht allerdings erscheint mir diese Lösung ein bisschen zu wenig elegant
Vielleicht könnt ihr mir ja eine kleine Hilfe/Idee geben. Wäre sehr dankbar!
mfg
Ich wollte mir mal nen Sudoku solver basteln.
Für die die nicht Wissen wie Sudoku „funktioniert“… http://de.wikipedia.org/wiki/Sudoku
Dazu habe ich mir Folgendes überlegt:
Als erstes erstelle ich ein 9*9 Array das je 2 Variablen hat:
Code:
struct SFeld
{
bool free;
int number;
};
SFeld Feld[9][9];
Anschliessend fordere ich den Benutzer auf die Vorgegebenen Werte einzutippen.
Diese übertrage ich in das Array und setze dort free auf false damit ich später weiss, dass diese Werte „unveränderbar“ sind bzw die Vorgegebenen Werte für das Sudoku.
Nun erhalte ich ein Lineares (Un-)Gleichungssystem mit einer Variablen anzahl an Variablen und ich weiss nicht wie ich das Lösen kann. Ich habe mir alle Un/Gleichungen aufgeschirben.
Als erstes habe ich natürlich, dass alle Spalten 45 Ergeben. Und da es 9 Spalten gibt sind das 9 Gleichungen. Dann das Gleiche für die Zeilen(nochmal 9) macht insgesamt 18 Gleichungen.
Dann noch die 9 Felder innerhalb. Macht noch mal 9. Also habe ich insgesamt 27.
Dann bekomme ich noch Einen Haufen ungleichungen ( in jeder Zeile,Spalte und Viereck darf ja jede Zahl nur einmal vorkommen).
Nun habe ich aber keine Ahnung wie ich das meinem Programm „beibringen“ soll..
Mit Bruteforce bzw backtracking habe ich schon ein Funktionierendes Programm gemacht allerdings erscheint mir diese Lösung ein bisschen zu wenig elegant
Vielleicht könnt ihr mir ja eine kleine Hilfe/Idee geben. Wäre sehr dankbar!
mfg