[an error occurred while processing this directive]
This assignment is to be done individually. Hand it in
electronically (using submit ) before 8:00am on
Tuesday, October, 10 2006.
For instructions, click
here. |
Important Note: Late assignments will not be accepted! |
The Assignment 02 starter files that you will be given (below) are
documented using the JavaDoc style of documentation (described in the
textbook). We expect you to use this documentation
style for all subsequent assignments. Be sure each of the program
files you submit includes your name using an @author
tag.
Each of your public
methods should also be appropriately
documented. Examples are shown below to remind you.
Class Documentation |
---|
import <imported-package-name> /**<Describe the class> * @author <Your-name> */ public class <class-name> extends <extended-class-name> |
Method Documentation |
/**<Describe each public method's purpose> * @param <parameter-name> <parameter-description> * @return <return-value-description> */ public <return-type> <method-name>(<paramater-list>)Be sure to include an @param tag for each
paramater in the method's signature. |
For the details on the specific style consult the style guide. For a specific example of a documented class and the resulting Javadoc, click here.
In addition, internal documentation inside method bodies to make your code easier for readers to understand is also appropriate. Of course, documenting every line of code that you write would detract from the goal of making things easier to read, so use a reasonable amount of documentation within your methods.
Download the A02.zip file and
extract the files to your Home
directory. You will use these files to complete this
assignment.
Daleks is a classic computer game played on a rectangular grid between a human character (The Doctor) controlled by the player and a number of robot-like characters (Daleks) controlled by the computer. (According to Wikipedia, the Daleks are the mutated descendants of the Kaled people of the planet Skaro who travel around in tank-like mechanical casings.)
In our case, we will play on a 12x12 grid generated by the
Board
class discussed in lectures. The
Doctor
will be represented by a green peg, and each of
three Daleks
will be represented by a black peg.
The Doctor
and the Daleks
take turns moving,
with the Doctor
moving first. The Doctor
can
move in several ways. If the player clicks on one of the squares
immediately surrounding the Doctor
(any of the up to eight
surrounding squares), the peg is moved
to that location. Clicking on the Doctor
does not move the
peg, but instead allows the Doctor
to wait in place for a
turn. Clicking on any other square causes the Doctor
to
teleport to a random square (perhaps by using a sonic
screwdriver). Teleportation is completely
random. The Doctor
may end up at any square, even the
original square or a square occupied by a Dalek
.
The Daleks
are controlled by the computer using a very
simple scheme. Each Dalek
attempts to move toward the
Doctor
by the most direct route, moving up, down, right, left
or diagonally. For example, if the Doctor
is above and to
the right of a Dalek
, it will move diagonally. If the
Doctor
is directly below a Dalek
, it will move
down. If a Dalek
moves onto the square occupied by the
Doctor
, the Doctor
is captured. When the
Doctor
is captured, his peg is replaced with a yellow
peg to indicate that the player has lost and the game
ends (no more moves should be made).
If two Daleks
move onto the same square, they
crash. A red peg is placed at the site of the crash, and the
Daleks
involved in the crash are not moved again.
If a Dalek
moves
onto the site of a previous crash, it joins the crash and is not moved
again. If all three Daleks
have crashed, the player has won
and the game ends.
The initial positions of the Doctor
and
Daleks
are randomly chosen. Because the positions are random you can either recognize when multiple participants start on the same square and update your game state immediately (2 Daleks
immediately crashed, Doctor
immediately captured and game over, or all three Daleks
immediately crashed and Doctor
winning if he's not on the same square), or you can take steps to ensure that each participant starts on a different square. Either solution is acceptable.
Finally, if two or more Daleks
simultaneously land on
the square the Doctor
is on, the Doctor
is
captured and the game is over. And if the Doctor
lands on
the same square as two or more crashed Daleks
, the
Doctor
is considered captured and the game is over.
Again, in both cases, the peg for the Doctor
is replaced
with a yellow peg to indicate a capture, an appropriate message is
shown at the bottom of the screen, and no further moves should be
accepted.
Implement the Daleks game as follows (these details have also been provided for you in the starter code for this assignment that you downloaded above):
CatchGame
class has the following:
Board
, one
Doctor
, and three Daleks
.public
CatchGame()
.public void playGame()
.
This method uses the Board class from the lectures
to display the current status of the game and obtain
moves from the player using the getClick()
method.
At the end of the game, display a message on the
Board
to the user indicating whether
they have won or lost.Doctor
class has the following:
Doctor
is on.public
Doctor(int theRow, int theCol)
.Doctor
with the signature public void
move(int newRow, int newCol)
.Doctor
: public int
getRow()
and public int getCol()
.Dalek
class has the following:
Dalek
is on as well as an instance
variable for whether or not this Dalek
has
crashed.public
Dalek(int theRow, int theCol)
.Dalek
towards the Doctor
with the signature
public void advanceTowards(Doctor doc)
.Dalek
: public int
getRow()
and public int getCol()
and for whether or not this Dalek
has
crashed: public boolean hasCrashed()
.Dalek
has crashed with the signature public void
crash()
.This assignment will be submitted electronically. Go here to see information about how to submit files electronically.
CatchGame.java
Dalek.java
Doctor.java
Note: We will be compiling and running your programs. Be sure your program compiles.
After you have gone through the steps for electronic submission (by running an X11 window and executing the submit command), if you want to check to see what files have successfully been electronically submitted, click the button below and enter your Quest password.
Select the assignment number and press the button to request that the files for the specified assignment be compiled and run. This facility is here to allow you to ensure that you have:
You may not request testing for a particular assignment once its late deadline has passed. The results will be emailed to the specified userid upon the next scheduled test run (every 10 minutes).
[an error occurred while processing this directive]