我正在尝试在 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/