-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.py
80 lines (63 loc) · 2.07 KB
/
test.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
from generador import Sudoku
import numpy as np
"""s = [9,1,0,0,3,0,0,0,0]
s.append([0,0,0,0,0,4,0,0,0])
s.append([0,0,8,0,0,0,5,0,1])
s.append([0,0,0,0,0,0,4,0,6])
s.append([0,0,0,0,0,0,4,0,6])"""
sudoku = Sudoku()
sudoku.insertarNumero(0,0,1)
sudoku.insertarNumero(0,4,2)
sudoku.insertarNumero(1,2,2)
sudoku.insertarNumero(1,8,6)
sudoku.insertarNumero(2,2,8)
sudoku.insertarNumero(2,3,9)
sudoku.insertarNumero(2,5,4)
sudoku.insertarNumero(3,0,4)
sudoku.insertarNumero(3,1,8)
sudoku.insertarNumero(3,2,5)
sudoku.insertarNumero(3,5,7)
sudoku.insertarNumero(4,2,7)
sudoku.insertarNumero(4,4,5)
sudoku.insertarNumero(4,7,9)
sudoku.insertarNumero(5,4,3)
sudoku.insertarNumero(5,6,4)
sudoku.insertarNumero(6,0,8)
sudoku.insertarNumero(6,4,4)
sudoku.insertarNumero(6,5,6)
#sudoku.insertarNumero(7,0,3)
sudoku.insertarNumero(7,6,5)
sudoku.insertarNumero(8,3,5)
#sudoku.insertarNumero(8,5,3)
#sudoku.insertarNumero(8,7,4)
if not sudoku.validarSudoku():
print("sudoku no valido!")
exit()
duda = []
while not sudoku.resuelto:
if not sudoku.validarSudoku():
movDuda = duda.pop()
while sudoku.movActual > movDuda[0]:
sudoku.deshacer()
sudoku.candidatosDescartados.append([movDuda[1], movDuda[2], movDuda[3]])
i, = np.where(sudoku.candidatos[0][2] == movDuda[3])
#print("indice {}".format(i))
sudoku.candidatos[0][2] = np.delete(sudoku.candidatos[0][2],i)
#print("me devolvi al error -> {}, candidatos {}".format(movDuda, sudoku.candidatos[0]))
#exit()
candidato = sudoku.candidatos[0]
if len(candidato[2]) < 1:
print("sin candidatos! movimiento {}".format(sudoku.movActual))
print("no pude resolver :(")
exit()
if len(candidato[2]) > 1:
duda.append([sudoku.movActual, candidato[0], candidato[1], candidato[2][0]])
sudoku.insertarNumero(candidato[0], candidato[1], candidato[2][0])
print(len(sudoku.candidatos))
print("resuelto!")
print(sudoku.sudoku)
exit()
#print(sudoku.obtenerCandidatos(8,8))
print(sudoku.candidatos)
print(sudoku.valido)
print(sudoku.resuelto)