Puissance 4

Jeu mobile multiplateforme (.NET MAUI)

Aperçu du projet

Ce projet est une implémentation du jeu Puissance 4 en C# avec .NET MAUI et XAML. Il est jouable à deux sur la même machine (local, sans mode en ligne), avec un mode contre une IA simple (choix aléatoire). Le joueur peut choisir la variante Puissance 3, 4 ou 5, configurer un temps de tour (minimum 5s, ou illimité) et consulter des statistiques (temps moyen par tour, victoires, défaites, ratio).

Fonctionnalités principales

👥

2 joueurs en local

Deux joueurs peuvent jouer sur la même machine (pas de mode en ligne), en alternant leurs tours.

Détection de victoire

Détection des alignements gagnants (horizontal, vertical, diagonales) selon la variante choisie.

🔢

Puissance 3 / 4 / 5

Choix de la condition de victoire : aligner 3, 4 ou 5 jetons.

🤖

Mode contre IA

Un mode solo où l'IA joue en choisissant une case au hasard (IA volontairement simple).

⏱️

Timer configurable

Temps maximum pour jouer un tour : minimum 5 secondes, ou illimité.

📊

Statistiques

Suivi des victoires, défaites, ratio et du temps moyen pour jouer un tour.

Processus de développement

1. Conception de l'architecture

Définition des règles (gravité des jetons) et des variantes (Puissance 3/4/5), puis structuration de l'application pour séparer l'UI et la logique.

Schémas / captures à ajouter.

2. UI XAML + interactions

Création de l'interface (plateau, menus de choix) puis ajout du timer de tour, du mode IA et de la collecte de statistiques.

Schémas / captures à ajouter.

Défis rencontrés et solutions

🧮 Détection des alignements

Défi : détecter correctement les victoires (H/V/diagonales) en fonction de la variante (3/4/5). Solution : parcours systématique du plateau, contrôles de bornes et tests de cas limites.

⏱️ Gestion du temps de tour

Défi : gérer un timer paramétrable (minimum 5s, ou illimité) sans dégrader l'expérience. Solution : état de jeu clair + décompte indépendant de l'UI, et reset propre à chaque tour.

📊 Calcul des statistiques

Défi : collecter des stats fiables (temps moyen par tour, victoires/défaites, ratio). Solution : mesures par tour, agrégation et stockage côté logique plutôt que côté UI.

Ce que j'ai appris

📱 Développement cross-platform avec MAUI

Comprendre le cycle de vie, la navigation et la construction d'UI réutilisables.

🧱 MVVM et séparation des responsabilités

Structurer l'application pour faire évoluer facilement la logique (IA, modes de jeu, etc.).

📈 Mesure et suivi d'indicateurs

Mettre en place des statistiques de jeu utiles (temps moyen, ratio) et les afficher clairement.

Conclusion

Ce projet propose un Puissance 4 complet et personnalisable (variantes 3/4/5), jouable en local ou contre une IA simple, avec timer et statistiques. Une prochaine évolution naturelle serait d'améliorer l'IA ou d'ajouter d'autres options de jeu.