九宫格是一种常见的数独游戏,在九宫格中填入1到9的数字,使得每一行、每一列和每一个3*3的宫内数字都不重复。
以下是一个使用Python生成九宫格的简单代码示例:
def generate_sudoku():
# 初始化一个9x9的二维列表
sudoku = [[0]*9 for _ in range(9)]
def is_valid(row, col, num):
# 检查行列以及3x3宫内是否有重复
return (
num not in sudoku[row] and
num not in [sudoku[r][col] for r in range(9)] and
num not in [sudoku[r][c] for r in (row//3*3, row//3*3+1, row//3*3+2) for c in (col//3*3, col//3*3+1, col//3*3+2)]
)
def solve_sudoku(row=0, col=0):
# 遍历到最后一个格子时结束递归
nonlocal sudoku
if row == 9:
return True
# 当col为9时,行数加1,列数变为0
col = col % 9
if sudoku[row][col] != 0:
return solve_sudoku(row, col+1)
else:
for num in range(1, 10):
if is_valid(row, col, num):
sudoku[row][col] = num
if solve_sudoku(row, col+1):
return True
sudoku[row][col] = 0
return False
solve_sudoku()
return sudoku
sudoku = generate_sudoku()
for row in sudoku:
print(row)
这段代码定义了一个generate_sudoku
函数,该函数创建一个9x9的二维列表来表示九宫格,然后定义了is_valid
函数来检查在某个格子填入数字后是否满足数独的要求。最后,solve_sudoku
函数通过递归填充数字直至生成有效的九宫格。