Un jeu de Puissance 4 moderne avec IA intelligente et mode multijoueur en réseau, développé avec React, TypeScript et Tailwind CSS.
-
🎯 Trois modes de jeu :
- vs IA (avec algorithme minimax optimisé)
- vs Joueur local
- Mode réseau multijoueur (Socket.io)
-
🤖 IA performante :
- Algorithme Minimax avec élagage alpha-bêta
- Heuristique avancée pour l'évaluation des positions
- Profondeur de recherche configurable
-
🎨 Interface moderne :
- Design responsive avec Tailwind CSS
- Animations fluides et effets visuels
- Interface hyperludique et intuitive
-
🌐 Mode réseau :
- Matchmaking automatique
- Synchronisation temps réel
- Gestion des déconnexions
- Node.js (version 16 ou supérieure)
- npm ou yarn
npm install# Terminal 1 - Application React
npm start
# Terminal 2 - Serveur Socket.io (pour le mode réseau)
npm run serverL'application sera accessible sur http://localhost:3000
Le serveur réseau sera disponible sur http://localhost:3001
-
Sélectionnez un mode de jeu :
- vs IA : Jouez contre l'intelligence artificielle
- vs Joueur : Mode local pour deux joueurs
- Réseau : Trouvez un adversaire en ligne
-
Règles du jeu :
- Cliquez sur une colonne pour y placer votre pion
- Le premier à aligner 4 pions (horizontal, vertical ou diagonal) gagne
- Les pions tombent toujours au plus bas niveau disponible
-
Contrôles :
- Nouvelle Partie : Recommencer une partie
- Reset : Retour au menu principal
L'IA utilise un algorithme Minimax avec élagage alpha-bêta pour optimiser les performances. Elle évalue les positions selon plusieurs critères :
- Alignements : Bonus pour les alignements de 2, 3 et 4 pions
- Position centrale : Privilégie les colonnes centrales
- Hauteur : Préfère les positions basses
- Blocage : Empêche l'adversaire de gagner
src/
├── components/ # Composants React
│ ├── Game.tsx # Composant principal
│ ├── GameBoard.tsx # Plateau de jeu
│ ├── GamePiece.tsx # Pièces individuelles
│ ├── GameControls.tsx # Contrôles du jeu
│ └── GameStatus.tsx # Statut de la partie
├── hooks/ # Hooks personnalisés
│ └── useNetworkGame.ts # Gestion du mode réseau
├── types/ # Types TypeScript
│ └── Game.ts # Types du jeu
├── utils/ # Logique métier
│ ├── GameLogic.ts # Logique du jeu
│ └── AI.ts # Intelligence artificielle
└── server/ # Serveur Socket.io
└── index.js # Serveur réseau
- React 18 avec TypeScript
- Tailwind CSS pour le styling
- Socket.io pour le mode réseau
- Algorithme Minimax pour l'IA
- Animation de chute des pions
- Effets de pulsation pour le dernier coup
- Transitions fluides entre les états
- Interface adaptative pour mobile et desktop
- Grille responsive qui s'adapte à la taille d'écran
- Matchmaking automatique
- Synchronisation temps réel des coups
- Gestion des déconnexions et reconnexions
Vous pouvez modifier les paramètres de l'IA dans src/utils/AI.ts :
DEPTH: Profondeur de recherche (défaut: 4)WIN_SCORE: Score pour la victoire (défaut: 1000)LOSE_SCORE: Score pour la défaite (défaut: -1000)
Le design peut être modifié via les classes Tailwind dans les composants ou en ajustant tailwind.config.js.
npm run buildLe serveur Socket.io peut être déployé sur des plateformes comme Heroku, Vercel ou DigitalOcean.
Les contributions sont les bienvenues ! N'hésitez pas à :
- Signaler des bugs
- Proposer de nouvelles fonctionnalités
- Améliorer l'IA
- Optimiser les performances
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Amusez-vous bien ! 🎉