title: Guide on how to solve Rush Hour Puzzle in Java obtaining lowest number of moves using A* . Need help on how to start and steps to follow
body: <p>Firstly, I have read every thread that I could find on stackoverflow or other internet searching. I did learn about different aspects, but it isn't exactly what I need.</p>
  
  <p>I need to solve a Rush Hour puzzle of size no larger than 8 X 8 tiles.</p>
  
  <p>As I have stated in title I want to use A*, as a heuristic for it I was going to use :
  number of cars blocking the red car's ( the one that needs to be taken out ) path should decrease or stay the same.</p>
  
  <p>I have read the BFS solution for Rush hour.</p>
  
  <p>I don't know how to start or better said, what steps to follow. </p>
  
  <p>In case anyone needs any explanation, here is the link to the task :</p>
  
  <p><a href="http://www.cs.princeton.edu/courses/archive/fall04/cos402/assignments/rushhour/index.html" rel="nofollow">http://www.cs.princeton.edu/courses/archive/fall04/cos402/assignments/rushhour/index.html</a></p>
  
  <p>So far from what have I read ( especially from polygenelubricants's answer ) I need to generate a graph of stages including initial one and "succes" one  and determine the minimum path from initial to final using A* algorithm ?</p>
  
  <p>Should I create a backtracking function to generate all the possible ( valid ) moves ?</p>
  
  <p>As I have previously stated, I need help on outlining the steps I need to take rather than having issues with the implementation.</p>
  
  <p>Edit : Do I need to generate all the possible moves  so I convert them into graph nodes, isn't that time consuming ? I need to solve a 8X8 puzzle in less than 10 seconds</p>