Chess Master - Testing Guide
Build & Deploy
1. Build the App
cd app
flutter clean
flutter pub get
flutter run -d "192.168.1.77:33535"
2. Verify Build Success
- App should compile without errors
- App should install on Pixel 9 device
- App should launch to home screen
Testing the Chess Game
1. Navigate to Chess Game
- Open the app on Pixel 9
- Tap the Games tab (bottom navigation)
- You should see the Games Hub with tiles
- Tap the Chess Master tile
2. Difficulty Selection Screen
You should see:
- Chess icon at the top
- “Select Difficulty” title
- Three buttons: Easy, Medium, Hard
- Each button shows difficulty name and description
Test: Tap each difficulty button to verify they work
3. Game Screen
After selecting difficulty, you should see:
- AppBar with “Chess - [DIFFICULTY]” title
- Refresh button in top-right
- Flame game widget with chess board
4. Chess Board
The board should display:
- 8x8 grid with alternating light/dark squares
- Chess pieces in starting positions (Unicode symbols)
- White pieces at bottom, Black at top
Piece Symbols:
- ♟ = Pawn
- ♞ = Knight
- ♝ = Bishop
- ♜ = Rook
- ♛ = Queen
- ♚ = King
5. Gameplay Testing
Test Move Selection
- Tap a white piece (e.g., pawn on e2)
- The piece should highlight in yellow
- Legal moves should show in green
- Tap a legal move destination
- Piece should move to that square
Test AI Response
- After you move, wait 500ms
- AI should automatically make a move
- Black piece should move on the board
Test Difficulty Levels
- Easy: AI makes random moves (may move pieces suboptimally)
- Medium: AI makes reasonable moves
- Hard: AI plays optimally
Test Reset
- Tap the refresh button in AppBar
- Should return to difficulty selection screen
- Select a different difficulty to start new game
6. Audio Testing (When Audio Files Added)
Expected Audio Behavior
- Move Audio: When a piece moves, you should hear:
- Piece-specific voice line (e.g., “Knight moves in mysterious ways”)
- Background music continues
- Capture Audio: When a piece is captured:
- Piece voice line for capture
- Capture stinger sound
- Check Audio: When king is in check:
- Check stinger sound
- Piece voice line
- Checkmate Audio: When game ends:
- Checkmate stinger
- Victory fanfare
- Background Music: Should transition based on move count:
- Moves 1-10: Calm opening music
- Moves 11-30: Tense midgame music
- Moves 30+: Heroic endgame music
7. Performance Testing
Check Performance
- Play several moves
- Monitor device performance:
- No frame drops
- Smooth piece rendering
- Responsive touch input
- No memory leaks
Check Logs
adb logcat -s flutter
Look for:
- No error messages
- Audio loading messages (when audio files added)
- Game state transitions
8. Edge Cases to Test
- Rapid Taps: Tap multiple squares quickly
- Should handle gracefully
- Only valid moves should execute
- Tap Outside Board: Tap outside the 8x8 grid
- Should be ignored
- No errors in logs
- Deselect Piece: Select a piece, then tap empty square
- Piece should deselect
- No moves should execute
- Select Opponent Piece: Try to select black piece
- Should not be selectable
- No moves should show
Audio Asset Setup (Optional)
To add actual audio files:
- Create Audio Files
- Use TTS for voice lines
- Use sound effects libraries for stingers
- Use royalty-free music for background
- Place in Assets
app/assets/audio/ ├── pieces/ │ ├── pawn/ │ │ ├── quiet.mp3 │ │ ├── capture.mp3 │ │ ├── check.mp3 │ │ └── checkmate.mp3 │ ├── knight/ │ ├── bishop/ │ ├── rook/ │ ├── queen/ │ └── king/ ├── stingers/ │ ├── capture.mp3 │ ├── check.mp3 │ └── checkmate.mp3 └── music/ ├── opening.mp3 ├── midgame.mp3 └── endgame.mp3 - Rebuild App
flutter clean flutter pub get flutter run -d "192.168.1.77:33535"
Troubleshooting
Build Fails
- Run
flutter clean - Delete
android/.gradleandbuild/directories - Run
flutter pub get - Try building again
App Crashes on Chess Screen
- Check logs:
adb logcat -s flutter - Verify Flame dependencies are installed
- Ensure chess_game.dart has no syntax errors
No Audio Playing
- Verify audio files exist in
assets/audio/ - Check device volume is not muted
- Check logs for audio loading errors
- Verify pubspec.yaml includes audio assets
Pieces Not Rendering
- Check device supports Vulkan rendering
- Try on different device
- Check Flame version compatibility
Touch Input Not Working
- Verify device touch screen is working
- Try tapping different areas of board
- Check for touch event logs
Success Criteria
✅ App builds without errors ✅ Chess game screen loads ✅ Difficulty selection works ✅ Board renders correctly ✅ Pieces display with correct symbols ✅ Touch input selects pieces ✅ Moves execute correctly ✅ AI makes moves after player ✅ Difficulty levels affect AI behavior ✅ Reset button returns to difficulty selection ✅ No crashes or errors in logs
Next Steps
- Generate/add audio files
- Implement real chess engine
- Add move validation
- Add game state persistence
- Add multiplayer support
- Add statistics tracking