A modern, multi-player Tic-Tac-Toe game built with React Native and Expo, featuring Minecraft-inspired pixelated design, AI opponents, and immersive sound effects.
- 2-4 Players: Support for 2, 3, or 4 players
- Dynamic Grid: 3×3 grid for 2 players, 4×4 grid for 3-4 players
- AI Opponents: Three difficulty levels (Easy, Medium, Hard)
- Mixed Play: Combine human and AI players in the same game
- Minecraft Theme: Pixelated, retro-style interface
- Custom Symbols: X, O, □, △ with unique colors
- Smooth Animations: Modal transitions and UI feedback
- Responsive Design: Optimized for mobile devices
- Sound Effects: Move placement, victory, and button sounds
- Haptic Feedback: Tactile responses on mobile devices
- Visual Feedback: Winning combinations highlighted
- Easy: Random move selection
- Medium: Basic strategy with win/block detection
- Hard: Advanced strategy including center and corner preferences
Add screenshots here when available
- Node.js (v14 or higher)
- npm or yarn
- Expo CLI
-
Clone the repository
git clone https://github.com/theadhithyankr/Tic-Tac-Toe.git cd Tic-Tac-Toe -
Install dependencies
npm install
-
Start the development server
npx expo start
-
Run on your device
- Install the Expo Go app on your mobile device
- Scan the QR code displayed in your terminal
- Or run on an emulator
To create a standalone app:
npx expo build:android
# or
npx expo build:ios- Select Players: Choose 2, 3, or 4 players
- Configure Players: Set each player as Human or AI with difficulty
- Play: Take turns placing your symbol on the grid
- Win: Get three symbols in a row (horizontally, vertically, or diagonally)
TicTacToe/
├── assets/
│ ├── images/ # Game symbols and icons
│ └── sounds/ # Audio files
├── src/
│ ├── components/ # Reusable components
│ ├── utils/ # Game logic and helpers
│ └── styles/ # Styling constants
├── App.js # Main application component
├── app.json # Expo configuration
└── package.json # Dependencies and scripts
- React Native: Cross-platform mobile development
- Expo: Development platform and tools
- Expo Audio: Sound effects and audio management
- Expo Haptics: Tactile feedback
- JavaScript ES6+: Modern JavaScript features
- Supports dynamic grid sizes (3×3 and 4×4)
- Detects horizontal, vertical, and diagonal wins
- Handles multiple player scenarios
- Easy: Random valid moves
- Medium: Win if possible, block opponent wins, then random
- Hard: Win > Block > Center > Corner > Random
- Online multiplayer support
- Tournament mode
- Statistics tracking
- Additional themes
- Power-ups and special moves
- Larger grid sizes (5×5, 6×6)
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Adhithyan K R
- GitHub: @theadhithyankr
- Minecraft for design inspiration
- React Native and Expo communities
- Contributors and testers
Built with ❤️ using React Native and Expo