Как проверить, является ли данная сетка судоку играбельной или нет? - PullRequest
0 голосов
/ 10 октября 2019

Я работаю над sudoku2 из сигнала кода и проверяю, является ли данная сетка воспроизведения sudoku действительной или нет.

Мой код проходит все разблокированные тестовые случаи, кроме одного, и я не уверен, гдемоя проблемаЯ сузил его до своих функций checkSquare () или checkSquares ().

Вот мой код

def sudoku2(grid):
    if checkRows(grid) and checkCols(grid) and checkSquares(grid):
        return True
    return False
def checkRows(grid):
    for i in range(9):
        list = set()
        for j in range(9):
            if grid[i][j] in list:
                return False
            elif not grid[i][j] == ".":
                list.add(grid[i][j])
    return True
def checkCols(grid):
    for i in range(9):
        list = set()
        for j in range(9):
            if grid[j][i] in list:
                return False
            elif not grid[j][i] == ".":
                list.add(grid[j][i])
    return True
def checkSquare(grid, row, col):
    list = set()
    for j in range(3):
        for k in range(3):
            if grid[j][k] in list:
                return False
            elif not grid[j][k] == ".":
                list.add(grid[j][k])
    return True
def checkSquares(grid):
    row = 0
    col = 0
    track = 0
    for i in range(3):
        if track%2==0:
            row+=3
        else:
            col+=3
        for j in range(3):
            if not checkSquare(grid,i+row, j+col):
                return False
        track+=1
    return True

И это таблица для неудачного теста.

[[".",".",".",".",".",".","5",".","."], 
 [".",".",".",".",".",".",".",".","."], 
 [".",".",".",".",".",".",".",".","."], 
 ["9","3",".",".","2",".","4",".","."], 
 [".",".","7",".",".",".","3",".","."], 
 [".",".",".",".",".",".",".",".","."], 
 [".",".",".","3","4",".",".",".","."], 
 [".",".",".",".",".","3",".",".","."], 
 [".",".",".",".",".","5","2",".","."]]

У меня нет ошибок компиляции, поэтому я не могу найти проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...