fp-arduino

Arduino Core Grading Rubric

Verifying Your Submission

You can verify your submission to the autograder before the deadline. We will grade your final submission!

  1. Submit your work to the autograder at https://autograder.io/web/project/2840. Your file MUST BE NAMED space_invaders.ino. Any other name and your file will be automatically discarded by the autograder. Only one person from the team needs to submit. We grade the last file submitted.
  2. View the “My Submissions” tab on the autograder.
  3. Click the small icon next to the file name space_invaders.ino to download the submitted file. Be sure to select the last submission, if it is not the submission highlighted. Select file from autograder to download.
  4. Click the downloaded file to open the Arduino IDE. When the Arduino IDE popup prompts you to create a folder for the sketch named “space_invaders” select OK.
  5. Using the Arduino IDE and your kit, upload the file to the Arduino board and test that it is the correct file you wish to be graded.

Core Grading Rubric

Category Points Possible Violations

Display level and lives correctly

3

-1.5 does not display before game starts

-1.5 does not display level between levels

Button works

1

-1 does not fire Cannonball when button pressed

-1 continuously fires Cannonball when button not pressed

Potentiometer works correctly

2

-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

-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

8

-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

8

-2 top row of Invaders not drawn correctly

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

-3 Invaders move slower while shooting continuously

-4 one of the rows does not move down

-2 both top and bottom rows of invaders move down at the same time

-8 no Invaders move down the display

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

3

-3 cannot reach level 5

-3 cannot complete level 5 by destroying all Invaders

Initialize all levels correctly

4

-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

5

-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

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

Game Over displays correctly

1

-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

4

-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

2

-1 if noticable flicker/lag

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

Style

5

-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
time
level
offset
ballX
ball_row
player_row
playerX
numEnemies

// bad variable name examples
a
a1
b12
var
variable
z

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

Varies

-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

50