ich habe gerade einen Denkfehler und ich befuerchte, ich werde heute nicht schlafen koennen, wenn ich nicht weiss, warum das nicht so geht wie ich mir das vorstelle . Es geht um einen Teil eines Sudoku Checkers. Ich weiss, es gibt da viel im Netz, aber mich interessiert gerade, warum mein Ansatz spezifisch nicht geht. Wenn ihr mir die Loesung verraten koenntet, waere das nett.
Da in Sudoku die 3x3 "sub"-Quadrate auch alle Zahlen von 1-9 beinhalten sollen, versuche ich gerade die 9x9 Listen so zu rearrangieren, dass ich pro nested list den Inhalt eines Quadrates habe. Falls das unverstaendlich war, hier ein Ausschnitt eines Beispiels:
Code: Alles auswählen
5 3 4 | 6 7 8 | 9 1 2
6 7 2 | 1 9 5 | 3 4 8
1 9 8 | 3 4 2 | 5 6 7
Code: Alles auswählen
[[5,3,4,6,7,2,1,9,8], [6,7,8,1,9,5,3,4,2], [9,1,2,3,4,8,5,6,7]]
Code: Alles auswählen
def make_sudoku_boxes(grid):
boxes = [[]]*9
indices = [(0,3),(3,6),(6,None)]
index = 0
while index < len(grid):
while index < len(grid):
for i,j in indices:
if index/3 == 0:
cur_in = indices.index((i,j))
elif index/3 == 1:
cur_in = indices.index((i,j)) + 3
else:
cur_in = indices.index((i,j)) + 6
boxes[cur_in]+= grid[index][i:j
index += 1
return boxes
valid = [[5,3,4,6,7,8,9,1,2],
[6,7,2,1,9,5,3,4,8],
[1,9,8,3,4,2,5,6,7],
[8,5,9,7,6,1,4,2,3],
[4,2,6,8,5,3,7,9,1],
[7,1,3,9,2,4,8,5,6],
[9,6,1,5,3,7,2,8,4],
[2,8,7,4,1,9,6,3,5],
[3,4,5,2,8,6,1,7,9]]
Was mache ich falsch? :K
Ich hoffe ich konnte es einigermassen erlaeutern. Danke allen schonmal fuer input.