2017-09-18 82 views
1

我有一個計劃數獨遞歸的,運作良好,但我想補充一個櫃檯的解決方案,我已經試過無數的變化,可以做到這一點的代碼,但沒有奏效,最後嘗試使用全局變量將會用C實現作爲最後的手段,也沒有工作,但我不知道如果我用這個變量正確的解決方案,在Python代碼我返回以下錯誤:錯誤全局變量的數獨

File "~/CCR/UserFiles/Marcilio/Sudoku/sudoku.py", line 176, in Sudoku 
    contador += 1 
UnboundLocalError: local variable 'contador' 

按照代碼,全局變量,或者如果有另一種解決方法,並可以建議我謝謝你:

contador = 0 

def Sudoku(Mat, lin, col): 
    lin, col = ProcuraCasas(Mat)  
    if lin == -1 and col == -1: 
     if TestaMatrizPreenchida(Mat): 
      contador += 1 
      ImprimaMatriz(Mat) 
      print("\t") 
     else: print("Preenchimento incorreto")  
    else: 
     for candidato in range (1, 10): 
      if VerificaCandidato (Mat, lin, col, candidato) is True: 
       Mat[lin][col] = candidato  
       Sudoku(Mat, lin, col)   
     Mat[lin][col] = 0 

回答

1

您必須聲明該變量爲函數內部的全局變量:

contador = 0 

def Sudoku(Mat, lin, col): 
    global contador