1

私はこのコードを約 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 に答える