vault backup: 2026-01-06 20:28:50
This commit is contained in:
@@ -0,0 +1,177 @@
|
|||||||
|
# 🎮 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 — **100 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 — **60 points**
|
||||||
|
- Clear and functional main menu
|
||||||
|
- Correct navigation between options
|
||||||
|
- Proper handling of user selections
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Leaderboard Saving and Display — **70 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 — **90 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 — 70 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 | 100 |
|
||||||
|
| Menu System | 60 |
|
||||||
|
| Leaderboard | 70 |
|
||||||
|
| UI / UX | 50 |
|
||||||
|
| Code Structure | 90 |
|
||||||
|
| Code Mastery | 70 |
|
||||||
|
| **Total** | **800** |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Bonus Features — **Up to 200 Points**
|
||||||
|
|
||||||
|
## 1. Save & Load Game State — **20 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 — **20 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
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Creative Features & Enhancements — **Up to 40 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user