public List <T> Evaluate(T startNode, INodeEvaluator <T> evaluator, ExitConditions exitConditions) { current.Add(startNode); while (true) { while (current.Count > 0) { var n = SelectNextForEvaluation(current); if (n == null) { return(solutions); } evaluator.Evalulate(n, this); current.Remove(n); } if (next.Count > 0) { // Swap var s = current; current = next; next = s; } else { return(solutions); } } }
public SolverNodeRoot( VectorInt2 playerBefore, VectorInt2 push, IBitmap crateMap, IBitmap moveMap, INodeEvaluator evaluator, Puzzle puzzle) : base(null, playerBefore, push, crateMap, moveMap) { Evaluator = evaluator; Puzzle = puzzle; }
protected SolverBase(INodeEvaluator evaluator) { this.evaluator = evaluator; BatchSize = 150; }
public Stepper(INodeEvaluator evaluator, IBitAnalyser analyser) { mEvaluator = evaluator; mAnalyser = analyser; }
public SolverNodeRootReverse(VectorInt2 playerBefore, VectorInt2 push, Bitmap crateMap, Bitmap moveMap, INodeEvaluator evaluator, Puzzle puzzle) : base(playerBefore, push, crateMap, moveMap, evaluator, puzzle) { }