# 🚀 ZENITH FLUX — *Montez plus haut* ![Java](https://img.shields.io/badge/Java-17+-orange) ![Status](https://img.shields.io/badge/Status-Terminé-success) ![Project](https://img.shields.io/badge/Projet-CPI2%202026-blue) --- ## 🎮 Présentation **ZENITH FLUX** est un jeu d’adresse et de précision développé en **Java** dans le cadre du module *Projet Dev - CPI2 2026*. Le joueur contrôle un anneau soumis à la gravité et doit le maintenir en lévitation en suivant une **ligne brisée en mouvement**. 👉 Un concept simple, mais un gameplay exigeant basé sur la précision et les réflexes. --- ## 🎯 Objectif du jeu - ⚖️ Contrer une gravité constante - 🚀 Appliquer des impulsions pour rester en l’air - 🎯 Suivre une trajectoire dynamique - 📈 Survivre le plus longtemps possible 💡 **Chaque erreur est fatale : précision et timing sont essentiels.** --- ## 🧩 Fonctionnalités principales - 🎮 Gameplay fluide et dynamique - 🧠 Difficulté progressive (niveaux / stages) - 🎵 Gestion des sons et musiques - 💾 Sauvegarde des scores via SQLite - 🖼️ Gestion des ressources externes (images & audio) - 🧱 Architecture modulaire (POO) --- ## 🛠️ Technologies utilisées | Technologie | Utilisation | |------------|------------| | Java | Développement principal | | SQLite | Sauvegarde des données | | UML | Conception (diagrammes) | --- ## 📂 Structure du projet zenith-flux/ │── src/ │ ├── images/ # Ressources graphiques │ ├── musiques/ # Ressources audio │ ├── Jeu.java # Classe principale │ ├── Cercle.java # Gestion de l’anneau │ ├── Ligne.java # Gestion de la trajectoire │ ├── GestionAudio.java # Gestion des sons │ ├── GestionBDD.java # Base de données │ ├── BoutonsManager.java # Interface utilisateur │ └── ... # Autres composants │ │── bin/ # Fichiers compilés │── lib/ # Bibliothèques externes │── .vscode/ # Configuration IDE --- ## 💾 Gestion des données ### 📊 Base Historique Stocke : - Score - Durée de la partie - Niveau atteint ### 🧩 Base des niveaux - Configuration dynamique des stages - Modification sans recompiler --- ## 👥 Équipe - Constant Eloundou - Lucas Lample - Ismaël Boubacar - Théo Mouniapin --- ## 🚀 Installation et lancement ### 🔧 Prérequis - Java **JDK 17 ou supérieur** --- ### ▶️ Lancer le projet #### 💻 Option 1 — Via un IDE (recommandé) 1. Ouvrir le projet avec : - IntelliJ IDEA / Eclipse / VS Code 2. Lancer la classe principale : --- #### 🖥️ Option 2 — En ligne de commande ```bash javac -d bin src/*.java java -cp bin Jeu #### 📦 Option 3 — Exécutable (.jar) java -jar ZenithFlux.jar 📅 Planning de développement | Semaine | Travail effectué | | ------- | --------------------------------- | | 1 - 2 | Prototype initial | | 3 - 5 | Développement des fonctionnalités | | 6 | Finalisation & soutenance | 🧠 Points forts du projet ✔️ Architecture claire et modulaire ✔️ Séparation logique / données / affichage ✔️ Utilisation d’une base de données réelle ✔️ Projet complet (conception → réalisation) 📖 Documentation Le projet inclut : ✔️ Diagrammes UML (classes, séquences, activités) ✔️ Code documenté (JavaDoc) ✔️ Rapport de projet détaillé ⚖️ Licence Projet réalisé dans un cadre pédagogique (CPI2 2026). Usage académique uniquement. ❤️ Remerciements Merci aux encadrants pédagogiques et à tous les contributeurs du projet. 🔥 Améliorations possibles - Ajout d’un mode multijoueur - Amélioration des effets visuels - Nouvelles mécaniques de gameplay - Optimisation des performances "Pour faciliter l'expérience utilisateur et assurer la portabilité sous Windows, nous avons utilisé l'outil Launch4j afin d'encapsuler notre application Java dans un exécutable natif (.exe). Cela nous a également permis d'intégrer une icône personnalisée et de définir les prérequis de la version JRE (Java Runtime Environment) nécessaire." Récupérez le dans le dossier: ZENITH_FLUX_JEU_FINAL