-
Notifications
You must be signed in to change notification settings - Fork 0
/
logic.py
55 lines (48 loc) · 1.09 KB
/
logic.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
# -*- coding: utf-8 -*-
"""
Created on Tue Dec 24 00:29:52 2019
@author: admin
"""
i=0
j=0
def valid(m,i,j,val):
for it in range(9):
if m[i][it]==val:
return False
if m[it][j]==val:
return False
it=i//3
jt=j//3
for i in range(it*3,it*3+3):
for j in range (jt*3,jt*3+3):
if m[i][j]==val:
return False
return True
def solve(m,i,j):
while m[i][j]!=0:
if i<8:
i+=1
elif i==8 and j<8:
i=0
j+=1
elif i==8 and j==8:
return True
for it in range(1,10):
if valid(m,i,j,it)==True:
m[i][j]=it
if solve(m,i,j)==1:
return True
else:
m[i][j]=0
return False
#m =[[4,0,0,8,0,5,0,0,9],
# [0,0,5,0,0,0,0,8,6],
# [0,0,0,0,0,0,0,0,0],
# [0,7,0,0,0,9,5,0,0],
# [3,0,0,0,5,0,0,0,0],
# [0,0,6,0,7,0,1,0,0],
# [0,3,0,0,0,0,0,0,4],
# [5,0,0,0,3,7,2,0,0],
# [0,6,0,9,0,0,0,0,0]]
#if solve(m,0,0)==True:
# print(m)