Python有效的Sudoku Board Checker 9x9验证正方形,但不显示输出结果

问题描述

我一直在从事一项任务,其中的任务是验证一个已经完成的数独难题,并​​查看它是否正确完成。我已经能够定义函数,并且能够将代码分段到不同的段以允许代码正确地流动。我检查了行,列和子矩阵的正方形。 Sudoku拼图是通过一个文本文件提供的,该文本文件在运行程序时可以读取。当我运行程序时,唯一显示的是Sudoku板。我该怎么做才能证明难题是 有效吗?

def main():
 fl =('sudoku board.txt')
 grids =(is_puzzle(fl))



def is_Puzzle(fl):
with open(fl,'r') as files:
    grids = []
    lines = files.readlines()
    for line in lines:
         board = line.split()
         wholenums = [int(items) for items in board]
         print (wholenums)
         grids.append(wholenums)
    return grids




def is_puzzle(fl):


if check_rows(fl) and check_columns(fl) and check_squares(fl):
    return True
else:
    return False

def compare_all(fl):
compare = [1,2,3,4,5,6,7,8,9]
return sorted(lst) `== compare


def check_rows(fl):
for i in grids:
    if not grids.compare_all(i):
        return False
return True




def check_columns(fl):
for i in range(len(fl)):
    contain = []
    for j in range(len(fl[0])):
        contain.append(fl[j][i])
    if not grids.compare_all(hold):
        return False


def check_squares(fl):
for i in range(0,9,3):
    for j in range(0,3):
        nums = fl[i][j:j+3]+fl[i+1][j:j+3]+fl[i+2][j:j+3]
        if not grids.compare_all(nums):
            return False
return True


main()

解决方法

这是您的代码固定,并按预期执行。除了进行一些调整之外,您还必须检查is_puzzle()函数的返回值。

def main():
    fl = 'sudoku board.txt'
    grids = (is_Puzzle(fl))
    print()
    if is_puzzle(grids):
        print('The sudoku is correct!')
    else:
        print('The sudoku is wrong...')

def is_Puzzle(fl):
    with open(fl,'r') as files:
        grids = []
        lines = files.readlines()
        for line in lines:
            board = line.split()
            wholenums = [int(items) for items in board]
            print(wholenums)
            grids.append(wholenums)
        return grids

def is_puzzle(fl):
    if check_rows(fl) and check_columns(fl) and check_squares(fl):
        return True
    else:
        return False

def compare_all(fl):
    compare = [1,2,3,4,5,6,7,8,9]
    return sorted(fl) == compare

def check_rows(fl):
    for i in fl:
        if not compare_all(i):
            return False
    return True

def check_columns(fl):
    for i in range(len(fl)):
        contain = []
        for j in range(len(fl[0])):
            contain.append(fl[j][i])
        if not compare_all(contain):
            return False
    return True

def check_squares(fl):
    for i in range(0,9,3):
        for j in range(0,3):
            nums = fl[i][j:j + 3] + fl[i + 1][j:j + 3] + fl[i + 2][j:j + 3]
            if not compare_all(nums):
                return False
    return True

main()

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...