CSci 1301 Project: designing a game
Total: 50 points + possible extra credit based on voting and
extra features
Intermediate submission: Friday, December 6th at midnight by
e-mail
Final submission: Tuesday, December 10th at 11:59pm by e-mail.
As always, please include a signature and a description for
each function. Functions that are not graphical also require
check-expect
tests.
Work in groups of 2 or 3. You may not put more than 12 hours
(including in-class time) into this project.
Designing a small game
Your task is to design a small interactive game using
the world
package in Racket (i.e. the big-bang
function that we
have used in class. For example, you
may use a "create your own adventure" approach or write a small game
that tests the user's attention and reaction. The user may be
interacting with the game by clicking or by mouse movements or by
pressing keys or choosing options (or any combination thereof).
Your game should be simple: remember that implementing even simple
features takes time. Be creative: a simple good idea is better than
design that's too involved.
Requirements for a game
Features:
- The canvas must be updated at least 10 times throughout an average
run of the game (due to randomness not all runs would be the same).
- You must use user input (clicking, moving, etc) at least 5 times
during an average run.
- You may (and probably should) use randomness.
- Your game should start by showing the rules.
- Be creative.
Programming requirements:
- In comments clearly document what your world state is.
- You must use at least one list and at least one structure for
storing information. Since your world state stores all the
internals of the game, it is likely to have both lists and
structures, in some combination
- You may use predefined list functions (map, build-list, etc.)
and/or write your own recursive functions. At least 5 uses of
recursion (direct or via predefined functions) are required.
- Complexity of your game will be graded. Satisfying just the
minimum requirements may not give you full credit. You should use
extra features, as appropriate for your game. They may include:
structures, more recursive functions (direct or indirect), extra
drawings, randomness, etc. Make sure to document the extra features
that you are using for your final submission.
- Your program has to be well written and easy to read. Avoid code
duplication: if you find yourself writing very similar code several
times, you probably need a function for that functionality.
Grading criteria
The work will be graded based on satisfying the requirements above,
the quality and level of your work (more challenging projects will get
more credit); creativity and originality of your project;
clarity, style, and documentation of your code; your attendance during
project lab
time, and the
extra credit based on voting and extra features.
What to submit
An intermediate (work-in-progress) submission is due Friday,
Dec. 6. The final submission is due Tuesday Dec 10th. Game
presentations (5 minutes per group) will take place Wedn Dec 11 and
Friday Dec 13 in class.
CSci 1301
course web site.