python - 在python中显示2D数独板

标签 python 2d sudoku

我正在尝试在 python 中显示 2D 数独板,如下所示:

0 0 3 |0 2 0 |6 0 0 
9 0 0 |3 0 5 |0 0 1 
0 0 1 |8 0 6 |4 0 0 
------+------+------
0 0 8 |1 0 2 |9 0 0 
7 0 0 |0 0 0 |0 0 8 
0 0 6 |7 0 8 |2 0 0 
------+------+------
0 0 2 |6 0 9 |5 0 0 
8 0 0 |2 0 3 |0 0 9 
0 0 5 |0 1 0 |3 0 0

我设法使用以下代码显示没有分隔线的板:

rows = 'ABCDEFGHI'
cols = '123456789'

def display(values):
    for r in rows :
        for c in cols :
            print values[r+c],
    print 

values 是一个字典 {'A1':'0', 'A2':'0', 'A3':'3', 'A4':'0', 'A5':'2'...等}我得到这个输出:

0 0 3 0 2 0 6 0 0
9 0 0 3 0 5 0 0 1
0 0 1 8 0 6 4 0 0
0 0 8 1 0 2 9 0 0
7 0 0 0 0 0 0 0 8
0 0 6 7 0 8 2 0 0
0 0 2 6 0 9 5 0 0
8 0 0 2 0 3 0 0 9
0 0 5 0 1 0 3 0 0

有什么帮助吗?

最佳答案

以下方法可能有效。但我认为渲染字符串作为结果的函数可能更有用(例如,将结果写入文本文件,而不需要太多的猴子修补)。

rows = 'ABCDEFGHI'
cols = '123456789'

def display(values):
    for i, r in enumerate(rows):
        if i in [3, 6]:
            print '------+-------+------'
        for j, c in enumerate(cols):
            if j in [3, 6]:
                print '|',
            print values[r + c],
        print

结果:

9 6 0 | 5 0 7 | 9 5 2
1 9 3 | 9 3 4 | 5 4 2
4 9 7 | 2 3 0 | 1 3 1
------+-------+------
3 0 1 | 6 7 3 | 9 8 3
2 4 5 | 7 8 7 | 8 0 8
0 1 4 | 9 3 9 | 3 9 6
------+-------+------
6 1 2 | 8 7 6 | 5 0 1
4 3 9 | 3 0 8 | 5 6 6
4 1 7 | 5 9 9 | 3 1 7

关于python - 在python中显示2D数独板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282717/

相关文章:

java - 给定二维数组行/列索引,如何制定数独 "sub-grid"索引?

python - 使用 TKinter 创建浏览按钮

python - 对数据框上的列中的日期时间进行计算

python - 未收到 SMTPlib 附件

java - 从txt文件读取二维数组java扫描仪

Prolog 通配符 : Duplicate list without changing wildcard values

c# - 从数独解决方案中删除单元格使其成为一个谜题

python - 在 python 中填充列表

c# - 如何在Unity中赋予相机的边缘碰撞

performance - 快速找到图像中最接近的非黑色像素