public EngineDouble( Position startPosition, Func<Position, bool> validPositionEvaluator) : this(startPosition, validPositionEvaluator, p => true) { }
public bool MoveDelta(int x, int y) { var newPosition = currentPosition.MoveDelta(x, y); if (validPositionEvaluator(newPosition)) { currentPosition = newPosition; return true; } return false; }
public EngineDouble( Position startPosition, Func<Position, bool> validPositionEvaluator, Func<Position, bool> cleaningAtPositionEvaluator) { currentPosition = startPosition; this.validPositionEvaluator = validPositionEvaluator; this.cleaningAtPositionEvaluator = cleaningAtPositionEvaluator; }