Assignment 4
Goals: Apply you design skills to a real problem.
Learn to work with libraries provided by an outside programmer.
Instructions
The names of the projects and some of the project files must be exactly the same as specified in the assignment. Failure to do so makes it impossible for the graders to run your submission and results in immediate loss of at least 50% of the homework credit.
Make sure you follow the style guidelines for code indentation.
You will submit this assignment by the deadline using the Web-CAT submission system. We will be practicing its use during the lab next week.
With each homework you will also submit your log file named pairxxx.txt where you replace xxx with your pair number.
On top of every file you submit you will have the names of both partners, and the pair number.
The .txt file will be the log of your work on this assignment. Each log entry will have data and time, who was present (one or both of the partners) and a short comment decribing what you were working on.
Due Date: Friday, October 5th, 9:59 pm.
Practice Problems
Work out these problems on your own. Save them in an electronic portfolio, so you can show them to your instructor, review them before the exam, use them as a reference when working on the homework assignments.
Review the design of image representation of mobiles from the previous assignment.
Review the practice problems from the previous assignment.
Finish the design of the Apple Game from Lab 4.
Problem 1
Finish Problem 1 from Lab 4 and hand it in.
Problem 2
Design and implement a graphics-based interactive game for one player with the following features:
The game must involve at least three different types of active objects, and at least one of type of objects must appear in the game multiple times. For example, there may be a flying UFO, and anti-UFO platform shooting multipls shots.
The game must keep score, must have a defined ending, and display the score at least at the end of the game, possibly throughout the game.
Some of the objects should move or change on each tick, some of the objects must respond to the key events. Optionally, some objects may resond to mouse clicks.
The game display must include at least one image from a file.
Use some of the free clip art sites to select an image. Look for images that are not framed with a specific background. Crop the image, and save it in the .png format.
The Design Process
Start by sketching out the game on a piece of paper, braistorming about the actions and the objects you may need for the game.
Draw a class diagram of the classes that will comprise your game.
Write a description of the game for the user: how does the game start, what actions can the user take, what are the responses the user gets to the actions she takes, how is the game scored, how does the game end.
Design the needed classes and make examples of the objects and of the entire game both at the beginning, somewhere in the middle of the game, and at the end of the game.
Now start designing the methods for the game, making sure you test every part as you build it.
Note: You may want to design the game with just on of the multiple objects and once that works, modify it by adding multiple objects. So, for example, design the UFO game with one shot, then change it to include multiple shots later.
When you are done, make the game ready to be deployed. That means, it can be shipped to an arbitrary game player, and it can be shipped to the game development company for further upgrades and maintenance. SO, in addition to the source code for teh game, you need to provide two documents:
The design document that shows the class diagram for your game and includes a brief explanation of how the various objects in your game behave. This document will be read by a developer who wants ot add new features to your game - so make sure you explain to him how the parts of your code interact with each other.
The user’s manual that tells the user how to play the game - what controls are available, how do the object change over time or in response to the player’s actions. how does one gain points, and how does the game end.
Make sure the class that represents your game is named Fundies2Game and that you include in this class the method
boolean run(){ |
MyGame game = new MyGame(......); |
return |
game.bigBang(....); |
} |
so that our script can run your game.
Name your Examples class ExamplesFundies2Game
Place all .java files, the images your program uses, and the two documents into one folder and zip this folder into a file named HW4.zip. Submit the zipped file.