Sudokus erstellen....aber wie? |
08.01.2007, 00:19 | das_pseudonym | Auf diesen Beitrag antworten » |
Sudokus erstellen....aber wie? schon lang nicht mehr hier gewesen. kanns verstehen wenn man mich hier nicht mehr kennt . trotzdem grüße an alle die mich wiedererkennen aber hier mal zu meinem problem: mache dieses jahr meine matura und um zu dieser antreten zu dürfen muss ich 2 projekte machen, davon ist eines - was ich mir selbst ausgesucht hab - eine client-server-applikation worin ein sudoku-generator implementiert ist. wäre an sich gar nicht so schwer nur stehe ich vor dem problem dass ich nicht weiß wie ich sudokus mit 3 verschiedenen Schwierigkeitsstufen erstelle. also hab ich mich mal zurückerinnert und als helle köpfe seid ihr mir hier in erinnerung geblieben. also hoffe ich dass sich von euch schon jemand gedanken darüber gemacht hat, und schon 1-2 vorgehensweisen o.ä. herausgefunden hat. wäre echt ein hit wenn ihr mir weiterhelfen könntet. MfG pseudo |
||
08.01.2007, 08:27 | zt | Auf diesen Beitrag antworten » |
Edit: Unten steht nur die Idee der Bewertung. Nicht die Idee ein X-Sterne-Sudoku zu erstellen. Ich habe letzten Sommer angefangen einen Sudoku-Löser (in PHP) zu schreiben. (Ist allerdings nicht fertig geworden) Aber man erkennt sofort die einzelnen Schwierigkeitsstufen, wenn man den "Löser" selbst implementiert. Tipp: Nimm dir ein Sudokufeld (mittel) und löse einfach ohne wirklich dabei nachzudenken. Hast du einen Schritt gemacht, schaust du nach "was" du gerade gemacht hast und wie man das ganze allgemein(er) schreiben kann. Jetzt implementierst 2-3 dieser einfachen "Löser" und stufst sie als "leicht" ein. Jetzt lädst du ein Sudoku-Feld (mittel) in deinen Sudoku-"Löser" und lässt es soweit auflösen, bis der Löser nicht mehr weiter weiss. Jetzt versuchst du im nächsten Schritt wieder selbst zu denken und die nächste Lösung zu finden, welche du wieder verallgemeinerst und implementierst. Anschließend implementierst du weitere Mittelstufen-"Löser" bis du so zeimlich jedes als "mittel"-engestuftes Sudoku lösen kannst. Bis hier hin solltest du - zumindest in PHP - maximal 150 Zeilen Code verplempert haben. Das selbe (wie oben) machst du jetzt mit Hardcore-Sudokus. Hier wird's allerdings (vermute ich) richtig komplex. Um jetzt ein Sudoku einstufen zu können: Du löst ein Sudoku rekursiv, wobei "einfach"-Löser so oft aufgerufen werden, bis keine Lösung mehr gefunden wird. Das selbe dann mit den "mittel"- und "hardcore"-Lösern. Da du hier ja "nur" eine 3-Sterne-Einstufung möchtest ist klar: wenn das Sudoku mit 70%-100% "leicht"-Lösern gelöst werden kann, dann ist es "leicht". Müssen mehr "mittel"-Löser als "leicht"-Löser und wesentlich weniger "hardcore"-Löser verwendet werden, so ist das Sudoku "mittel". Übrig bleiben dann ja nur "hardcore"-Sudokus. Anhand der Anzahl der Zahlen im Sudoku könnte man vermuten, dass bei weniger Zahlen das Sudoku umso schwerer ist. Ist es aber leider nicht immer. Eine Spezifikation gibt es dafür ja imho nicht. Naja, war' nur 'ne Idee. (eben durch Lösen des Feldes) |
||
08.01.2007, 09:29 | Dual Space | Auf diesen Beitrag antworten » |
RE: Sudokus erstellen....aber wie? http://de.wikipedia.org/wiki/Sudoku#Algorithmus Dabei steht im Punkt 2, wie man Schwierigkeiten implementieren könnte. |
||
11.01.2007, 12:03 | das_pseudonym | Auf diesen Beitrag antworten » |
Reply @zt: danke für die ausführliche antwort, habe mal einen ansatz wie man sudokus erstellen könnte. klingt ziemlich plausibel. pro schwierigkeits stufe eine "lösungsregel mehr" zu implementieren. schwierig wird nur der hardcore-löser der auch implementiert sein muss da ich ja auch abprüfen muss ob das sudoku überhaupt a) lösbar ist und b) auch eine unique lösung hat. werd mich mal mit dem ansatz beschäftigen @Dual Space: wikipedia hab ich schon durchforstet und bin auch auf diesen artikel gestoßen, welcher jedoch nicht die X-Sterne-Kreiierung beinhaltet, da die schwierigkeit von sudokus ja nicht nur von der anzahl der vorgegebenen zahlen abhängt sondern auch von deren konstellation desweiteren muss es ja auch eindeutig lösbar sein was in dieser idee nur schwer realisierbar ist. trotzdem danke für diesen beitrag würde mich noch über weitere meinungen ideen o.ä. freuen MfG pseudo |
||
14.02.2007, 12:15 | das_pseudonym | Auf diesen Beitrag antworten » |
Zahlenreihen tag auch mir stellt sich ein kleines problem in den weg beim kreieren eines sudokus und zwar möchte ich ein sudokuspielfeld ganz und gar regelkonform ausfüllen (programmiert wird in java), jedoch bräuchte ich dafür einen algorithmus, dass dies zufällig passiert. meine idee wäre alle 9-stelligen zahlenreihen, in denen die zahlen 1-9 jeweils nur einmal auftreten, zu eruiern und die dann durch sequentielle überprüfung nach und nach von oben nach unten in eingefüllt werden. [Bsp. für die Zahlenreihen: 123456789, 132456789, 134256789,....] meine frage: hat jemand eine bessere idee? oder weiß jemand wie ich alle zahlenreihen lt. der Restriktion oben herausfinde? Hoffe jemand kann mir hier helfen. MfG pseudo |
||
30.01.2009, 12:08 | <><> | Auf diesen Beitrag antworten » |
sudoku erstellen Ein zufälliges sudoku zu erstellen ist ganz einfach: man macht sich ein vorlagesudoku und tut dies veraändern. zB: 123 456 789 456 789 123 789 123 456 234 567 891 u.s.w jetzt kann man die splaten und reihen, die innerhalb eines kästchen stehen vertauschen! so oft wie man will! und dann kann man noch die kästchen vertauschen, die übereinander oder nebeneinander stehen. aber welche zahlen man weglassen kann weiß ich leider auch nicht , würds aber auch gern wissen.... |
||
Anzeige | ||
|
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|