Leonidas hat geschrieben:Ich führe nie Tkinter-Code aus, weil ich es gar nicht installiert habe
Welche Version von Python nutzt du? Tkinter gehört doch zur Standardbibliothek, oder?
Naja... ich habe irgendein Problem im Programm... Der Lösungsmechanismus funktioniert bei meinem Testsudoku nicht, d.h. er liefert nach einer Weile Widersprüchliche Ergebnisse.
Der Paste:
http://paste.pocoo.org/show/19506/
@ Leonidas: Hab extra für dich den Sternchenimport weg gemacht
@ Alle: Ich wäre froh, wenn ein paar Leute das mal testen würden. Das Programm beherrscht bis jetzt nur eine simple Abfrage
(dieses Feld kann 1, 2 und 3 sein; das nächste kann nur 5 sein, also wird 5 eingetragen u.s.w.)
an der Negativabfrage
(Feld A kann 1, 2 und 3 sein; kein anderes Feld im Block von Feld A kann 1 sein, also wird 1 in Feld A eingetragen)
arbeite ich noch.
Das Script müsste nun also schon die einfachste sorte von Sudokus lösen können. An alle, die es ausprobieren: Schaut auch auf den Interpreter, wenn das Script gestartet ist. Das Script gibt nach jedem Lösungsdurchlauf an, wie viele Felder es lösen konnte. Wenn es keine weiteren Felder lösen konnte, beendet es die Lösungsschleife.
Wenn es also anzeigt
"0 weitere Felder gefunden!"
dann hat es entweder alle Felder gelöst, oder es ist auf einen Widerspruch gestoßen, also z.B. Feld X kann weder 1, noch 2, noch 3 und so weiter, also Feld X kann GAR NICHTS sein.
Wenn das Script also nichts mehr findet, schaut bitte, ob die Lösung, so weit sie bis jetzt gekommen ist, richtig ist und versucht ggf., das entstandene (halbgelöste oder mit Positivabfragen soweit wie möglich gelöste) Sudoku fertigzulösen, um zu Prüfen, ob es wirklich nicht zu einem Widerspruch kommt.
Wenn es zu einem Widerspruch kommt, postet das Sudoku bitte hier im Thread in der Form
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
und so weiter...
73 74 75 76 77 78 79 80 81
Ich werde auch ein paar weitere Sudokus testen.
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
@ BlackJack:
BlackJack hat geschrieben:Die sollte man für den Benutzer gestalten und nicht für den Code der darunter irgendwo läuft.
Ich sehe das Programm als ein Puzzlebild. Die zwei (momentan von mir betrachteten) Teile (bitte keine Nerferei von wegen es gibt kein zweiteiliges Puzzle...) sind
--Das Script: es besteht aus zwei voneinander total unabhängigen Teilen
- Testscript
- Lösungsscript
Diese beiden Teile muss man sich so vorstellen, dass an ihrer
Berührungsfläche keine Zähnchen sind, da sie einander nicht benötigen
oder vervollständigen.
--Das GUI: Hier lasse ich mal die Unterteilung in Neunerblöcke beim
Sudoku
Diese zwei Teile sind größtenteils voneinander unabhängig, nur die Zähnchen müssen ineinanderpassen.
Daher sehe ich das so, dass man mit beiden anfangen kann. Ich hatte ja schon eine Idee, nur hatte ich noch nicht die Umsetzung. Schau mal in meinen ersten Post, da habe ich geschrieben, dass es bis da nur der Rohling (damit meinte ich das GUI) ist, ohne jegliche Funktion. Ich habe dieses GUI für den Benutzer geschrieben, nicht für irgendein Script.
DAS war für mich das GUI Puzzleteil ohne Zähnchen.
Dann habe ich Listen hinzugefügt, die der Abfrage der Reihen, Spalten und Blöcke dienen.
DIESE LISTEN waren/sind für mich die Zähnchen!
NUN arbeite ich am Script, dem letzten Puzzleteil. Davon ist das eine Untergeordnete Teil zum Testen von Sudokus schon fertig, aber das ist im Vergleich zu dem, was das Lösungspuzzleteil werden wird, ein Einzeiler.
Wenn du jetzt fragst, wo hat dieses Scriptpuzzleteil die Zähnchen? Das sind die Parameter, die die Listen empfangen.
Mit allem, was ich hier geschrieben habe, möchte ich mit niemandem meckern oder mich beschweren. Ich habe lediglich meine Sicht der Dinge beschrieben und bin für jede Antwort in diesem Thread dankbar.
Edit: WHOA ich glaub ich habe ein wenig viel geschrieben...