python数独游戏源代码
时间: 2023-07-05 10:31:30 浏览: 99
以下是一个简单的Python数独游戏源代码:
```python
import random
# 创建数独棋盘
def create_board():
seed = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(seed)
board = [[0]*9 for i in range(9)]
for i in range(9):
board[0][i] = seed[i]
for i in range(1, 9):
for j in range(9):
board[i][j] = board[i-1][(j+3)%9]
return board
# 打印数独棋盘
def print_board(board):
print("-"*25)
for i in range(9):
for j in range(9):
print(board[i][j], end=" ")
if j%3 == 2:
print("|", end=" ")
print()
if i%3 == 2:
print("-"*25)
# 检查行、列、小九宫格是否有重复数字
def check(board, row, col, num):
for i in range(9):
if board[row][i] == num:
return False
for i in range(9):
if board[i][col] == num:
return False
r = (row//3)*3
c = (col//3)*3
for i in range(3):
for j in range(3):
if board[r+i][c+j] == num:
return False
return True
# 解数独
def solve(board):
for row in range(9):
for col in range(9):
if board[row][col] == 0:
for num in range(1, 10):
if check(board, row, col, num):
board[row][col] = num
if solve(board):
return True
board[row][col] = 0
return False
return True
# 创建数独棋盘并解决
board = create_board()
print("原始数独:")
print_board(board)
solve(board)
print("解决后的数独:")
print_board(board)
```
可以通过调用`create_board()`函数创建一个数独棋盘,通过调用`solve()`函数解决数独,最后通过调用`print_board()`函数打印结果。