CIT 594 Assignment 7: Robot GUI
Spring 2012, David Matuszek

Purposes of this assignment

General idea of the assignment

Implement a "robot" that moves about in a GUI and responds to commands. The GUI "game board" will contain other kinds of objects (Pieces), including Blocks.

Detailed specification

BoardGame

For this assignment you will use a BoardGame package that I have developed.

Notes:

Your assignment

Start a new package for your code. Use your login name (or actual name, or something similar) as the name of your package.

RobotPiece

Create a RobotPiece singleton object that extends Piece. This object needs to implement the public void paint(Graphics g, Rectangle r) method.

RobotGUI

Setup

The RobotGUI singleton object will:

The GUI should accept the following commands from the user:

The details of the GUI (buttons, text fields, etc.) are up to your discretion, but should be reasonably intuitive. Remember that your instructor and/or your TAs will have to try to use it.

RobotController

Your RobotController object should create just one RobotPiece, which is not immediately placed on the Board. The RobotController then handles all the logic for the RobotPiece. It provides methods that are called by the GUI, and attempts to do what the GUI tells it to do, subject to the constraints listed below.

Here's what the RobotController should be able to do:

What to turn in

Please zip and turn in a complete, working program. This should include copies of any classes supplied by the instructor that are used by your program (Board, Piece, and possibly Block).

Due date

Your program is due before 6am Tuesday, March 20. Zip up the entire directory for this project, and submit via Blackboard. Only assignments submitted via Blackboard will be accepted--any assignments emailed to me will be discarded without comment. A late penalty of 5 points per day (out of 100 points) will apply.

Because many of you are interviewing this semester, a limited number of 48-hour extensions will be available. To get an extension, email me before 5pm Friday, stating the reason you need the extension. No extensions will be granted after Friday. If you get an extension and fail to get the project in by the extended due date, late points will be counted from the original due date.