Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 01.02.2006, 23:25 Titel: Sudoku-Knacker |
|
|
In der Presse greift bekanntlich zur Zeit das Sudoku-Fieber um sich. Spätestens, als sich mein Vater auch an einem solchen Rätsel die Zähne ausgebissen hatte, wurde es für mich Zeit, einmal ein paar Zeilen QBasic zu tippen (typisches Mini-Projekt); als Ergebnis ist
http://beilagen.dreael.ch/QB/SUDOKU.ZIP
entstanden. Um ein Rätsel zu lösen, muss man es wie in den Beispiel-.TXT-Dateien ersichtlich mit einem Texteditor erfassen (9 Zeilen mit 9 Zeichen, 0 = leeres Feld) und dann meinem Programm verfüttern, welches mit Hilfe von Rekursion sämtliche Lösungen dazu sucht.
Hinweis: Programm läuft bereits mit QBasic 1.1 und braucht keine speziellen Compileroptionen. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 01.02.2006, 23:47 Titel: |
|
|
hehe ich hab als Informatikprojekt son ding in Prolog geschrieben..
http://phpfi.com/99788
Macht deiner auch nur Bruteforce oder arbeitest du per ausschluss? _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Mecki Igel
Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 02.02.2006, 14:24 Titel: |
|
|
Hi Mecki,
dein Link führt zu einem "403" bzw. "404"
Mecki's Link hat Folgendes geschrieben: |
Forbidden
You don't have permission to access /userupload/Mathematisches/Freebasic-Trial.ZIP on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
|
_________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 02.02.2006, 14:31 Titel: |
|
|
Mao hat Folgendes geschrieben: | Hi Mecki,
dein Link führt zu einem "403" bzw. "404"
Mecki's Link hat Folgendes geschrieben: |
Forbidden
You don't have permission to access /userupload/Mathematisches/Freebasic-Trial.ZIP on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
|
| ..stimmt, auch die Matrizen-Inversion kann ich nicht(mehr) runterladen..
@Mecki:
Den Hinweis auf dein Sudoku-Programm hatte ich eigentlich früher erwartet
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
Manuel
Anmeldungsdatum: 23.10.2004 Beiträge: 1271 Wohnort: Bayern
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 04.02.2006, 14:38 Titel: |
|
|
ach und mecki, werd dir mal einig ob du nun stripslashes oder addslashes benutzt.. "die\\\'s" _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 05.02.2006, 11:41 Titel: |
|
|
slash('/') und backslash('\') kenne ich ja nun schon und verwechsele sie auch (fast) nicht mehr..
..was sind denn nun stripslashes bzw. addslashes ?????????????
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 05.02.2006, 12:13 Titel: |
|
|
das sind phpfunktionen xD addslahes("die's") => "die\'s" und stripslashes("die\'s") => "die's"..
wenn mans nun verwechselt wird addslashes("die\'s") zu "die\\\'s" weil der backslash und das hochkomma escaped werden. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 05.02.2006, 15:27 Titel: |
|
|
php? Tut das weh?
..nee, im Ernst:
Habe ich bis jetzt nicht gebraucht, wird sich wohl auch noch hinziehen, bis..
Trotzdem schönen Dank für die Erklärung.
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 05.02.2006, 16:07 Titel: |
|
|
hehe man siehts, deine website sieht nich soo nach großem stellenwert des designs aus _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 25.10.2006, 21:51 Titel: Neu: Rätsel-Generator |
|
|
Inzwischen habe ich es geschafft, das Sudoku-Projekt etwas fortzusetzen:
http://beilagen.dreael.ch/QB/SUDOKUGN.BAS
Damit können Rätsel nun selber generiert werden. Für die Interessierten das Grundprinzip: Zuerst wie ein "Sudoku" mit "81 Lücken" "gelöst", d.h. das gelöste Sudoku zuerst generiert. Hierbei kommt wie beim Sudoku-Lösprogramm auch Rekursion zum Einsatz, wobei die Startposition überall per Zufallsgenerator initialisiert wird, damit immer wieder eine andere fertige Lösung entsteht.
In einem zweiten Schritt wird Feld um Feld ausgelost und zur Lücke umgewandelt. Dabei wird jedesmal geprüft, ob das Rätsel noch eindeutig ist. Die Eindeutigkeit kann durch normales Lösen (Rekursion wie beim bisherigen Programm) mit dem Unterschied, dass nach 2 Lösungen abgebrochen werden kann, weil ja dann bereits die Uneindeutigkeit nachgewiesen worden ist. Sobald dies der Fall ist, wird die zuletzt herausgenommene Zahl wieder zurückgelegt, d.h. wird wieder vorgegebene Zahl. Nach max. 20 solcher "fehlgeschlagenen" Lückenerzeugversuchen wird der Herausnehmeprozess als "gesättigt" betrachtet und das Rätsel ist fertig erstellt => Speicherung als Textdatei im Format vom ersten Programm.
Verfeinerungen für die Weiterentwicklung könnten beispielsweise sein, spezielle Anfängerrätsel zu generieren, wo es z.B. immer eindeutige Lücken gibt, ebenso natürlich ein Rahmenzeichen-Textfile für den Ausdruck zum von Hand lösen. Last but noch least: Gelöstes Sudoku links nicht mehr anzeigen, damit es zum Selberlösen spannend bleibt. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
Dark_King
Anmeldungsdatum: 24.07.2006 Beiträge: 109 Wohnort: Neustetten - BW
|
Verfasst am: 25.10.2006, 22:08 Titel: |
|
|
hmm des kann mein programm schon ne weile nur kann des immernoch net Sudokus lösen
man ich muss da echt mal weiter machen und nicht immer die feinarbeit, bin ja immernoch an der fehlermedung dran (hab zuviel anderes zeugs gemacht anstat richtig mich um mein programm zu kümmern)
sieht aber echt cool aus, auch wenn des ganze net so sicher is, falscher dateiname --> absturz
mfg
Dark_King
PS: Ich könnte noch mehr schreiben aber da würde ich nur mein Programm, dass noch in der entwicklung ist anpriesen _________________
|
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 26.01.2007, 22:12 Titel: Projektneuheiten: Visueller Sudoku-Löser |
|
|
Inzwischen gibt es eine kleine Neuigkeit: visueller Sudokulöser. Wer sich bereits die verschiedenen Sudoku-Tutorials in den Büchern sowie Internet etwas schlauer gemacht hat, kennt die verschiedene Muster, nach denen man suchen muss wie Ausschluss, Zeilen- und Spaltenoperationen usw.
Beim hier vorgestellten Programm steht also absichtlich nicht das Lösen jedes beliebigen Sudokus (dies beherrst nämlich das ganz zu Beginn vorgestellte Programm bereits) im Zentrum, sondern die Analyse bezüglich Schwierigkeitsgrad. Anfänger können diese Variante auch gut als Lehrprogramm gebrauchen, in dem man die durch farbige Rechtecke gegebenen Hinweise auf platzierfähige Zahlen noch zuerst selber finden versucht, bevor man sie mit Tastendruck aufdeckt.
Download-Link: http://beilagen.dreael.ch/QB/VSUDOKU.ZIP
Unterschied der beiden Versionen: Die zweite Version sucht auch nach indirekten Tripeloperationen, während die erste Version nur Ausschluss- und Zeilen-/Spaltenoperationen macht. Das Eingabedateiformat ist übrigens immer noch dasselbe, also ASCII, 9 Zeilen à 9 Zeichen. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 16.05.2007, 23:20 Titel: Eine neue Sudoku-Herausforderung |
|
|
Auch bei mir hat es während der Offline-Zeit im kleinen Rahmen Neuerungen gegeben: Bin unter
http://www.squobble.com/puzzle/
eine noch recht interessante Sudoku-Variante fündig geworden, die gleich etwas "Forschung & Entwicklung"-Stoff geliefert hat. Zuerst zur Variante im genannten Link: Neben den Zahlen stellen auch die Farben ein eigenes Sudoku-System dar, es müssen also die Steine so gelegt werden, dass sowohl die Zahlen als auch Farben ein gültiges Sudoku bilden.
Da ich schon eine Weile mich auch mit dem Thema Rätsel generieren auseinandergesetzt habe, hat sich folgende Herausforderung ergeben: In der genannten Version werden zwei "normale" Sudokus im Prinzip unabhängig voneinander generiert und anschliessend überlagert, das eine davon in Farben transformiert. Zwangsweise ergeben sich einerseits mehrfach vorkommende Zahlen-/Farbkombinationen, umgekehrt kommen bestimmte Kombinationen überhaupt nicht vor.
Die grosse Herausforderung: Ein solches Farb-/Zahlsudoku generieren, welches zusätzlich die Eigenschaft hat, dass jede Farbe mit jeder Zahl kombiniert vorkommt und es somit keine zwei identischen Felder gibt. Von mir bereits einmal ein Ansatz, ein solches Rätsel zu generieren:
http://beilagen.dreael.ch/QB/FZSUDOKU.ZIP
Screenshot Suchprozess:
http://beilagen.dreael.ch/QB/Doppelsudoku1.gif
Trotz verschiedenen Optimierungen der rekursiven Suche hat sich herausgestellt, dass es möglichlicherweise ganz lange dauert, bis man ein komplettes "Dual-Layer"-Sudoku findet, welches auch das Steinkriterium erfüllt.
Dass aber diese Aufgabe mathematisch betrachtet lösbar ist, beweist FZSUDO_S.BAS (=die "Sonder"-Variante): Die dortige spezielle Anordnung würde sämtliche Kriterien erfüllen (links).
http://beilagen.dreael.ch/QB/Doppelsudoku3.gif
Durch Permutation der Zeilen, Spalten sowohl innerhalb der Quadrate als auch qadratgruppenweise und Farben und Zahlen auf beliebige Weise selber permutieren lässt sich im beschränkten Rahmen auch Zufall hineinbringen (rechts).
Wer also Lust hat, kann seinen 3,4 GHz-Pentium einmal selber ein Wochenende lang mit dieser Suchaufgabe beschäftigen oder findet vielleicht ein verbesserter Suchalgorithmus, bei dem nicht mehr dieser Tripel-Gruppierungseffekte wie bei FZSUKO_S.BAS auftreten. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
nixsager
Anmeldungsdatum: 16.08.2007 Beiträge: 70
|
Verfasst am: 19.08.2007, 18:09 Titel: |
|
|
Hi
wenn du immer noch an dem prog arbeitest und du noch immer einen suchalgorithmus, schnapp paar leute die das spiel spielen und frag sie aus und mach dann daraus einen suchalgorithmus!
frage mich aber nich wie da ich für das spiel und den suchalgorithmus
zu blöd bin |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.08.2007, 18:26 Titel: |
|
|
ein mensch arbeitet aber nicht nach einem algorithmus, sondern nach einem system - was in meinen augen einen riesen-unterschied macht, denn das system ist oft gar nicht so durch eine maschine "nachvollziehbar"... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
nixsager
Anmeldungsdatum: 16.08.2007 Beiträge: 70
|
Verfasst am: 19.08.2007, 18:32 Titel: |
|
|
probieren geht über studieren
ich häts auch ander ausdrücken können, er soll eine ki bauen |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 07.09.2008, 20:47 Titel: Neue Version visueller Sudoku-Löser |
|
|
Inzwischen gibt es vom visuellen Sudokulöser eine neue Version:
http://beilagen.dreael.ch/QB/VSUDOKU3.BAS
Es beinhaltet folgende Neuerungen:
- Nach indirekten Tripeln wird erst gesucht, wenn es keine direkten Operationen (Zeile/Spalte und Ausschluss) gibt
- Gegenüber VSUDOKU2.BAS erkennt es neu auch indirekte Auschlüsse. Dazu kleine Situation:
Code: | abc def ghi
+---+---+---+
1| | | 2 |
2| | | 9 |
3| | | |
+---+---+---+
4| | 35| |
5| 12| | |
6| 34| | 1|
+---+---+---+
7| | | 7 |
8|8 | | 6 |
9| | | |
+---+---+---+ |
Betrachten wir Feld h4 etwas genauer: Mit reinem Ausschluss kommen die Zahlen 4 und 8 in Frage. Wenn wir jedoch die 8 in a8 genauer beobachten, so stellen wir fest, dass sich die im Quadrat a4-c6 noch fehlende Acht nur entweder in b4 oder c4 befinden kann, womit in der übrigen 4er-Reihe und damit in h4 keine Acht mehr vorkommen kann und folglich dies eine Vier sein muss. VSUDOKU2.BAS hat dieses Muster noch nicht erkannt.
- Der Schwerpunkt wurde noch stärker aufs Analysieren und Lernhilfe gelegt: Mit dem mittleren Quadrat sowie der Zugliste rechts bekommt der Sudoku-Rätsellöser jeweils Hinweise, wo er mit welchem Muster fortsetzen kann.
Übrigens gibt es auch jetzt immer noch Rätsel, welche nach wie vor eine Annahme (Versuch, bei einem 2er-Ausschluss einfach einmal frisch und fröhlich eine der möglichen Zahlen probieren, entweder dass ein Widerspruch (=Lücke mit 0 Kandidaten) entsteht oder das Rätsel erfolgreich auf systematischem Weg gelöst werden kann.
Auch in diesem Bereich eine Neuerung: Aktueller Zustand kann jederzeit mit <S> in eine .txt-Datei im hier üblichen Format gespeichert werden, dann kann mit einem Texteditor die Annahme eingefügt werden (das rechte Sudoku-Quadrat teilt mit, wo es 2er-Ausschlüsse gibt) und so das Rätsel mit der Annahme fortgesetzt werden kann, wobei das Programm neu auch Widersprüche erkennt.
In der Weiterentwicklungs-Pipeline gibt es jedoch bereits ein neues Muster, welches unter
http://www.ahr-sudoku.de/solving1.php
beschrieben wird: Teilung der Kandidaten innerhalb einer Sudoku-Einheit (Zeile, Spalte oder Quadrat) in zwei Gruppen. Grundidee existiert dazu ebenfalls bereits: Abbildung der in Frage kommenden Kandidaten in eine spezielle 9x9 grosse Boolean-Matrix, diese muss so sortiert werden, dass ein Rechteck aus "kommt nicht mehr in Frage" mit Summe der Seitenlänge 9 (oder höher) entsteht, womit im "XOR"-"Vis à Vis"-Rechteck alles durchgestrichen werden darf, was im Ausschlussmatrix-"Würfel" (das dreidimensionale s%()-Array) hoffentlich zu Zeilen/Spalten und/oder Ausschlüssen führt, mit denen man weiterkommt.
Vielleicht folgt dann einmal von mir ein vollständig grafischer Löser, der einem Sudokus wie ein geduldiger Lehrer vor der Wandtafel löst. :-) _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 21.09.2008, 18:41 Titel: Neue Version visueller Sudoku-Löser: Hidden/Naked-Gruppen |
|
|
Bereits das nächste Release ist draussen:
http://beilagen.dreael.ch/QB/VSUDOKU4.BAS
Als Neuheit findet diese Version nun auch Hidden und Naked Gruppen, womit inzwischen ein sehr grosser Teil aller Sudoku-Rätsel ohne "Trial and error" (Zahl annehmen müssen, welche entweder per Zufall stimmt oder zu einem Widerspruch führt) gelöst werden kann.
Ausserdem sucht das Programm den jeweils einfachsten Weg, d.h. bei indirekten Kombinationen wird immer der kürzeste Weg gesucht, wofür programmintern intensiver Gebrauch von Rekursion gemacht wird.
Darstellung ist ebenfalls etwas optimiert: Drittes Sudoku-Quadrat konnte ins zweite genommen werden, d.h. Lösungsreihenfolge und Anzahl Kandidaten erscheinen nun kombiniert. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
|