当前位置: 首页>>代码示例>>C#>>正文


C# Heap.extract方法代码示例

本文整理汇总了C#中Heap.extract方法的典型用法代码示例。如果您正苦于以下问题:C# Heap.extract方法的具体用法?C# Heap.extract怎么用?C# Heap.extract使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Heap的用法示例。


在下文中一共展示了Heap.extract方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: findPath

 //uses A* to find path
 private void findPath(GridNode start, GridNode end)
 {
     Stopwatch watch = new Stopwatch();
     watch.Start();
     Heap<GridNode> heap = new Heap<GridNode>(gameGrid.gridHeight*gameGrid.gridLength);
     Dictionary<GridNode,int> costSoFar = new Dictionary<GridNode,int>();
     Dictionary<GridNode,GridNode> cameFrom = new Dictionary<GridNode,GridNode>();
     HashSet<GridNode> closed = new HashSet<GridNode>();
     heap.insert (start);
     costSoFar.Add(start, 0);
     while(heap.Count > 0){
         GridNode current = heap.extract();
         closed.Add (current);
         if(current.Equals(end)){
             retraceRoute(start,current,cameFrom);
             heap.Clear ();
             watch.Stop();
             print (watch.ElapsedMilliseconds);
         }else{
             List<GridNode> list = gameGrid.getNeighbours(current);
             foreach(GridNode node in list){
                 if(!node.isBlock && !closed.Contains(node)){
                     int cost = costSoFar[current] + gameGrid.getDistanceBetween(current,node);
                     if(!costSoFar.ContainsKey (node) || cost < costSoFar[node]){
                         costSoFar.Remove (node);
                         costSoFar.Add (node,cost);
                         node.score = cost + gameGrid.getHeuristic(node, end);
                         heap.insert (node);
                         cameFrom.Remove (node);
                         cameFrom.Add (node, current);
                     }
                 }
             }
         }
     }
     explored = new HashSet<GridNode>(closed);
 }
开发者ID:kyawt2196,项目名称:RTSEngine,代码行数:38,代码来源:UnitMovement.cs


注:本文中的Heap.extract方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。