Computer Science APEA 15-100, Summer 2009
Homework 11
Due: Mon 20-Jul-2009 at 11pm (email copy only)
(no late submissions accepted).
Read these instructions first!
- Now you are not given a file to start from! Based on previous
hw's, create your own Hw11.java file. Be sure to name it exactly
correctly, to include a main method that calls checkAssertsAreEnabled and
testAll, and to have testAll call suitable test methods for all the methods
you create. Also, be sure that every method you write has exactly the
right name and the right signature.
- Be sure to include your name, your Andrew ID, and your section clearly on the top of each file in your assignment.
- For non-programming problems:
- Place all your solutions to the non-programming problems in a single
file named Hw11 (with whatever extension is appropriate for the format you
choose, such as Hw11.txt or Hw11.html, etc). You must use one of these
file formats: plain text (txt), or RTF, or HTML, or Word (doc, not docx), or
PDF. No other file formats will be accepted.
- Show your work. Correct answers without supporting
calculations will not receive full credit.
- For programming problems:
- Try to use well-named variables, proper indenting, reasonable commenting,
etc.
- Note: You may not use Java concepts we have not yet covered,
including l
oops (do/while/for), conditionals
("if" statements or tertiary operators (?:)), arrays, or methods
from any classes in java.util.* (besides Scanner or others we explicitly
use) to solve these problems
(which isn't a problem for most of you, seeing as we have not yet covered
these!). While they may be helpful, every problem here is solvable without
them, and they are not permitted for now.
- What to submit
- Create a submission directory like this: "koz-hw11" (replace
"koz" with your andrew id)
- Place all the files you are submitting in that directory, zip that
directory, and submit the zipped directory
- How to submit
- Send an email with the zipped submission directory as an attachment
to your CA by the submission deadline. Do not miss the deadline,
even by one minute! Email problems are not a valid excuse
for late submissions.
- It is recommended
that you "cc" yourself in that email, too, just to confirm that you properly
sent the email.
- Note:
- Improper submissions will be penalized up to 10 points and may be
rejected.
- Late submissions will be rejected.
Write one of these classic games:
- Minesweeper
- Sokoban
- Frogger
- Othello
- Chess
- Backgammon
- Bejeweled
- Connect4
- Mah Jong
- Rubik's Cube
- Scrabble
- Hearts
- Galaxian
- Lode Runner
- Dig Dug
- Pac Man
Other games might be considered, but it is preferred that you stick to
one of these.
The 2-player games (Othello, Chess, etc) should be just human-vs-human
versions (no AI), but the computer should only allow legal moves and should
capture/flip pieces, keep score, etc.
All games must have a graphical UI. That said, you do not have to have
polished graphics, and certainly do not have to include any images, but it also
should look reasonably nice. But the game play should basically match the real
game, and it should be complete enough to be fun to use.
You'll be graded 60% on functionality (if it plays right), 30% on user
interface (if it looks right), and 10% on style (if it's written right).
You should expect to invest about 4 to 5 hours into this assignment. This is
not so much time, so it is expected that you will make some compromises in your
game's design. Be sure your design is achievable in this timeframe.
This assignment is similar to the term project (which is due on the last day
of classes -- more on that soon...), except in that assignment you will be
expected to invest 20-40 hours, and that project is expected to really shine.
This is just a warm-up for that. Note that this assignment must be a different
game than your term project, so choose accordingly (though your term project can
definitely include games/programs not on the above list).
Of course, the source code for all these games is available online. Do not
look at this!!! Be sure the code is 100% your own.
Carpe diem!