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