Project 3: Use A* Path Planning to find shortest path

Collaboration Policy - Read carefully you must work on this project individually, you may discuss this assignment with other students in the class and ask and provide help in useful ways, preferable over our email list so we can all benefit from your great ideas. You may consult (but not copy) any outside resources you including books, papers, web sites and people. If you use resources other than the class materials, indicate / cite what you used along with your answer.

Assignment Day Tuesday March 25, 2014

Due Date & Demo

 

Thursday April 03, 2014
Demonstrate on laptop in class, you must attend class, if you feel there may be a conflict, you will need to schedule your demo at an earlier date (i.e., Tuesdsay or Wednesday).

Tuesday April 08, 2014 (with embelishments)

 

Objectives & Requirement

The purpose of this assignment is to highlight use of a path planning that is often uses in game environments. In this particular assignment you will generate an animation of this tutorial of A* star using the manhattan distance for H. We will do an abbreviated tutorial in class.

You may of-course (probay should) change colors and add to the user interface to enhance the visuals of the A* algorithm.

Your animation should display the begin map, and then animate the computions of A* as the algorithm progresses (tiles should incrementally be filled in with the values of F, G and H and the tiles should show the direction to its parent just like we will do in class (on the board).

The Final display should show the tiles with all the values of the functions in A*, and the final path highlighted or drawn (see the image depicting the End Environment below). You should also indicate with a number, the number of the 'shortest' path found by A* (note if you use manhattan distance, you may not have found the shortest path).

Here is an example begin environment (except it is missing some tiles, see the end environment for the missing tiles (you may choose a different color theme if you like).

Here is an example end Environment that also depicts the 'shortest' path highlighted in yellow using the manhattan distance.

 

Your minimal requirements are (75 pts worth):

  1. Animation of the tutorial below:
    1. http://www.policyalmanac.org/games/aStarTutorial.htm
  2. Your animating should be able read in different text files describing obstacles and traversible space, obstacles should be denoted by 'o' and traversible terrain should be denoted by 'e' for empty (tiles). Example text file of the above environment. You may enable your animation to read in a text file via a dialog or you can specify the file on the command line.

    eeeeeeee
    eeeeoeee
    eeeeoeee
    eeeeoeee
    eeeeeeee
    eeeeeeee
    1. *** EDIT: Instead of a file, you may use a dialog to create the map of obstacles and empty space.
    2. *** April 08th Requirement: you must provide file, square and rectangular format, your game should accept variable formats.
    3. **** April 06th: File will count as an "embellishment"
    4. **** EDIT if you do it in Unity, use a specific location for the file.

  3. You program should separately be able to take in different x, y start postions and an x, y goal destinations. You may do this on the command line, or you provide a dialog to enter the x, y postions and the input file.
      1. Example command line if you use java:

        java -X <start x> -Y <start y> -x <goal x> -y <goal y> -f <mapfile.txt>

  4. Include a button (or dial) to speed up or slow the animation so you can see how the functions in A star are computed (and the order in which they are computed).
  5. In your final frame of the animation you should draw the final path and you should also depict the length of the path with a number (number of steps).
  6. Expectations: It is expected that you make good programming design decisions. Your code should also be well documented.
    1. Make your project look good, make it easy to use, and make your animation easy to understand.
  7. You may choose any programming environment that is portable, i.e., your program should run on both mac, linux and PC. (this may be the most challenging aspect of your assignment, because you will need to read in a file).

Minimum Size: 140 squares, e.g., 10 x 14, or 14 x 10.

Below are ideas on embellishments to improve your grade to an A. Getting from a 75 to a 100 is based on effort. In your Grading.txt file you may argue how you achieved an 100 (or above!). Example embellishements:
  1. Compare A* with D* (with visuals) up to 15 pts
  2. Compare against Dijkstra's algorithm up to 5 pts
  3. Experiment with different Heuristic Functions (5 pts) with visuals.
  4. Embelish the interface (graded on effort).
  5. Provide for a large environment with an interesting terrain.
    1. e.g., 100 x 100, note that in this case font size may restrict displaying F, G, and H value, so stop displaying them when they become unreadable.
  6. Provide for different shaped tiles? e.g. octagons.
  7. Write a game that includes A*
  8. Do it in python - get 10 more points.
  9. Do it impactJS - get 15 more points (challenge with files)
  10. Do it in Unity - get 15 more points.
  11. MAX :115 points!

Submission:

(for the below you may change the extension .txt if not plain text e.g., .doc, .pdf)

GRADING.txt: A description on how you met the grading rubric (see below table). You may copy paste these from REPORT.txt.

Example maps : at least 3 example map files should be included. One should be the map from the tutorial. THe map should not include source and destination.

REPORT.txt (or .pdf or .doc) should include minimally:
A description of what you did, how it works, screenshots and discussion on results.

README.txt should includelist of files required to run your game, and how to get your code up and running (e.g., HTML5 file, CSS file - if separate, and image files needed).

 

Grading Rubrics

 


.

.