Anime Rivals — SAE 2e année
Contexte : Projet de SAE sur l'année consistant à développer une application web de jeu de cartes. Le projet repose sur une réinvention des règles de la bataille et du Top Trump afin de proposer une expérience de jeu plus stratégique et dynamique.
Ce qui a été fait : Développement de plusieurs éléments centraux du jeu : implémentation des bots avec différents comportements, système de résolution des duels et des manches, gestion des decks (composition, utilisation des cartes, cycle de jeu), mise en place du système de boutique permettant d'obtenir ou d'améliorer des cartes.
Difficultés : La principale difficulté a été d'implémenter correctement des règles de jeu originales tout en garantissant un fonctionnement cohérent. La gestion des enchaînements de duels et des manches a nécessité une attention particulière pour éviter les incohérences ou bugs.
Ce qui a été appris : Ce projet a permis de renforcer la logique algorithmique, la structuration du code, et la capacité à transformer des règles théoriques en comportements programmés.
Ressenti : Projet très formateur techniquement, avec une forte dimension concrète. Le fait de développer un jeu complet permet de voir immédiatement l'impact du code sur l'expérience utilisateur.
Voir le projet →
Fête des Lumières 2025 — Application Java Swing (IHM)
Contexte : Interface graphique Java Swing pour la visualisation et la comparaison de trajets calculés par l'application de graphe. L'IHM permet d'importer des points, générer des points aléatoires, visualiser un trajet sur une carte ou un plan, et comparer les performances des algorithmes.
Ce que j'ai fait : J'ai développé la frame principale et les panneaux d'interface : bannière, menu, boutons de contrôle, panneau carte/plan avec zoom et déplacement, et une fenêtre de comparaison des algorithmes. J'ai aussi géré l'import/export de fichiers et la synchronisation de l'affichage avec l'état des calculs.
Difficultés : Synchroniser l'état des parcours calculés avec l'affichage graphique, gérer différents formats de coordonnées, et intégrer des composants Swing externes (ex : JXMapViewer). Les interactions entre le panneau de droite et la carte centrale ont nécessité plusieurs itérations pour un comportement propre.
Ce qui a marché : L'architecture UI modulaire (CardLayout, listeners) et le dessin personnalisé des trajets fonctionnaient bien localement. L'application rechargeait les données, affichait les trajets et proposait une comparaison visuelle des résultats.
Ressenti : Projet formateur pour l'ergonomie et la structuration d'une IHM desktop. J'ai apprécié rendre visible le résultat d'algorithmes abstraits.
Gestion de clients — Application console en C
Contexte : Projet de première année consistant à développer un gestionnaire de clients en langage C, avec une interface en ligne de commande. L'application permet de charger, ajouter, modifier, supprimer, afficher, rechercher, trier et filtrer des clients, avec sauvegarde automatique dans un fichier CSV.
Ce qui a été fait : Conception complète du programme modulaire : structures de données (CLIENT), lecture/écriture de fichiers, menu interactif, fonctions de gestion (ajout, modification, suppression), affichage avec tri selon plusieurs critères (nom, code postal, profession, date de naissance), recherche par nom/prénom/téléphone/email, filtrage par critères multiples, calcul de l'âge à partir d'une date de référence saisie par l'utilisateur. Gestion des cas particuliers (champs vides, clé primaire basée sur le téléphone).
Difficultés : La gestion des chaînes de caractères en C (buffer overflow, nettoyage du tampon d'entrée), le parsing de fichiers CSV avec des séparateurs, la manipulation dynamique des tableaux de structures, et la mise en place d'un menu robuste sans erreurs de saisie.
Ce qui a été appris : Maîtrise des pointeurs, des chaînes, des entrées/sorties, de la modularité (fichiers .h et .c), et des bonnes pratiques de validation des données. Découverte de l'importance de la clé primaire et de la cohérence des données.
Ressenti : Projet fondateur, très concret, qui donne une vision complète du cycle de vie d'une application console, du code à la sauvegarde persistante.
Voir le code source (exemple) →