没有合适的资源?快使用搜索试试~ 我知道了~
python数独游戏 这个程序使用了回溯算法来解决数独棋盘。首先,通过递归函数`solve_board`来找到空格,并尝试填入数字1到9。然后,使用`is_valid`函数来检查填入的数字是否合法。如果合法,将数字填入空格,并继续递归调用`solve_board`来填写下一个空格。如果无法填入数字,将该空格重置为0,并尝试下一个数字。直到找到解或者遍历完整个棋盘。 运行以上代码,将会输出数独的解决结果。
资源推荐
资源详情
资源评论
简单的Python数独游戏.md
2023-11-19
1 / 2
下
⾯
是
⼀个
简
单
的
P
yt
h
on
数
独
游
戏
的
实
现
。
def print_board(board):
'''
打
印
数
独
棋
盘
'''
for i in range(9):
if i % 3 == 0 and i != 0:
print("- - - - - - - - - - - -")
for j in range(9):
if j % 3 == 0 and j != 0:
print("| ", end="")
if j == 8:
print(board[i][j])
else:
print(str(board[i][j]) + " ", end="")
def find_empty(board):
'''
找
到
棋
盘
中
的
空
格
(
0
)
'''
for i in range(9):
for j in range(9):
if board[i][j] == 0:
return (i, j)
return None
def is_valid(board, num, position):
'''
判
断
给
定
的
数
字
是
否
在
指
定
位
置
合
法
'''
#
检
查
⾏
for i in range(9):
if board[position[0]][i] == num and position[1] != i:
return False
#
检
查
列
for i in range(9):
if board[i][position[1]] == num and position[0] != i:
return False
#
检
查
⼩
九
宫
格
box_x = position[1] // 3
box_y = position[0] // 3
for i in range(box_y*3, box_y*3 + 3):
for j in range(box_x*3, box_x*3 + 3):
if board[i][j] == num and (i, j) != position:
return False
return True
def solve_board(board):
'''
使
⽤
回
溯
算
法
解
决
数
独
棋
盘
'''
find = find_empty(board)
if not find:
return True
else:
row, col = find
资源评论
一只会写程序的猫
- 粉丝: 9492
- 资源: 866
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功