A modern Tic Tac Toe game built with Angular, featuring AI gameplay, smooth animations, sound effects, and PWA support for an app-like experience.
👉 https://tic-tac-toe-tau-nine-32.vercel.app/
- 🤖 Play against a smart AI or a friend
- 🔄 Instant switching between game modes
- 🧠 AI can win, block, or make random moves
- 🔊 Sound effects (click, win, draw)
- ✨ Animated UI with glowing effects
- 🌌 Dynamic background visuals
- 🎉 Victory celebration animations
- 📱 Fully responsive (mobile & desktop)
- 📦 Installable PWA (works offline)
- 🔑 Google Authentication
- ☁️ Firestore Database
- 🎮 Real-time Online Multiplayer
- 📊 Player Statistics Tracking
- 🔑 Google Authentication
- ☁️ Firestore Database
- 🎮 Real-time Online Multiplayer
- 📊 Player Statistics Tracking
- Angular
- TypeScript
- SCSS
- HTML
- Angular PWA
- Vercel
- FireBase
npm installng serveOpen in browser:
http://localhost:4200
ng build --configuration productionsrc/
app/
board/ # game board logic, UI, and online gameplay
dashboard/ # player stats and win/loss history
account/ # user profile and auth page
services/ # Firebase auth, Firestore, and game services
square/ # individual cell component
app.component.ts # root app shell
app.routes.ts # route definitions
assets/
sounds/ # click, win, draw effects
icons/ # PWA icons
environments/ # environment configs
index.html
main.ts # app bootstrap
---Located in:
src/assets/sounds/Required:
- click.mp3
- win.mp3
- draw.mp3
- Installable on desktop & mobile
- Runs fullscreen like a native app
- Works offline after first load
Deployed using Vercel
Build command:
ng build --configuration productionOutput directory:
dist/tic-tac-toeThis project uses Firebase for authentication, database, and real-time gameplay.
Firebase is configured in the Angular environment files:
export const environment = {
production: false,
firebase: {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_PROJECT_ID.appspot.com",
messagingSenderId: "YOUR_SENDER_ID",
appId: "YOUR_APP_ID"
}
};- AI mode resets the board when switching modes
- Dynamic player turn indicator
- Includes sound & animation feedback
- Difficulty levels for AI
- Custom themes
Fares Ayman
GitHub: https://github.com/Faresaymann


