๐ฎ Othello C++ Mini Project โ Grading Rubric
Total Points: 800
1. Correct Board Display (Rendering) โ 80 points
- Correct board size (e.g., 8ร8)
- Clear display of cells and pieces
- Proper alignment and spacing
- Board updates correctly after each move
2. Input Handling, Screen Control, and WASD Movement โ 80 points
- Proper use of
getch(no Enter required) - Correct screen clearing at appropriate times
- Smooth cursor movement using
W,A,S,D - Cursor stays within board boundaries
- Correct cell selection mechanism
3. Core Game Logic and End-Game Conditions โ 200 points
- Correct detection of valid moves
- Proper flipping of pieces in all directions
- Rejection of illegal moves
- Correct turn switching
- Accurate detection of game-ending conditions:
- Full board
- No valid moves for both players
- Correct score calculation and winner declaration
4. Single-Player Mode and Bot Functionality โ 90 points
- Ability to play against a bot
- Bot always makes valid moves
- Bot does not crash or freeze the game
- Bot logic is consistent and reasonable (even if simple)
5. Menu System โ 50 points
- Clear and functional main menu
- Correct navigation between options
- Proper handling of user selections
6. Leaderboard Saving and Display โ 50 points
- Correct use of file I/O
- Persistent storage of player data
- Clean and readable leaderboard display
- Data is not corrupted between runs
7. User Interface Quality (UI/UX) โ 50 points
- Readable text-based interface
- Proper spacing and alignment
- Consistent visual style
- Overall pleasant user experience
8. Code Cleanliness, Structure, and Modularity โ 100 points
- Well-structured code with clear functions
- Meaningful naming conventions
- Minimal duplication
- Logical separation of concerns
- Readable and maintainable code
9. Code Understanding and Mastery โ 100 points**
- Student can clearly explain their implementation
- Demonstrates strong understanding of logic
- Can modify or extend the code if asked
- Code is not blindly copied or auto-generated
โ Points Summary
| Category | Points |
|---|---|
| Board Display | 80 |
| Input & Movement | 80 |
| Game Logic & End Conditions | 200 |
| Single-Player & Bot | 90 |
| Menu System | 50 |
| Leaderboard | 50 |
| UI / UX | 50 |
| Code Structure | 100 |
| Code Mastery | 100 |
| Total | 800 |
Bonus Features โ Up to 200 Points
1. Save & Load Game State โ 30 points
- Ability to save the game during gameplay (e.g., via a specific key or on exit)
- Complete game state is saved:
- Board state
- Current playerโs turn
- Game mode (single/multiplayer, board size, etc.)
- Game can be loaded later via a โLoad Gameโ menu option
- Loaded game resumes correctly from the saved state
2. Advanced Bot Algorithms (e.g., Minimax) โ Up to 80 points
- Implementation of an advanced decision-making algorithm such as:
- Minimax
- Minimax with depth limit
- AlphaโBeta pruning
- Bot evaluates game states instead of choosing random or first-available moves
- Algorithm is stable and does not significantly degrade performance
3. Visual Enhancement with ANSI Colors โ 20 points
- Use of ANSI color codes for:
- Black and white pieces
- Board highlights
- Menus or messages
- Colors improve clarity and aesthetics
- UI remains readable and consistent across the game
4. Configurable Board Size โ 10 points
- User can select board size at the start of the game
- Board size is even and valid (e.g., 6ร6, 8ร8, 10ร10)
- All game logic (moves, flips, end-game detection) adapts correctly to the chosen size
5. Display of Valid Moves (Hints) โ 10 points
- Valid moves for the current player are visually indicated on the board
- Uses a distinct marker (e.g., dim
*or highlighted cell) - Hints update correctly when the turn changes
- Hint display does not interfere with gameplay
6. Game Replay Feature โ 30 points
- All moves are recorded during gameplay
- After the game ends, user can replay the game from start to finish
- Replay shows moves step-by-step in correct order
- Controls for replay progression (automatic or manual) are reasonable
7. Creative Features & Enhancements โ Up to 50 points
- Any original or creative idea that meaningfully improves the game, such as:
- Difficulty levels
- Undo move
- Animations or delays
- Better menus or transitions
- Feature must be functional and integrated into the game