我一直在做一项任务,验证一个已经完成的数独游戏,看看它是否正确完成。我已经能够定义函数,并能够将代码划分为不同的部分,以允许代码正常流动。我检查了行、列和子矩阵方块。数独游戏是通过一个文本文件提供的,在运行程序时可以读取该文本文件。当我运行程序时,唯一显示的是数独板。我该怎么做才能证明谜题是正确的 有效吗
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, 9, 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()函数的返回值
相关问题 更多 >
编程相关推荐