SHARE
TWEET

Untitled

a guest Apr 26th, 2019 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. def backtrack(self, row, col):
  2.         if self.map[row][col].type == "v" and self.map[row][col].value[0] == 0:
  3.             for i in range(1,10):
  4.                 if (not self.finished) and self.possibleValue(row, col, i):
  5.                     self.map[row][col].value[0] = i
  6.                     print(str(row) + "," + str(col) + ": ")
  7.                     print(self.map[row][col].value[0])
  8.                     if col == len(self.map[row]) - 1:
  9.                         if row < len(self.map) - 1:
  10.                             self.backtrack(row + 1, 0)
  11.                         else:
  12.                             self.finished = True    
  13.                     else:
  14.                         self.backtrack(row, col + 1)
  15.                     if not self.finished:
  16.                         self.map[row][col].value[0] = 0
  17.         else:
  18.             if col == len(self.map[row]) - 1:
  19.                 if (not self.isFinalRowNonV(row)) or self.possibleValue(row, col, self.map[row][col].value[0]):
  20.                     if row < len(self.map) - 1:
  21.                         self.backtrack(row + 1, 0)
  22.                     else:
  23.                         self.finished = True
  24.             else:
  25.                 if (not self.isFinalColNonV(row, col)) or self.possibleValue(row, col, self.map[row][col].value[0]):
  26.                     self.backtrack(row, col + 1)
  27.         return
  28.  
  29.     def possibleValue(self, row, col, value):
  30.         possible = True
  31.         i = row-1
  32.         rowValue = value
  33.         while self.map[i][col].type == "v":
  34.             rowValue += self.map[i][col].value[0]
  35.             if self.map[i][col].value[0] == value:
  36.                 possible = False
  37.             i -= 1
  38.         if self.map[i][col].type == "b":
  39.             maxRowValue = self.map[i][col].value[0]
  40.         elif self.map[i][col].type == "d":
  41.             maxRowValue = self.map[i][col].value[0]
  42.         if rowValue > maxRowValue or (rowValue != maxRowValue and self.isFinalRowV(row, col)):
  43.             possible = False
  44.        
  45.         j = col-1
  46.         colValue = value
  47.         while self.map[row][j].type == "v":
  48.             colValue += self.map[row][j].value[0]
  49.             if self.map[row][j].value[0] == value:
  50.                 possible = False
  51.             j -= 1
  52.         if self.map[row][j].type == "b":
  53.             maxColValue = self.map[row][j].value[1]
  54.         elif self.map[row][j].type == "r":
  55.             maxColValue = self.map[row][j].value[0]
  56.         if colValue > maxColValue or (colValue != maxColValue and self.isFinalColV(row, col)):
  57.             possible = False
  58.  
  59.         return possible
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top