Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #sudoku solver, note this lacks the proper printout and check if solved conditions of later versions, bug me and I'll upload that
- grid = [[{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9}],[{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9}],[{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9}],[{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9}],[{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9}],[{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9}],[{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9}],[{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9}],[{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9}]]
- for i in range(0,9):
- for j in range(0,9):
- ans = int(input("Number inside location [{0}],[{1}]?".format(i+1,j+1)))
- if ans != 0:
- grid[i][j] = {ans}
- def reduceRow(grid,row):
- rowSet = set()
- for i in range(0,9):
- if len(grid[row][i]) == 1:
- rowSet = rowSet|grid[row][i]
- for i in range(0,9):
- if len(grid[row][i]) != 1:
- grid[row][i] = grid[row][i]-rowSet
- return grid
- def reduceGridRows(grid):
- for i in range(0,9):
- reduceRow(grid,i)
- def reduceColumn(grid,column):
- rowSet = set()
- for i in range(0,9):
- if len(grid[i][column]) == 1:
- rowSet = rowSet|grid[i][column]
- for i in range(0,9):
- if len(grid[i][column]) != 1:
- grid[i][column] = grid[i][column]-rowSet
- return grid
- def reduceGridColumn(grid):
- for i in range(0,9):
- reduceColumn(grid,i)
- def reduceBox(grid,x,y):
- rowSet = set()
- for i in range(0,3):
- if len(grid[x][y+i]) == 1:
- rowSet = rowSet|grid[x][y+i]
- for i in range(0,3):
- if len(grid[x+1][y+i]) == 1:
- rowSet = rowSet|grid[x+1][y+i]
- for i in range(0,3):
- if len(grid[x+2][y+i]) == 1:
- rowSet = rowSet|grid[x+2][y+i]
- for i in range(0,3):
- if len(grid[x][y+i]) != 1:
- grid[x][y+i] = grid[x][y+i] - rowSet
- for i in range(0,3):
- if len(grid[x+1][y+i]) != 1:
- grid[x + 1][y + i] = grid[x+1][y+i] - rowSet
- for i in range(0,3):
- if len(grid[x+2][y+i]) != 1:
- grid[x + 2][y + i] = grid[x+2][y+i] - rowSet
- def reduceGridBox(grid):
- for i in [0,3,6]:
- for j in [0,3,6]:
- reduceBox(grid,i,j)
- def reduce(grid):
- reduceGridColumn(grid)
- reduceGridRows(grid)
- reduceGridBox(grid)
- reduce(grid)
- for i in range(0,100):
- reduce(grid)
- for i in range(0,9):
- for j in range(0,9):
- print(grid[i][j])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement