private static void RunPuzzle(Puzzle puzzle, int maxExecution = 100) { var engine = new SolverEngine(); //engine.WriteLog = (message) => { Console.WriteLine(message); }; engine.LoadPuzzle(puzzle); long elapsed = engine.TrySolveToEnd(); Console.WriteLine(puzzle.Name.PadRight(19) + " : " + "e " + elapsed.ToString().PadRight(3) + ", " + "g " + engine.GuessedMoves().ToString().PadRight(3) + ", " + "u " + engine.Undos.ToString().PadRight(3)); bool solved = engine.IsFullySolved(); Assert.IsTrue(solved, "Could not solve puzzle " + puzzle.Name); Assert.LessOrEqual(elapsed, maxExecution, "Elapsed milliseconds must be less than " + maxExecution); }
public RandomMoveAlgorithm(SolverEngine engine) : base(engine) { }
private void InitializeEngine() { engine = new SolverEngine(); engine.WriteLog = (message) => { Log.Text += message + Environment.NewLine; }; }
public NakedPairsInSquareAlgorithm(SolverEngine engine) : base(engine) { }
private void InitializeEngine() { engine = new SolverEngine(); engine.WriteLog = (message) => { WriteLog(message); }; }
public NakedPairsInSquareAlgorithm(SolverEngine engine) : base(engine) { }
public HiddenPairsInRowAlgorithm(SolverEngine engine) : base(engine) { }
public NakedTriplesInColumnAlgorithm(SolverEngine engine) : base(engine) { }
public NakedPairsInColumnAlgorithm(SolverEngine engine) : base(engine) { }
public RefreshPossiblesAlgorithm(SolverEngine engine) : base(engine) { }
public NakedPairsInRowAlgorithm(SolverEngine engine) : base(engine) { }
public Algorithm(SolverEngine engine) { _engine = engine; }
public SingleInRowAlgorithm(SolverEngine engine) : base(engine) { }
public HiddenPairsInSquareAlgorithm(SolverEngine engine) : base(engine) { }
public SingleInColumnAlgorithm(SolverEngine engine) : base(engine) { }
public Algorithm(SolverEngine engine) { _engine = engine; }
public RefreshPossiblesAlgorithm(SolverEngine engine) : base(engine) { }
public NakedPairsInColumnAlgorithm(SolverEngine engine) : base(engine) { }
public HiddenPairsInRowAlgorithm(SolverEngine engine) : base(engine) { }
public NakedTriplesInSquareAlgorithm(SolverEngine engine) : base(engine) { }
public NakedTriplesInColumnAlgorithm(SolverEngine engine) : base(engine) { }
public SingleInSquareAlgorithm(SolverEngine engine) : base(engine) { }
public PointingPairsAlgorithm(SolverEngine engine, Direction direction) : base(engine) { _direction = direction; }
public NakedTriplesInSquareAlgorithm(SolverEngine engine) : base(engine) { }
public PointingPairsAlgorithm(SolverEngine engine, Direction direction) : base(engine) { _direction = direction; }
public SingleInSquareAlgorithm(SolverEngine engine) : base(engine) { }
public SingleInRowAlgorithm(SolverEngine engine) : base(engine) { }