Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def complete(suduko):
- for x in range(0,9):
- for y in range(0,9):
- if suduko[x][y]==0:
- return False
- return True
- def solve(suduko):
- for dig in range(0,81):
- x=dig//9
- y=dig%9
- if suduko[x][y]==0:
- for val in range(1,10):
- if not(val in suduko[x]):
- if not val in (suduko[8][y],suduko[7][y],suduko[6][y],suduko[5][y],suduko[4][y],suduko[3][y],suduko[2][y],suduko[1][y],suduko[0][y]):
- miniGrid=[]
- if x<3:
- if y<3:
- miniGrid=[suduko[dig][0:3] for dig in range(0,3)]
- elif y<6:
- miniGrid=[suduko[dig][3:6] for dig in range(0,3)]
- else:
- miniGrid=[suduko[dig][6:9] for dig in range(0,3)]
- elif x<6:
- if y<3:
- miniGrid=[suduko[dig][0:3] for dig in range(3,6)]
- elif y<6:
- miniGrid=[suduko[dig][3:6] for dig in range(3,6)]
- else:
- miniGrid=[suduko[dig][6:9] for dig in range(3,6)]
- else:
- if y<3:
- miniGrid=[suduko[dig][0:3] for dig in range(6,9)]
- elif y<6:
- miniGrid=[suduko[dig][3:6] for dig in range(6,9)]
- else:
- miniGrid=[suduko[dig][6:9] for dig in range(6,9)]
- if not val in (miniGrid[0] + miniGrid[1] + miniGrid[2]):
- suduko[x][y]=val
- if complete(suduko):
- return True
- suduko = []
- for x in range(9):
- #differentiate each value by a space
- #if no value, enter 0
- x = list(map(int, input("Enter row: ").split()))
- suduko.append(x)
- solved = solve(suduko)
- if solved:
- print("Solved!!")
- for x in suduko:
- print(*x, sep=" ")
- else:
- print("not working")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement