1

我已经编写了这个代码大约一个小时,但我无法完成最后一步。我需要在下面修改此代码。从我尝试和阅读的内容来看,它位于前 3 行中(但可能需要修改整个代码)。我需要将每个输入行转换为一个列表,将其附加到棋盘列表,并在最后返回一个数独棋盘。

最后的输出应该是Enter the file for the initial S board ==>;然后我输入board3.txt(包含在帖子末尾)并获取我在此代码中制作的图表。

def read_board(fn):
    board = []
    for line in open(fn,'r'):
        # FIXME

def print_board( board ):
    for r in range(0,9):
        if r%3 == 0:
            print '-'*25
        print '|',
        for c in range(0,9):
            print board[r][c],
            if c==2 or c==5:
                print '|',
            elif c==8:
                print '|'
    print '-'*25

def ok_to_add(row,col,num,board):
    return True

if __name__ == "__main__":
    name = raw_input("Enter the file for the initial S board ==> ").strip()
    board = read_board(name)
    print_board(board)

board3.txt

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

1 回答 1

1

你只需要split每一行。它会自动将行除以空格并为您制作一个列表。

def read_board(fn):
    with open(fn, 'r') as file:
        return [line.split() for line in file]
于 2013-07-22T03:00:09.710 回答