用python生成一个9*9的数独,写出代码
时间: 2023-01-11 15:55:36 浏览: 153
这是一个可以生成数独的 Python 代码:
```python
import random
def generate_sudoku():
# 随机生成一个空的数独
sudoku = [[0 for _ in range(9)] for _ in range(9)]
# 按照数独的解题规则填充数字
for i in range(9):
for j in range(9):
choices = list(range(1, 10))
random.shuffle(choices)
for val in choices:
if is_valid(sudoku, i, j, val):
sudoku[i][j] = val
break
return sudoku
def is_valid(sudoku, row, col, val):
# 检查当前位置是否合法
for i in range(9):
if sudoku[row][i] == val:
return False
if sudoku[i][col] == val:
return False
start_row = row // 3 * 3
start_col = col // 3 * 3
for i in range(3):
for j in range(3):
if sudoku[start_row + i][start_col + j] == val:
return False
return True
sudoku = generate_sudoku()
for row in sudoku:
print(row)
```
这个代码会生成一个九行九列的数独,并打印出来。
其中,`generate_sudoku` 函数用于生成一个数独,`is_valid` 函数用于检查当前位置是否可以填入指定的数字。
希望这个代码对你有帮助!
阅读全文