start method

Future<List<DFMapPosition>> start(
  1. List<List<int>> blockMap,
  2. DFMapNode startNode,
  3. DFMapNode endNode
)

开始算法

Implementation

Future<List<DFMapPosition>> start(List<List<int>> blockMap, DFMapNode startNode, DFMapNode endNode) async {
  /// Map数据
  DFMap map = DFMap(blockMap, blockMap[0].length, blockMap.length, startNode, endNode);

  /// clean
  _openList.clear();
  _closeList.clear();
  _pathList.clear();

  /// 开始搜索
  _openList.add(map.start);

  /// 优先队列(升序)
  _openList.sort((a, b) => a.compareTo(b));
  moveNodes(map);

  /// 删掉起点
  if (this._pathList.length > 0) {
    this._pathList.removeLast();
  }

  /// 返回路径
  return this._pathList;
}