An elegant, educational checkers game built with SwiftUI for the WWDC23 Student Scholarship. This project bridges the gap in the macOS gaming landscape while providing an accessible platform for younger players to learn the timeless strategy game of checkers.
- User-Centered Design: Developed through iterative Figma prototyping with user testing from 6 participants
- AI-Powered Opponent: Intelligent computer player using strategic algorithms for engaging gameplay
- Educational Focus: Built-in tutorial system perfect for beginners learning checkers
- Native Performance: Leverages SwiftUI and modern Apple frameworks for smooth, responsive gameplay
- Accessibility First: Designed with inclusivity in mind for players of all skill levels
- ๐ฅ Player vs Player: Classic two-player mode for head-to-head matches
- ๐ค Player vs Computer: Challenge an AI opponent with strategic move selection
- ๐ How to Play: Interactive tutorial explaining checkers rules and gameplay
- โ Full checkers ruleset implementation
- ๐ King pieces with bidirectional movement
- ๐ฏ Mandatory capture detection
- ๐ Multiple consecutive jumps
- ๐จ Beautiful, intuitive game board interface
- ๐ต Immersive sound effects (AVFoundation)
- ๐ Win condition detection
- Modern SwiftUI architecture
- Declarative UI patterns
- Efficient state management
- Smooth animations and transitions
- Responsive layout supporting iPad and iPhone
The project follows a clean SwiftUI architecture with clear separation of concerns:
My Checker App WWDC.swiftpm/
โโโ GamePlay.swift # App entry point
โโโ MainMenu.swift # Main menu view
โโโ VsPlayer.swift # Player vs Player game logic
โโโ VsComp.swift # Player vs Computer with AI
โโโ HowToPlay.swift # Tutorial screen
โโโ Features.swift # Checker piece model
โโโ Coordinate.swift # Board position structure
โโโ Select.swift # Game mode enumeration
โโโ Assets.xcassets/ # Images and visual assets
- Game State Management: Efficient 2D array-based board representation
- Move Validation: Comprehensive logic for legal moves and captures
- AI Algorithm: Strategic move selection with capture prioritization
- King Promotion: Automatic piece upgrade at board edges
โก Want to jump right in? Check out our Quick Start Guide for a 5-minute setup!
- macOS 12.0 or later
- Swift Playgrounds 4.0+ (available on Mac App Store)
- Xcode 14.0+ (optional, for advanced development)
-
Download Swift Playgrounds
# Install from Mac App Store or visit: # https://apps.apple.com/app/swift-playgrounds/id1496833156
-
Clone the Repository
git clone https://github.com/khuynh22/WWDC23-CheckerGame.git cd WWDC23-CheckerGame -
Open the Project
- Launch Swift Playgrounds
- Select "Open" and navigate to
My Checker App WWDC.swiftpm - Click "Open"
-
Run the Game
- Click the "Run" button in Swift Playgrounds
- For the best experience, run in full-screen mode (View โ Full Screen or โโF)
- Supports both iPad and Mac devices
- Launch the app and select your preferred game mode
- In Player vs Player mode, black moves first
- Click a piece to select it, then click a highlighted square to move
- Captures are mandatory when available
- Reach the opposite end to crown your piece as a King
- Win by capturing all opponent pieces or blocking all their moves
๐ For detailed setup instructions, troubleshooting, and development tips, see QUICK_START.md
| Technology | Purpose |
|---|---|
| SwiftUI | Modern declarative UI framework for building responsive interfaces |
| AVFoundation | Audio playback for engaging sound effects |
| Swift 5.8 | Powerful, type-safe programming language |
| Swift Playgrounds | Interactive development environment optimized for learning |
- Wireframing: Created initial designs in Figma focusing on clarity and usability
- User Testing: Conducted testing sessions with 6 participants to gather feedback
- Iteration: Refined design based on user insights and accessibility considerations
- Core Logic: Built game rules engine with move validation
- AI Development: Implemented strategic computer opponent
- UI Polish: Created smooth animations and responsive layouts
- Testing: Ensured robust gameplay across various scenarios
This project deepened my understanding of Swift, SwiftUI, and game development principles. The WWDC Student Scholarship opportunity was instrumental in motivating this learning journey.
Contributions are welcome! Whether you're fixing bugs, improving documentation, or proposing new features, your help is appreciated.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Found a bug or have a feature request? Please open an issue with:
- Clear description of the problem or suggestion
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Screenshots if applicable
This project is licensed under the MIT License - see the LICENSE file for details.
Created by Khang Nguyen Huynh for the WWDC23 Student Scholarship submission.
While the MIT License grants broad permissions, the author appreciates being contacted at timhuynhwork@gmail.com before significant reuse or commercialization of this work.
- Apple Inc. - For the incredible WWDC Student Scholarship program and Swift Playgrounds platform
- User Testers - The 6 participants whose feedback shaped the final design
- Swift Community - For extensive documentation and learning resources
- You - For taking the time to explore this project!
Khang Nguyen Huynh
๐ง Email: timhuynhwork@gmail.com
๐ GitHub: @khuynh22
Built with โค๏ธ and Swift for WWDC23
โญ If you find this project helpful, please consider giving it a star!


