Exemple #1
0
import nonograms.loader as jx_loader
from solver import Solver

file_name = 'nonograms/test_set/winter.jx'  # default
if __name__ == "__main__":
    import sys
    if len(sys.argv) > 1:
        file_name = sys.argv[1]

conditions = jx_loader.load_nonogram(file_name)
sl = Solver(conditions)
if -1 == sl.find_next_solution():
    print('Invalid conditions')
else:
    print(sl)
                                            dx + (j + 1) * mini_scale, dy + (i + 1) * mini_scale,
                                            tags='solution', fill='black')


def solve(sl: solver.Solver):
    """These will run on separate thread"""
    global solution
    s = 0
    while s != -1:
        s = sl.find_next_solution()
        if s != -1:
            print('Solution#', s)
            solution = sl.get_grid()
    print('end')

cross = solver.Solver(jx_loader.load_nonogram(file_name))  # type: solver.Solver
run_flag = threading.Event()
cross.run_flag = run_flag  # internal break
cross.speed = solver_sleep_time
cross.clicking = True  # Activate slowdown

solution = cross.get_grid()  # Init miniature

root = tk.Tk()
root.title("Nonogram solver")
root.geometry('500x500')
app = App(root, cross)

t = threading.Thread(target=solve, args=(cross,))
t.start()