package de.bwvaachen.beamoflightgame.logic;
/*
Copyright (C) 2013 - 2014 by Andreas Pauls, Georg Braun, Christian Frühholz, Marius Spix, Christopher Müller and Bastian Winzen Part of the Beam Of Lights Puzzle Project
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.
See the COPYING file for more details.
*/
public interface ISolver {
//A hook is executed by the solver if an UnsolvablePuzzleException is thrown
//This allows strategies like backtracking a post-mortem intervention
public static interface Hook {
void run();
}
//The level of a puzzle is determined by the formula
//log(sum(complexity)/count(turns))
public double getLevel();
void solve() throws UnsolvablePuzzleException, AmbiguousPuzzleException, MaximumIterationsExceededException;
}