diff --git a/polyomino/problem.py b/polyomino/problem.py index 9c40c4a..5e4c9e2 100644 --- a/polyomino/problem.py +++ b/polyomino/problem.py @@ -1,6 +1,7 @@ import numpy as np from exact_cover import get_exact_cover +from exact_cover.error import NoSolution from .error import CantPlaceSinglePiece from .solution import Solution @@ -60,7 +61,10 @@ def make_problem(self): def solve(self): self.make_problem() - solution = get_exact_cover(self.array) + try: + solution = get_exact_cover(self.array) + except NoSolution: + return None tiling = [self.key[s] for s in solution] if tiling: return Solution(tiling, self.board)