Arduino Core Grading Rubric

Core Grading Rubric

Category Points Possible Violations

Display level and lives correctly


-1.5 does not display before game starts

-1.5 does not display level between levels

Button works


-1 does not fire Cannonball when button pressed

-1 continuously fires Cannonball when button not pressed

Potentiometer works correctly


-1 "Joystick" mode - player moves when potentiometer is not moving

-1 Player cannot reach both ends of screen to enable firing the Cannonball at every column

Check level complete and move to next level when all Invaders defeated


-3 does not move to the next level when all Invaders defeated

-2 moves to the next level when more than one Invader alive

-1 moves to the next level when one Invader alive

Invader dies/loses strength when shot


-4 part of the Invader erased but still changes color

-4 Cannonball does not disappear correctly

-4 if Cannonball sometimes goes through Invader without hitting it

-8 Invaders do not die/change color when hit

Invaders move down the screen


-2 top row of Invaders not drawn correctly

-2 one Invader in either row lags behind the others of the row

-3 Invaders move slower while shooting continuously

-4 one of the rows does not move down or moves down incorrectly

-8 No Invaders move down the display

Can play through the first random level, level 5, without the game crashing


-3 cannot reach level 5

-3 cannot complete level 5 by destroying all Invaders

Initialize all levels correctly


-1 Invader strengths not associated with their correct color

-1 incorrect strength initialization for any level

-1 level does not go past 5

-1 random levels do not have different strengths - i.e., level 5 and 6 have the same Invader strengths

-1 level 5 Invader strengths are the same every time the game is restarted

Player dies correctly


-3 Player collision with Invaders does not work

-3 Invaders go beyond the bottom border, or Player dies when Invaders are more than 3 pixels from the bottom of the display

-1 Player dies before Invader reaches player as defined in the "What is the hitbox for an invader" in the FAQ of the specification.

When losing a life, level restarts


-1 level does not restart with original Invader strenghts and positions for the level after Player dies

Game Over displays correctly


-1 Does not display Game Over when all Player lives are lost, or does not display long enough to be read

Cannonball visible until it reaches an Invader or leaves top of the display


-2 Cannonball disappears before reaching the top of the display

-2 Cannonball pixels "get stuck" on the top of the board, or when the button is pressed again

-2 Cannonball moves side to side with the potentiometer

-2 multiple Cannonballs can be shot

-2 Cannonball relaunched when button pressed before reaching the top of the display, or Cannonball does not launch until the button is released after being pressed, or the Cannonball is not immediately fired again when holding down the button and the Cannonball reaches the top of the display or collides with an Invader.

-2 Cannonball from previous level continues on new level

-4 Cannonball not displayed at all

Display does not flicker or lag because of code


-1 if noticable flicker/lag

-2 if strobing flicker or lag of 1 second or more



-1 code has less than three comments

-2 code has three or more instances of poor indentation

-2 code has four or more variables with meaningless names (x, y, r, g, b are fine)

// good variable name examples

// bad variable name examples

-2 points for each line of code that staff alter to enable grading of your solution


-2 for each line of code staff must modify

Staff will grade solutions by playing your game. Staff will attempt modify code, within reason, to enable grading

Overall grade cannot be lower than if staff did not modify your team submission

Total Points - Core