AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sudoku Generator (Anfänge)

Ein Thema von xyss · begonnen am 23. Jan 2013 · letzter Beitrag vom 28. Jan 2013
Antwort Antwort
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#1

AW: Sudoku Generator (Anfänge)

  Alt 24. Jan 2013, 23:09
Da hilft wohl nur ein anderer Ansatz
Komplettes Sudoku Spielfeld mit ALLEN Zahlen füllen und zwar so dass die Sudoku Regeln erfüllt werden.
Danach zufällig einige Ziffern löschen.

Auf diese Weise kann man dem Spieler später auch die Lösung zeigen, falls das Spiel zu schwer sein sollte.
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: Sudoku Generator (Anfänge)

  Alt 24. Jan 2013, 23:57
Hallo,

Lesestoff gibt zum Thema Sudokus generieren / lösen es jede Menge (ein kleiner Auszug):

Hier im Forum suchenSudoku
http://www.planet-source-code.com/vb...=1756&lngWId=7
http://www.entwickler-ecke.de/topic_...l_48160,0.html
und natürlich auch bei
http://www.google.de/search?hl=de&so...aeo4GYBw&gbv=2

Gruß
Volker Zeller

Geändert von Volker Z. (25. Jan 2013 um 00:06 Uhr) Grund: Rechtschreibung
  Mit Zitat antworten Zitat
xyss

Registriert seit: 9. Nov 2012
7 Beiträge
 
#3

AW: Sudoku Generator (Anfänge)

  Alt 25. Jan 2013, 05:27
Ich dachte es würde so funktionieren, dass, wenn alle Testwerte "durchfallen", das heißt, wenn das Programm nicht mehr weiterkommt, es um eine Zelle zurückgeht und dort eine neue Ziffer einfügt.

Daher auch dieser Teil hier

Code:
    if not Test then
       Col:=Col-1
da sollte er doch theoretisch wieder eine Zelle zurückgehen, und die von neuem mit einer Zufallszahl füllen, oder nicht?
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

AW: Sudoku Generator (Anfänge)

  Alt 25. Jan 2013, 07:50
Hi,

ohne jetzt den Code näher angeschaut zu haben:
Wenn für das vorherige Feld nur eine Wahl möglich war, dann wird er doch wieder gleich wählen und du hast das gleich Problem ein Feld weiter nochmal, oder?


Viele Grüße,
Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#5

AW: Sudoku Generator (Anfänge)

  Alt 25. Jan 2013, 12:39
Hallo,

Zitat:
Ich dachte es würde so funktionieren, dass, wenn alle Testwerte "durchfallen", das heißt, wenn das Programm nicht mehr weiterkommt, es um eine Zelle zurückgeht und dort eine neue Ziffer einfügt.
[...]
da sollte er doch theoretisch wieder eine Zelle zurückgehen, und die von neuem mit einer Zufallszahl füllen, oder nicht?
Nicht nur theoretisch wird eine Zelle (Zeile fix ein Spalte) zurückgegangen, nur praktisch bringt Dir das nichts.
In meinem Beispiel
Zitat:
Code:
1. Reihe: 6 3 2  4 9 5  7 1 8
2. Reihe: 7 4 5  3 6 8  2 9
ist - wie erwähnt - für die letzte Spalte in der 2. Reihe nur noch die 1 möglich. Gehst Du im Programm eine Spalte zurück und versuchst diese erneut mit einem neuen Zufallswert (es sind nur die 1 und 9 möglich) zu belegen, dann rennt Dein Programm frohlich im Kreis.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
xyss

Registriert seit: 9. Nov 2012
7 Beiträge
 
#6

AW: Sudoku Generator (Anfänge)

  Alt 25. Jan 2013, 14:09
Hi,

ohne jetzt den Code näher angeschaut zu haben:
Wenn für das vorherige Feld nur eine Wahl möglich war, dann wird er doch wieder gleich wählen und du hast das gleich Problem ein Feld weiter nochmal, oder?


Viele Grüße,
Frederic
Stimmt! Ist mir heute vormittag auch aufgefallen, nachdem ich ein SG.Repaint eingebaut habe und dann mal per Breakpoint geschaut habe
Ich hab jetzt einen Array definiert, aus dem er dann die Zahl "ausstreicht" wenn sie einmal benutzt wurde und es nicht weitergeht, und somit geht er dann in dem Fall ein weiteres Feld zurück und probiert dort. Das ganze ist zwar noch nicht 100%ig effizient (dauert schon ne Weile bis er ein Sudoku ausspuckt), aber es funktioniert schonmal, daher mal ein riiiiiesiges Dankeschön für die Hilfe
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 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