-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerator.py
43 lines (30 loc) · 1008 Bytes
/
generator.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
import board
import solver
from pattern import Pattern
import time as t
import constants as c
class Generator:
def generate(self, mode = c.random_difficulty,
difficulty = c.easy):
b = None
s = solver.Solver()
count = 0
start = t.time()
while b == None or count != 1:
if mode == c.random_difficulty:
b = self.random(difficulty)
elif mode == c.pattern_difficulty:
b = self.pattern(difficulty)
elif mode == c.board_difficulty:
b = self.board(difficulty)
count = s.count_solutions(b, 2)
end = t.time()
print('Sudoku board generated in ' + str(end - start))
return b
def random(self, difficulty):
board = self.get_board()
p = Pattern.random_difficulty()
print(p)
return p.set_board(board)
def get_board(self):
return solver.Solver().solve(board.Board())