Einzelnen Beitrag anzeigen

Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#6

Re: Sudoku Solver (by qb-tim)

  Alt 15. Mai 2006, 13:44
Ich arbeite noch daran:

Die nächste Version wird auf jeden fall...

... eine Anzahl von Sudokurästeln selbst erstellen können ( Vorschlag: HuxXx )
... beide Sprachen in einer EXE haben (Vorschlag: Nicolai1605)


@ HuxXx:

"echtes" Sudoku gibt es nur als 9x9 Gitter in jeweils 3x3 Felder eingeteilt!

Wikipedia:
Zitat:
Regeln und Begriffe

Das Spiel besteht aus einem Gitterfeld mit 3 × 3 Blöcken, die jeweils in 3 × 3 Felder unterteilt sind, insgesamt also 81 Felder in 9 Reihen und 9 Spalten. In einige dieser Felder sind schon zu Beginn Ziffern zwischen 1 und 9 eingetragen. Typischerweise sind 22 bis 36 Felder von 81 möglichen vorgegeben.

Ziel des Spiels ist es nun, die leeren Felder des Puzzles so zu vervollständigen, dass in jeder der je neun Zeilen, Spalten und Blöcke jede Ziffer von 1 bis 9 genau einmal auftritt.

Wenn eine Zahl in einem Feld möglich ist, bezeichnet man sie als „Kandidat“. Die drei Bereiche (Reihe, Spalte, Block) werden zusammengefasst als „Einheiten“ bezeichnet.

Obwohl Sudokus in der Regel mit Ziffern arbeiten, sind zur Lösung keinerlei Rechenkenntnisse erforderlich; man könnte ebenso neun andere abstrakte Symbole verwenden - Ziffern ermöglichen durch ihre feste und bekannte Reihenfolge jedoch ein leichteres Überprüfen der fehlenden Elemente innerhalb einer Einheit.
Es gibt aber auch eine Variation von Sudoku mit einem 16x16 Gitter und 4x4 Felder - ich bleibe aber beim Original!



@ jmit:

Wie soll ich das machen?:

- Eine "Prüfprozedur", die vor der Lösungabläuft
- Ein "OnChange" für die Edits, die es nur "erlaubt",dass die Edits leer oder die Ziffern 1, 2, 3, 4, 5, 6, 7, 8 und 9 enthalten



@ Nicolai1605

Mein Programm tut folgendes "nur":

1. Es "sucht" schon eingegebene Ziffern, markiert sie und "merkt sich", dass dieses Feld schon gelöst ist (d.h. keine andere Zahl möglich ist)
2. Es prüft jedes Kästchen in jeder Reihe auf Zahlen und merkt sich, dass alle anderen Kästchen in dieser Reihe diese Zahl nicht sein können
3. Es macht 2. - nur mit Spalten
4. Es macht 2. - nur mit Feldern (3x3 Kästchen)
5. Das Programm prüft jetzt jedes Feld, ob nur eine Zahl möglich ist und setzt diese dann ein.

Ich füge noch weitere Methoden hinzu... Es wird irgendwann schon klappen!
  Mit Zitat antworten Zitat