2016-11-25 06:05:29 +00:00
|
|
|
|
namespace SpriteCompiler.AI
|
|
|
|
|
{
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The NodeExpander class encapsulates a strategy of how the expand one state
|
|
|
|
|
/// into its successor states.In the simplest case, a node's state is expanded
|
|
|
|
|
/// using a problem-specific sucessor function, new search nodes are created and
|
|
|
|
|
/// the list is returned.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public interface INodeExpander<A, S, T, C>
|
|
|
|
|
where T : ISearchNode<A, S, T, C>
|
2016-11-27 05:39:50 +00:00
|
|
|
|
where C : IPathCost<C>
|
2016-11-25 06:05:29 +00:00
|
|
|
|
{
|
|
|
|
|
IEnumerable<T> Expand(ISearchProblem<A, S, C> problem, T node);
|
|
|
|
|
T CreateNode(T parent, S state);
|
|
|
|
|
}
|
|
|
|
|
}
|