Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sudoku Generator (https://www.delphipraxis.net/83431-sudoku-generator.html)

Antigo 2. Jan 2007 17:47


Sudoku Generator
 
Hi,
Ich möcht ein zufälliges Sudoku generieren. ALs Algorithmus dachte ich folgendes:

Nimm dir das aktuelle Feld (am Anfang [0,0]) und schreibe eine Zufallszahl hinein
Teste das Suoku Feld auf Zeilen, Spalten und Blöcke (leeres Feld gilt als Joker)
Wenn Test positiv, gehe zum nächsten
Wenn Test negativ, dann wiedehole Schritt 1 und 2 solange bis der Test positiv ist oder alle Zahlen versucht wurden
Wenn test negativ und alle Zahlen bereits versucht wurden, leere das Sudoku und beginne von neuem


Ich weiss, das ganz von neuem beginnen ist etwas krass und kostet mit Sicherheit Zeit, aber generell müsste man so doch in annehmbarer Zeit ein zufälliges Sudoku Feld generieren können, oder nicht?

Wenn ich meine Prozedur ausführe rechnet und rechnet er und nichts kommt dabei rum. Also habe ich entweder den Algorithmus falsch umgesetzt oder er dauert einfach viel zu lange.

Was meint ihr dazu?

Namenloser 2. Jan 2007 17:54

Re: Sudoku Generator
 
Ich hatte auch mal einen (nichtfunktionierenden) sudoku-generator nach obigem prinzip gebaut. Nur bei Schritt 4 hat mein programm das störende feld ermittelt und abgeändert (die prozedur mit den neuen koordinaten rekursiv aufgerufen) statt neu anzufangen.

Ergebnis: Entweder, es hat sich aufgehängt, es kam totaler quatsch raus ( z.b. mehrmals dieselbe zahl in einer reihe) oder es gab nen stack überlauf...

Phoenix 2. Jan 2007 18:16

Re: Sudoku Generator
 
Erm.. Such mal hier in der DP nach Soduko - vor allem nach den Threads in denen Olli und Hagen (negaH) was geschrieben haben.

Quintessenz war, dass es wohl geschickter sei, erst einen Sudoku-Löser zu bauen und denn dann Rückwärts anzusetzen um an Sudokus zu kommen, die auch lösbar sind.

Und ne MENGE Tipps und Tricks generell dazu und auch wie man da auch von der Geschwindkeit her passabel hinkommt stehen da auch drin.

Antigo 2. Jan 2007 21:12

Re: Sudoku Generator
 
danke für die antworten.

Ich hab mich etwas durchgelesen und mich für die backtracking methode entschieden. Also fülle ich wie gehabt Zufallszahlen in das Sudoku rein und wenns nicht mehr weitergeht gehe ich ein Feld zurück und haue eine andere Zahl rein usw.

Ist auch von der Geschwindigkeit her i.O. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz