CS 242 Fall 2009 : Assignment 2.4
CS 242 Fall 2009 : Assignment 2.4
This page last changed on Oct 13, 2009 by celliso2.
This final part of the assignment will be due on October 14th, 2009 at 8AM in svn. This assignment will be an extension of the maze solver library. Specifically, it will create a GUI interface for your libraries. Please commit your assignment to a directory called Assignment2.4 in svn. Please match this spelling exactly so we can automate the export of code for code reading.
For this assignment we will be building a Graphical User Interface (GUI) for the maze solving libraries we have developed. As a method of creating this GUI, we’ll be turning to the model-view-controller (MVC) software architecture. In an MVC architecture there are three components that comprise all the pieces of a GUI. The Model is used to hold data related to an application. In the context of this assignment, this might be the maze representation(s), state of the solution, state of the GUI, etc. The View component contains what the user will see. A view would have all buttons, labels, frames, pictures, and other graphical elements. The Controller handles communication between the user and the application. It will contain the functions to handle button clicks, for example. The following link is an excellent description of the MVC design paradigm: http://www.cs.rice.edu/~cork/newBook/node89.html.
To complete this assignment, your GUI must do several things. It should contain a button to test if the maze is solvable. It should contain a button to then solve the maze. The GUI should be able to load a maze from a file, and it should not need to be restarted when new mazes are loaded. You will find this functionality to be easily performed with a File Chooser. It should also contain a visualization of the maze, and when solved, the solution. This visualization can be a minimum of a text box, but other graphical displays are just fine. Either way, the display must be embedded in the GUI (command-line output does not count). Your GUI should also be able to take in any parameters used for scaling uphill/downhill values or otherwise changing the heuristic or cost functions.
Your GUI should also be able to set up a range for coefficients for your heuristic, take an interval for running successive tries and allow for running for each of the values in the given ranges. You should also allow for “stepping” through runs. Lastly, your UI should be able to allow for basic editing of the map, that is, set values in a given range to “no walk”.
You may also complete some challenge requirements to earn some extra credit. Eligible challenge requirements include: editing a maze from the GUI beyond the basic requirement (set values in ranges to specific values?), or animating the maze solution with an adjustable time interval. If you have another challenge idea, post it on the newsgroup and one of the course staff will let you know if it is acceptable.
As always, you will be graded on participation and implementing the guidelines for modular, readable code. Additionally, you will be graded on the following criteria.
Consider the requirements below for additional features of your GUI:
GUI programming can be a potentially daunting experience. Below are some external resources to help get you going.
|Document generated by Confluence on Feb 22, 2012 18:18|