CSCS2650 Computer Organization
PROJECT: MOVE A BLOCK (mab1)
OBJECTIVE
This week we extend upon our simple block movement program, turning it
into a fully functional one-player PONG game, hand-written in Vircon32
Assembly Language.
GRABIT
There is a GRABIT available, containing some skeleton code, an XML file, and a Makefile, that will facilitate building the cartridge.
Or: check the class repo under the projects/ directory.
TASK
Implemented from scratch, in assembly:
- have texture(s), regions for a paddle and a ball
- have the ball rebound, continuing in one direction until it hits a bound
- bounds can be the top, bottom, or side of the screen (which it will reflect off of)
- bounds can also be the paddle (which it will also reflect off of)
- paddle bounds are the edges of the screen (prevent it from getting lost off the screen)
- if the paddle fails to deflect the ball and the ball moves beyond the screen, reset the ball and start again
- display the paddle and ball on the screen, allowing paddle control via the gamepad
- two gamepad directions will be necessary for moving the paddle
- implement a simple scoring system and display
SUBMISSION
To be successful in this project, the following criteria (or their equivalent) must be met:
- Project must be submit on time, by the deadline.
- Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline.
- Processing must be correct based on input given and output requested
- Output, if applicable, must be correct based on values input
- Code must be nicely and consistently indented and aligned
- Code must be consistently written, to strive for readability from having a consistent style throughout
- Code must be commented
- Sufficient comments explaining the point of provided logic MUST be present
- Track/version the source code in your private semester repository
SUBMITTING
To submit, please place your project files under the comporg/mab1/
folder at the base of your private semester repository. I will look there
for your submission.
RUBRIC
I'll be evaluating the project based on the following criteria:
104:mab1:final tally of results (104/104)
*:mab1:code assembles cleanly, with no warnings [13/13]
*:mab1:submit code, XML file, and any needed assets [13/13]
*:mab1:paddle displays, position adjusted by gamepad [13/13]
*:mab1:paddle is bounded by screen edges [13/13]
*:mab1:paddle can deflect ball [13/13]
*:mab1:ball moves automatically, resets if it goes off screen [13/13]
*:mab1:ball deflects off screen edges [13/13]
*:mab1:game keeps and displays score [13/13]
ADDITIONALLY
- Solutions not abiding by spirit of project will be subject to a 50% overall deduction
- Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
- Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction
- Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction