Programming Assignment 3 Zombie Dash: Project 3 Specification Document
Programming Assignment 3 Zombie Dash: Project 3 Specification Document
Programming Assignment 3 Zombie Dash: Project 3 Specification Document
Zombie Dash
Part 1 due 11:00 PM Thursday, February 21
Part 2 due 11:00 PM Thursday, February 28
The Project 3 specification document is complete.
Updates:
• 2/26 5:00 pm: Some people are having trouble with the new sample executables. If you are one
of them, here are links to the old versions so you can at least observe how they behave: old
Windows sample, old Mac sample, old Linux sample.
• 2/25 2:50 am: The links to the sample executables below are now to versions that incorporate
the updates mentioned below.
• 2/24 11:55 am: Here are some more clarifications and corrections; they may disagree with the
sample executables for now, but those will be rebuilt incorporating the corrections and posted
this evening:
• When a dumb zombie drops a vaccine goodie, it does not simply drop it at its own (x,y)
coordinates, but tries to fling it away instead: It chooses a random direction, computes
the coordinates SPRITE_WIDTH units away if the direction is left or right or
SPRITE_HEIGHT units away if it is up or down, and if no other object in the game
would overlap with an object created at those coordinates, introduces a new vaccine
goodie at those coordinates; otherwise, it does not introduce a vaccine object.
• When a level is finished, SOUND_LEVEL_FINISHED should be played; the sample
executables incorrectly play SOUND_CITIZEN_SAVED.
• You must play a SOUND_CITIZEN_INFECTED sound any time a citizen is
successfully infected by zombie vomit. Note that this sound is played only when the
citizen is first covered in vomit, NOT upon subsequent hit by vomit and NOT when they
become a zombie; the sample executables currently don't play this sound. Note also that
in general a new sound cuts off an old sound, so you might not hear
SOUND_CITIZEN_INFECTED being played if its start is quickly followed by a
zombie vomiting.
• Vomit is not blocked by an exit.
• When a landmine explodes, the flames it creates should have a direction of up.
• The status line must be formatted like this (the spec and sample executables are
inconsistent):
Score: 004500 Level: 27 Lives: 3 Vaccines: 2 Flames: 16 Mines: 1
Infected: 0
• 2/21 2:45 pm: Here's a clarification of what StudentWorld::init() must return; it replaces the
second paragraph of p. 15 of the spec:
When the player has finished the level loaded from level01.txt, the next level data
file to load is level02.txt; after level02.txt, level03.txt; etc. If there is no level data
file with the next number, or if the level just completed is level 99, the init() method
must return GWSTATUS_PLAYER_WON. If the next level file exists but is not in
the proper format for a level data file, the init() method must return
GWSTATUS_LEVEL_ERROR. Otherwise, the init() method initializes your data
structures/objects for the current level and returns
GWSTATUS_CONTINUE_GAME.