Computer Science 15-100 (Lecture 18), Spring 2009
Homework 9
Due: Thu 2-Apr-2009 at 11:59pm (email copy) and at Friday's
class/recitation
(identical physical copy)
(no late submissions accepted).
Read the instructions from
hw8 first
(changing "hw9" for "hw8" where appropriate), except that
there will not be a mastery quiz on this assignment, but rather a "normal",
comprehensive quiz (so grading is 15% style and 85% correctness on this hw).
Note: One-on-one tutoring is not required this week, but... You
are very strongly encouraged to continue meeting with CA's one-on-one as needed.
We are here to help, but you have to ask for it! And there is no better
way to learn -- generally, no other studying technique has a higher return on
investment than meeting one-on-one with your CA or instructor! Learn more
with less effort. What a deal!!!
- Adventure Game
-
Bonus/Optional:
More Adventure Game
- Adventure Game
Start with this file:
Hw9AdventureGame.java
As it is, this is the adventure game exactly as we wrote it in class.
Using this basic approach, you are to write a complete adventure game.
To help set expectations, this should require at least 5 hours
(and perhaps several more) of your time. You must
also include a file, Hw9AdventureGameReadMe (as a txt, doc, pdf, or html
file -- no other file types accepted!) that describes the basic design of
your game and, in particular, describes how to win the game (and, yes, every
game must have a way to win and a way to lose), as well as any additional
features you may have implemented (see below for details).
Note: you are also responsible for all the code in the
Hw9AdventureGame.java file that we wrote in class. In particular, you
should study the 5 different classes we created, and be sure to understand
how each one works, and to also be sure to understand how to declare and
allocate arrays of objects and how to declare, allocate, add to, and remove
from ArrayLists of objects.
Here are the (non-style-based) grading criteria for this question (note:
these criteria are subjective; there's really no other way, as you
are creating something that is half technical, half artistic -- this being a
programming class and not a creative writing class, we won't require
stunning works of art to receive an A, but we will require at least some
modest creativity and cleverness):
- To receive at least a D, your code must:
- Compile correctly and run the basic command loop without errors
- Include the ReadMe file as described above
- Include at least 2 new rooms, 2 new objects, and 2 new verbs
- Make at least some sense (objects must relate to each other,
verbs must make sense for those objects, etc).
- Be winnable and losable
- In addition, to receive at least a C, your code must:
- Include at least 3 new rooms, 3 new objects, and 3 new verbs
- Include at least 1 new feature, such as:
- weight for objects (so only so many objects can be picked
up)
- food / hunger (weakened state) / starvation
- roaming monsters (or any objects that change location
meaningfully during the game)
- save game and load game
- a timer (so some actions have to be made quickly)
- or any other interesting feature of your design (be sure to
document this in your readme file!)
- Clearly reflect at least 5 hours of effort
- Have more sense of an actual story, or a plot, or a theme, or a
problem to solve. It must make sense and be at least mildly
interesting.
- Be fairly grammatically correct (this is interactive fiction,
after all, so your writing does matter!) and fairly bug-free (this
is software, after all, so your Java does matter, too!).
- In addition, to receive at least a B, your code must:
- Include at least 4 new rooms, 4 new objects, and 4 new verbs
- Include at least 2 new features (such as those described above)
- Have a clear story/plot/theme/problem to solve and be reasonably
engaging.
- Be almost entirely grammatically correct and bug-free
- In addition, to receive an A, your code must:
- Include at least 5 new rooms, 5 new objects, and 5 new verbs,
and as many more as are needed to make your game compelling.
- Include at least 3 new features (such as those described above)
- Be well-written, creative, and interesting (as much as can be
expected with 5 hours of effort).
- Require at least some modest cleverness on the player's part in
order to win (again, as much as can be expected with 5 hours of
effort).
-
Bonus/Optional:
More Adventure Game
If you complete the adventure game to an "A" level as just described,
you may continue working on the game for additional bonus (where 10 hours of
well-crafted bonus work equals a 1% increase of your semester grade).
If you are interested in this bonus, you must first submit your game to your
CA or instructor to get verification that it meets the criteria for an "A".
At that point, you should not modify your Hw9AdventureGame.java file, but
instead you should copy the game to a new file,
Hw9BonusAdventureGame.java. All your bonus work goes in that new file.
In the new file header, include a timesheet logging your bonus time (which
does not include the time you spent prior to the bonus on the
Hw9AdventureGame.java file). Once approved for bonus, you may invest
up to 10 additional hours before requiring additional approval (if you care
to invest even more time than that). To receive full credit for your
time invested, your game must reflect that time invested (more or less), and
your game must be (almost entirely) bug-free, complete, and playable.
Be clever!!! Be creative!!! Have fun!!!
Carpe diem!