#Listing 3: Funktion «test()». def test(sudoku, zugewiesene, zeile, spalte): # Kann 3 Dinge zurückgeben: # a) [] wenn besetzt # b) Tupel mit moeglichen Zahlen # c) [-1] wenn nicht moeglich if sudoku[zeile][spalte] != 0: return [] else: ergebnis = [] # Probiert alle moeglichen Zahlen for n in range(1,LINIEN+1): existiert = False # Linien loeschen for l in range(0,LINIEN): if sudoku[l][spalte] == n: existiert = True break # Spalten loeschen for c in range(0,SPALTEN): if sudoku[zeile][c] == n: existiert = True break # Suche in zugewiesenen Positionen for zugew in zugewiesene: if zugew[0] == zeile and zugew[2] == n: existiert = True break if zugew[1] == spalte and zugew[2] == n: existiert = True break if not existiert: ergebnis.append(n) if ergebnis == []: # Sackgasse ergebnis = [-1] return ergebnis