2013-07-21 1 views
1

약 1 시간 동안이 코드를 작성했지만 최종 결과를 얻을 수 없습니다. 단계. 아래에서이 코드를 수정해야합니다. 내가 시도하고 읽은 것으로부터, 처음 3 행의 어딘가에있다. (그러나 전체 코드를 수정해야 할 수도있다.) 각 입력 줄을 목록으로 변환하고 보드 목록에 추가 한 다음 끝에 스도쿠 보드를 반환해야합니다.txt 파일을 Python으로 가져 와서이 코드와 함께 사용해야합니다 (입력 줄을 나열하여 변환하여 추가하고 값을 반환해야 함)

마지막 출력은 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 

답변

1

당신은 split 각 라인에 필요합니다. 자동으로 공백으로 줄을 나누어 목록으로 만듭니다.

def read_board(fn): 
    with open(fn, 'r') as file: 
     return [line.split() for line in file] 
+0

유형의 오류 '없음 형'개체가 하위 스크립트 아니라, print_board에 라인 10 라인 (22)을 작동하지 않았다. 작동하지 않았다. 나는 맨 처음 3 줄에 당신의 진술을 겹쳐 씁니다. after def print_board (board) : 등 – user2605035

+0

일단 보드가 생성되면 보드 객체를 반환하는 것을 잊어 버렸습니다. 다시 시도하십시오. – llb