├── Main.py └── Manual-Entry /Main.py: -------------------------------------------------------------------------------- 1 | import pyautogui as pg 2 | import numpy as np 3 | import time 4 | 5 | grid = [] 6 | 7 | while True: 8 | row = list(input('Row: ')) 9 | ints = [] 10 | 11 | for n in row: 12 | ints.append(int(n)) 13 | grid.append(ints) 14 | 15 | if len(grid) == 9: 16 | break 17 | print('Row ' + str(len(grid)) + ' Complete') 18 | 19 | time.sleep(1) 20 | 21 | def possible(x, y, n): 22 | for i in range(0, 9): 23 | if grid[i][x] == n and i != y: # Checks for number (n) in X columns 24 | return False 25 | 26 | for i in range(0, 9): 27 | if grid[y][i] == n and i != x: # Checks for number (n) in X columns 28 | return False 29 | 30 | x0 = (x // 3) * 3 31 | y0 = (y // 3) * 3 32 | for X in range(x0, x0 + 3): 33 | for Y in range(y0, y0 + 3): # Checks for numbers in box(no matter the position, it finds the corner) 34 | if grid[Y][X] == n: 35 | return False 36 | return True 37 | 38 | def Print(matrix): 39 | final = [] 40 | str_fin = [] 41 | for i in range(9): 42 | final.append(matrix[i]) 43 | 44 | for lists in final: 45 | for num in lists: 46 | str_fin.append(str(num)) 47 | 48 | counter = [] 49 | 50 | for num in str_fin: 51 | pg.press(num) 52 | pg.hotkey('right') 53 | counter.append(num) 54 | if len(counter)%9 == 0: 55 | pg.hotkey('down') 56 | pg.hotkey('left') 57 | pg.hotkey('left') 58 | pg.hotkey('left') 59 | pg.hotkey('left') 60 | pg.hotkey('left') 61 | pg.hotkey('left') 62 | pg.hotkey('left') 63 | pg.hotkey('left') 64 | 65 | 66 | def solve(): 67 | global grid 68 | for y in range(9): 69 | for x in range(9): 70 | if grid[y][x] == 0: 71 | for n in range(1, 10): 72 | if possible(x, y, n): 73 | grid[y][x] = n 74 | solve() 75 | grid[y][x] = 0 76 | return 77 | Print(grid) 78 | input("More?") 79 | 80 | solve() 81 | -------------------------------------------------------------------------------- /Manual-Entry: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | grid = [] 4 | 5 | while True: 6 | row = list(input('Row: ')) 7 | ints = [] 8 | 9 | for n in row: 10 | ints.append(int(n)) 11 | grid.append(ints) 12 | 13 | if len(grid) == 9: 14 | break 15 | print('Row ' + str(len(grid)) + ' Complete') 16 | 17 | 18 | def possible(x, y, n): 19 | for i in range(0, 9): 20 | if grid[i][x] == n and i != y: # Checks for number (n) in X columns 21 | return False 22 | 23 | for i in range(0, 9): 24 | if grid[y][i] == n and i != x: # Checks for number (n) in X columns 25 | return False 26 | 27 | x0 = (x // 3) * 3 28 | y0 = (y // 3) * 3 29 | for X in range(x0, x0 + 3): 30 | for Y in range(y0, y0 + 3): # Checks for numbers in box(no matter the position, it finds the corner) 31 | if grid[Y][X] == n: 32 | return False 33 | return True 34 | 35 | def solve(): 36 | global grid 37 | for y in range(9): 38 | for x in range(9): 39 | if grid[y][x] == 0: 40 | for n in range(1, 10): 41 | if possible(x, y, n): 42 | grid[y][x] = n 43 | solve() 44 | grid[y][x] = 0 45 | return 46 | print(np.matrix(grid)) 47 | input("More?") 48 | 49 | solve() 50 | --------------------------------------------------------------------------------