title: A star algorithm implementation in javascript
body: <p>I am trying to implement the A star algorithm in Javascript. But the problem I am facing is in the heuristic_cost_estimate function. I don't know how to implement this. As in where is the definition of this function. I don't want the whole code, just the function.</p>
  
  <pre><code> function A*(start,goal)
           closedset := the empty set    // The set of nodes already evaluated.
           openset := {start}    // The set of tentative nodes to be evaluated, initially containing the start node
           came_from := the empty map    // The map of navigated nodes.
  
           g_score[start] := 0    // Cost from start along best known path.
           // Estimated total cost from start to goal through y.
      *************************************************** heurisctic function******************  
  
     f_score[start] := g_score[start] + ***heuristic_cost_estimate(start, goal)***
  
           while openset is not empty
               current := the node in openset having the lowest f_score[] value
               if current = goal
                   return reconstruct_path(came_from, goal)
  
               remove current from openset
               add current to closedset
               for each neighbor in neighbor_nodes(current)
                   if neighbor in closedset
                       continue
                   tentative_g_score := g_score[current] + dist_between(current,neighbor)
  
                   if neighbor not in openset or tentative_g_score &lt; g_score[neighbor] 
                       add neighbor to openset
                       came_from[neighbor] := current
                       g_score[neighbor] := tentative_g_score
                       f_score[neighbor] := g_score[neighbor] + heuristic_cost_estimate(neighbor, goal)
  
           return failure
  
       function reconstruct_path(came_from, current_node)
           if came_from[current_node] is set
               p := reconstruct_path(came_from, came_from[current_node])
               return (p + current_node)
           else
               return current_node
  </code></pre>