This assignment does not count toward the final grade.

Rubric

Find Rubric
Keep in mind that 5 students have already been assessed using this rubric. Changing it will affect their evaluations.
n in a Row Game Level 3
n in a Row Game Level 3
Criteria Ratings
the game pits a human player (the user) against an AI (encoded in your program)
Passing
Not passing
the player and AI have distinct markers; one is X, the other is O
Passing
Not passing
a 2D array or 1D vector of strings is used to represent the board
Passing
Not passing
the player is presented with a menu at the beginning of the game where they can choose a new game or to load an existing game from a file
Passing
Not passing
if the player chooses to load from a file, the game state is loaded and the player picks up where they left off
Passing
Not passing
the main logic of the program is coded in the body of a loop that finishes when the game is over
Passing
Not passing
on each iteration of the loop, the player is given a turn, followed by the AI
Passing
Not passing
at the player's turn, they are asked to enter the column where they would like to place their marker OR to save
Passing
Not passing
if a column was entered, the program figures out which row based on where previous markers in that column rest
Passing
Not passing
upon choosing to save, the player is asked for a filename to save the game to and the game state is saved
Passing
Not passing
after each player's turn, the board is displayed with the player's and AI's markers in the correct spots
Passing
Not passing
after each player's turn, a check is made to see if one of the players has won (four in a row diagonally, horizontally, or vertically) or there is a draw
Passing
Not passing
after each player's turn, if the game is over, the status (who has won or if there is a draw) is correctly displayed to the terminal
Passing
Not passing
on the AI's turn, the AI selects an open column to block the human player
Passing
Not passing
player input is validated (the player is re-prompted until valid input is provided)
Passing
Not passing
the program compiles
Passing
Not passing
the program runs without crashing
Passing
Not passing
the program behaves as a "normal" player would expect
Passing
Not passing
all output displayed by the program is well formatted and spaced nicely
Passing
Not passing
the source code uses appropriately typed and named varaibles
Passing
Not passing
the source code includes useful comments that clarify logical chunks of the program
Passing
Not passing
the source code uses appropriate indentation
Passing
Not passing
the source code uses appropriately placed blank lines to separate the code into chunks that hang well together
Passing
Not passing
the source code includes appropriate use of functions as necessary
Passing
Not passing
the source code includes a comment at the top stating whether you worked alone or with others, and if so, who you worked with
Passing
Not passing
the source code includes a citation for any code not from the zyBook or from class
Passing
Not passing