Final Project: GUI Programming to Create a Labyrinth Game


Assigned: Monday, April 10
Due: Tuesday, May 9

Contents:


Overview

Topic(s): GUI Programming, Design Patterns, Interfaces, Inheritance, Polymorphism, Anonymous Classes, and Quality Class Design

Related Reading: GUI programming sections from Chapters 4, 5, and 6


Collaboration

For the final project, you may work in groups of up to three individuals.

One-person project: If you choose to work on the assignment individually, you may use a static maze or labyrinth (of your own design).

Two-person project: The two-person project may also use static mazes/labyrinths, but must be a little more extensive, including at least 10 points listed in the extra credit section below (those 10 points are not counted as extra credit -- only extra credit points beyond the first 10 points will count as extra credit).

Three-person project: The three-person project is similar to the two-person project, but also requires implementation of a random maze/labyrinth generator, as described in the extra credit section below (the 10 points from random maze generation and the required 10 points of extra credit are not counted as extra credit -- only extra credit points beyond the random maze generation and the first other 10 points of extra credit will count as extra credit).


Your Task

Goal:   The goal of this task is to have gain some experience in GUI programming, while simultaneously implementing the using the design practices and tools learned throught the course of this class.

Note:   Alternate final projects are possible, but must be discussed with and approved by the instructor

Task:   Your task for this assignment is to design and implement a labyrinth game using a GUI interface (i.e. Java Swing). There are two possible types of labyrinth games you can choose to do:

Game Requirements:

Design Requirements:

Document the Design:


Extra Credit

There are many options for extra credit on this assignment. You may combine any of the extra credit options below, up to a maximum of 10 points of extra credit.

Note: Two-person projects require at least 10 points of extra credit be implemented, with only additional points beyond those first 10 points actually counting as extra credit. Likewise, three-person projects must also implement a random maze/labryinth generator, so only those extra credit points beyond the random maze generator and the first 10 additional extra credit points will count towards extra credit.

Extra Credit options:


Submission Instructions

When you turn in your assignment, you must include a signed cover sheet (PDF version) with your assignment (you're assignment will not be graded without a completed cover sheet).

You should submit your assignment via email, but you must also bring a hardcopy of your assignment, along with a completed cover sheet, to the instructor at the next class. (Note: SLU's email sometimes does not deliver .zip file attachments, so if you do not receive a response from the instructor within 12 hours saying that he received your email, please re-send the assignment files in an alternate form -- e.g. send separate .java files instead of a single .zip file.)


Grading

The grading scheme for this homework is as follows:

Note: The code must compile and run without any significant errors or there will be an immediate 10% penalty to the grade.