import math
def sets(l):
return map(set, [[]] * l)
class Sudoku(object):
def __init__(self, lol):
self.lol = lol
def is_valid(self):
l = len(self.lol)
size = int(math.sqrt(l))
cols, rows, sq = sets(l), sets(l), sets(l)
for i, row in enumerate(self.lol):
rows[i] = set(row)
for j, col in enumerate(row):
if type(col) is int and col > 0 and col <= l:
cols[j].add(col)
sq[i/size * size + j/size].add(col)
return all([map(len, i).count(l) == l for i in [cols, rows, sq]])
goodSudoku = Sudoku([
[1,4, 2,3],
[3,2, 4,1],
[4,1, 3,2],
[2,3, 1,4]
])
print(goodSudoku.is_valid())
Navíc to nějak nefunguje...
Traceback (most recent call last):
File "C:/Users/koss4/PycharmProjects/untitled/test.py", line 30, in <module>
print(goodSudoku.is_valid())
File "C:/Users/koss4/PycharmProjects/untitled/test.py", line 15, in is_valid
rows[i] = set(row)
TypeError: 'map' object does not support item assignment
Process finished with exit code 1