List of Common Mistakes for the 'Othello' (XNA-based) Assignment:

Category

Mistake

Suggested Percentage Of Assignment
(explanation here)
  Algorithm Implementation: PlayToCell

40

(Failure to abide by the restrictions set forth in the assignment) Your code needs to work for any sized board (not just an 8x8 board) - you need to use m_Resolution to accomplish this. -10%
(Failure to abide by the restrictions set forth in the assignment) You use 0 for the black player, and/or 1 for the white player, instead of BlackPlayer and WhitePlayer. -4%
Correctness You don't check that the newly placed piece is inside the board -5%
Correctness You don't check that the newly placed piece is adjacent to an existing piece -5%
Correctness You don't check that the newly placed piece is adjacent to an existing piece of the opposite color -3%
Correctness When checking for a 'bracketing' piece (another piece, of the same color, that's already on the board, and is separated from the newly placed piece by at least 1 oppositely colored piece), you don't check above the newly placed piece, in the same column. -4%
Correctness When checking for a 'bracketing' piece (another piece, of the same color, that's already on the board, and is separated from the newly placed piece by at least 1 oppositely colored piece), you don't check below the newly placed piece, in the same column. -4%
Correctness When checking for a 'bracketing' piece (another piece, of the same color, that's already on the board, and is separated from the newly placed piece by at least 1 oppositely colored piece), you don't check rightward of  the newly placed piece, in the same row. -4%
Correctness When checking for a 'bracketing' piece (another piece, of the same color, that's already on the board, and is separated from the newly placed piece by at least 1 oppositely colored piece), you don't check leftward of  the newly placed piece, in the same row. -4%
Correctness When checking for a 'bracketing' piece (another piece, of the same color, that's already on the board, and is separated from the newly placed piece by at least 1 oppositely colored piece), you don't check above-and-leftward of  the newly placed piece, on the diagonal. -4%
Correctness When checking for a 'bracketing' piece (another piece, of the same color, that's already on the board, and is separated from the newly placed piece by at least 1 oppositely colored piece), you don't check above-and-rightward of  the newly placed piece, on the diagonal. -4%
Correctness When checking for a 'bracketing' piece (another piece, of the same color, that's already on the board, and is separated from the newly placed piece by at least 1 oppositely colored piece), you don't check below-and-left of  the newly placed piece, on the diagonal. -4%
Correctness When checking for a 'bracketing' piece (another piece, of the same color, that's already on the board, and is separated from the newly placed piece by at least 1 oppositely colored piece), you don't check below-and-right of  the newly placed piece, on the diagonal. -4%
Correctness Your method fails to both DETECT if a move is valid, and if so, also FLIP all game pieces that need to be flipped
(As a result, the game never flips any game pieces)
-20%
Correctness Your implementation doesn't return true if the move is valid, and false otherwise -10%
Correctness You don't check if the player attempts to move onto an already occupied cell/square -3%
Style, Maintainability You didn't remove the 'example code' that was provided in the starter project, despite the fact that the starter code doesn't really do anything useful -2%
  Algorithm Implementation: HasValidPositions

40

(Failure to abide by the restrictions set forth in the assignment) Your code needs to work for any sized board (not just an 8x8 board) - you need to use m_Resolution to accomplish this. -10%
Correctness You need to return true if there is at least one valid move that the current player can make, and false otherwise -40%
  Algorithm Implementation: Functional Decomposition

10

NOTE TO INSTRUCTORS: If you choose to remove this outcome from the assignment, then make sure to remove this section from the rubric
(Failure to complete part of the assignment) You don't have any modularity / functional decomposition anywhere in your code -10%
(Failure to complete part of the assignment) You should modularize the logic that relates to figuring out how detect (and flip) opposite-colored pieces in vertical columns. -3%
(Failure to complete part of the assignment) You should modularize the logic that relates to figuring out how detect (and flip) opposite-colored pieces in horizontal rows. -3%
(Failure to complete part of the assignment) You should modularize the logic that relates to figuring out how detect (and flip) opposite-colored pieces in diagonal lines. -3%
Efficiency, Maintainability

(Failure to complete part of the assignment)

You should figure out a way to reuse your logic, so that PlayToCell, and HasValidPositions, can both use some common code, rather than having them re-implement the same code twice, in two separate locations. -5%
  Computer Efficiency            (Efficient use of resources, such as memory)

10

Don't create unused variables The variables r1, x, and y are unused – remove them. -1%
 Don't create unneeded local variables

For something like:
double distance = Math.Sqrt(((_centerX - x)*(_centerX - x)) + ((_centerY - y)*(_centerY - y)));
return distance;

you can instead write:
return Math.Sqrt(((_centerX - x)*(_centerX - x)) + ((_centerY - y)*(_centerY - y)));  

-1%
  Style / Presentation

10

Please give your variables that indicate what the variable is used for -2%
Commenting

You didn't comment any of your code. 

-1%
Identify the author of each file

You didn't put your name, etc, at the top of EVERY  source code file, including any files given to you. (The "etc" part includes the name of this class (“BIT 142”), and the year and quarter, and the assignment number, including the revision number) 

-1%
Quality of presentation

(Make sure that what you've handed in looks good)

Code that you've commented out, because you're no longer using it, should be removed before handing in the assignment.

-1%
Horizontal Indentation Your code isn't formatted entirely consistently – in your C# file, try doing a "Select All", then under the "Edit" menu, under "Advanced", do "Format Selection" -1%
Vertical White Space Your code contains excessive numbers of blank lines in at least one place.   
  General Assignment Mistakes  
(Failure to abide by the restrictions set forth in the assignment) You modified part of the program, other than those parts of the program that supposed to be modified for this assignment.
NOTE: If you check with the instructor first, this penalty may be reduced or eliminated, on a case-by-case basis.  In general, modifying other parts of the program to make the program more fun, more cool, etc, have a good chance of being approved by the instructor.  Modifying other parts of the program in an attempt to avoid working/thinking hard for the assignment will always be penalized
(up to)
-10%
Submission Mistake You included the "Debug", "bin", or "obj" directories, and you shouldn't have. The assignment specifically said not to do this.

These result in point penalties, since the student has failed to complete one or more parts of the assignment, even though no particular percentage has been assigned to this category.

Submission Mistake

You didn't include the project files, please do so in the future. The assignment specifically said to do this.

 

 

Explanation of Percentages assigned:

Please note that for any given category, the total of the penalties may add up to more (or less) than the total for the category ; many of the mistakes are mutually exclusive (and since they therefore can't all apply, it's ok to add up to more than the category total), and if the student doesn't include any work in a particular category, it is suggested that you remove all points from that category (even if the individual items don't add up to the category total)

 

Note:  While this list is intended to be as comprehensive as possible, it is not exhaustive - it is possible for students to make mistakes that aren't listed above.  Students should be aware that they may receive feedback (and point penalties) for such mistakes.

 


This document and the related materials are developed with support from Microsoft Research Computer Gaming Initiative under the Computer Gaming Curriculum in Computer Science RFP, Award Number 15871.