CSci 1301 Project: designing a game
Total: 50 points + possible extra credit based on voting and
extra features
Intermediate submission: Wednesday, December 3rd at midnight by
e-mail
Final submission: Tuesday, December 9th 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.
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), more canvas updates, randomness, etc. Make sure to list the extra features
that you are using for your final submission.
- Your program must 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 Wedn,
Dec. 3. The final submission is due Tuesday Dec 9th. Game
presentations (4 minutes per group) will take place Wedn Dec 10 and
Friday Dec 12 (if needed) in class.
CSci 1301
course web site.
The views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.