@@ -37,9 +37,9 @@ protected virtual void Start()
37
37
var start = m_grid [ 9 , 3 ] ;
38
38
var end = m_grid [ 3 , 33 ] ;
39
39
40
- this . CreateExpensiveArea ( m_grid [ 1 , 15 ] , m_grid [ 18 , 20 ] , 10 ) ;
40
+ this . CreateExpensiveArea ( m_grid [ 0 , 15 ] , m_grid [ 18 , 20 ] , 10 ) ;
41
41
42
- this . StartCoroutine ( DisplayUniformCostSearch ( start , end ) ) ;
42
+ this . StartCoroutine ( DisplayAStarSearch ( start , end , CalculateEuclideanDistance ) ) ;
43
43
}
44
44
45
45
private IEnumerator DisplayDepthFirstSearch ( Tile start , Tile end )
@@ -221,10 +221,13 @@ private IEnumerator DisplayAStarSearch(Tile start, Tile end, Func<Tile, Tile, fl
221
221
end . Color = m_endColor ;
222
222
end . SetText ( "X" ) ;
223
223
224
+ var costs = InitializePathCosts ( m_grid ) ;
225
+ costs [ start ] = 0.0f ;
226
+
224
227
Comparison < Tile > heuristicComparison = ( a , b ) =>
225
228
{
226
- var aPriority = a . Weight + heuristic ( a , end ) ;
227
- var bPriority = b . Weight + heuristic ( b , end ) ;
229
+ var aPriority = costs [ a ] + heuristic ( a , end ) ;
230
+ var bPriority = costs [ b ] + heuristic ( b , end ) ;
228
231
229
232
return aPriority . CompareTo ( bPriority ) ;
230
233
} ;
@@ -235,9 +238,6 @@ private IEnumerator DisplayAStarSearch(Tile start, Tile end, Func<Tile, Tile, fl
235
238
var frontier = new PriorityQueue < Tile > ( heuristicComparison ) ; // Stable priority queue.
236
239
frontier . Enqueue ( start ) ;
237
240
238
- var costs = InitializePathCosts ( m_grid ) ;
239
- costs [ start ] = 0.0f ;
240
-
241
241
while ( frontier . Count > 0 )
242
242
{
243
243
var current = frontier . Dequeue ( ) ;
0 commit comments