Hallo,
Ich möchte gern mit Python/tkinter ein Sudoku-Löser bauen. Zur Probe baute ich erst einmal eins für kleine 6er Sudokus. Das hat soweit schon einmal toll funktioniert.
Für die Eingabe und Ausgabe habe ich mich für das Entry-feld entschieden, vielmehr 36 davon.
Was mich stört, ist dass ich jedes Eingabefeld einzeln definieren, packen, einlesen und ausgeben musste. Also in etwa so:
Eingabefeld_11 = Entry(Panel_1, bd=5, width=3)
Eingabefeld_12 = Entry(Panel_1, bd=5, width=3)
Eingabefeld_13 = Entry(Panel_1, bd=5, width=3)
…
Eingabefeld_66 = Entry(Panel_6, bd=5, width=3)
Bzw:
Eingabefeld_11.pack(side='left')
Eingabefeld_12.pack(side='left')
Eingabefeld_13.pack(side='left')
Label_13.pack(side='left') # für den Abstand zwischen der 3. und 4. Spalte
Eingabefeld_14.pack(side='left')
…
Eingabefeld_66.pack(side='left')
Oder:
Eingabefeld_11.delete(0,END); Eingabefeld_11.insert(1,Matrix[0][1])
Eingabefeld_12.delete(0,END); Eingabefeld_12.insert(1,Matrix[0][2])
Eingabefeld_13.delete(0,END); Eingabefeld_13.insert(1,Matrix[0][3])
…
Eingabefeld_66.delete(0,END); Eingabefeld_66.insert(1,Matrix[5][5])
Um die viele Schreibarbeit zu sparen, hätte ich gern eine Möglichkeit wo ich die Eingabefelder eleganter und effektiver mit einer bzw 2 for-Schleifen ansprechen kann.
Ich stelle mir das etwa so vor( z.B. beim Einlesen):
for x in range(9):
for y in range(9):
Liste.append(int(Eingabefeld_x_y.get())) #wobei x und y aber die Schleifenvariablen sein sollen
Ich habe nirgendwo etwas finden können, wie man so eine Variable in einer Variablenbezeichnung unterbringen kann.
Kann mir einer einen Tipp geben?
Danke, HLOO
Umgang mit mehreren Entry-Feldern
Wenn du zu deiner Idee, die Felder in einer for-Schleife abzufragen einfach noch die Idee, sie auch in einer solchen zu erzeugen hinzufügst, dann bist du da wo du hin willst. Wichtig natürlich die Entries in einer geeigneten Datenstruktur - doppelt verschachtelte Liste, Wörterbuch mit (x, y)-Tupel - zu speichern.
Danke für den Hinweis.
Ich hab die Daten in einer Matrix gespeichert, das mit der Liste ist nur ein Zwischenschritt gewesen.
Aber ich weiß immer noch nicht wie ich in einer Schleife mehrere Eingabe-Felder erzeuge, die dann verschiedene Namen haben müssen.
HLOO
Ich hab die Daten in einer Matrix gespeichert, das mit der Liste ist nur ein Zwischenschritt gewesen.
Aber ich weiß immer noch nicht wie ich in einer Schleife mehrere Eingabe-Felder erzeuge, die dann verschiedene Namen haben müssen.
HLOO