From b24271a9d759ba207f447db972be025bee9b120b Mon Sep 17 00:00:00 2001 From: Khalid CHENOUNA Date: Fri, 6 Dec 2024 23:57:15 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 129 ++++++++++++++++++++++++++---------------------------- 1 file changed, 61 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index 9eddd4b..b47dac6 100644 --- a/README.md +++ b/README.md @@ -1,91 +1,84 @@ -# Dorfromantik Inspired Game 🎼🌿 +# Dorfromantik đŸ”ïžđŸŒČ -![BanniĂšre](ressources/images/MainMenu/background.jpg) +Bienvenue sur notre projet **"Dorfromantik"**, un jeu inspirĂ© par l'univers de [Dorfromantik](https://store.steampowered.com/app/1455840/Dorfromantik/), oĂč vous devrez assembler des tuiles pour crĂ©er des paysages harmonieux 🌈. Ce projet a Ă©tĂ© rĂ©alisĂ© dans le cadre de la SAE 3.1 de notre formation Ă  l'IUT de SĂ©nart-Fontainebleau. -Bienvenue dans notre projet inspirĂ© de **Dorfromantik** ! @todo +## Table des MatiĂšres â„č -## Table des MatiĂšres 📑 -- [Description du Jeu](#description-du-jeu-) -- [Installation](#installation-) -- [Utilisation](#utilisation-) -- [Organisation du Code](#organisation-du-code) -- [CrĂ©dits](#crĂ©dits-) +- [Introduction](#introduction) +- [Lancement du Programme](#lancement-du-programme) + - [Compilation](#compilation) + - [ExĂ©cution](#exĂ©cution) + - [Nettoyage des Fichiers](#nettoyage-des-fichiers) +- [Architecture du Projet](#architecture-du-projet) +- [Rapport d'Avancement](#rapport-davancement) +- [CrĂ©dits](#crĂ©dits) + +## Introduction đŸŒ± + +Dans ce jeu, les joueurs assemblent des tuiles hexagonales reprĂ©sentant diffĂ©rents types de terrains (🌊 mer, đŸŒŸ prĂ©, 🍂 forĂȘt, 🏠 champ, et ⛰ montagne) afin de former un paysage harmonieux. Les tuiles peuvent avoir un ou deux types de terrains, et doivent ĂȘtre placĂ©es en suivant certaines contraintes. + +L'objectif est de crĂ©er des poches de terrains connexes maximisant les points 🌟. Le jeu se termine aprĂšs avoir placĂ© 50 tuiles đŸ™ïž. -## Description du Jeu 🌳 -@todo +## Lancement du Programme 🚀 -![Exemple de tuile](ressources/images/Readme/tuiles.png) +Pour dĂ©marrer le projet, suivez les instructions ci-dessous : -Les tuiles sont conçues de maniĂšre Ă  ce que chaque type de terrain puisse se connecter harmonieusement aux autres, ce qui permet de crĂ©er des paysages variĂ©s et dynamiques. Vous devrez rĂ©flĂ©chir Ă  chaque coup pour dĂ©cider oĂč placer une tuile et comment maximiser vos points. Des tuiles spĂ©ciales pourront Ă©galement ĂȘtre intĂ©grĂ©es pour ajouter plus de complexitĂ© et d'options de jeu. +### Compilation đŸ› ïž -## FonctionnalitĂ©s ✹ -- **Placement des tuiles :** Choisissez la position et l'orientation d'une tuile pour continuer Ă  construire votre paysage. Les tuiles peuvent ĂȘtre tournĂ©es dans n'importe quelle direction pour s'adapter parfaitement au paysage existant. -- **Score dynamique :** Obtenez des points basĂ©s sur les poches connectĂ©es du mĂȘme type de terrain. Plus les poches sont grandes, plus le score est Ă©levĂ©, ce qui encourage des placements stratĂ©giques et optimisĂ©s. Les scores sont comparĂ©s avec d'autres joueurs pour Ă©valuer votre performance ! 🏆 Vous pouvez voir comment votre score se positionne par rapport aux autres joueurs dans le tableau des scores. -- **Base de donnĂ©es :** Suivi des scores et des sĂ©ries de tuiles Ă  l'aide d'un serveur. Chaque sĂ©rie de tuiles est unique, ce qui rend chaque partie diffĂ©rente et ajoute une nouvelle couche de rejouabilitĂ©. Les joueurs peuvent aussi comparer leurs scores pour une mĂȘme sĂ©rie de tuiles, ce qui permet de voir qui est le meilleur stratĂšge. +Pour compiler le projet, utilisez le Makefile prĂ©sent Ă  la racine du projet avec la commande suivante : +```bash +make +``` +Cela gĂ©nĂ©rera tous les fichiers `.class` nĂ©cessaires dans le rĂ©pertoire `build/`. -![Leaderboard](ressources/images/MainMenu/Leaderboard/1.png) +### ExĂ©cution 🌿 -## Installation 🛠 -Pour installer et lancer le jeu localement, suivez ces Ă©tapes : +Pour lancer le jeu, utilisez la commande suivante : +```bash +make run +``` -1. Clonez le dĂ©pĂŽt Gitea : - ```sh - git clone - ``` -2. AccĂ©dez au rĂ©pertoire du projet : - ```sh - cd SAE31_2024 - ``` -3. Compilez le projet avec le **Makefile** : - ```sh - make - ``` -4. ExĂ©cutez le fichier JAR gĂ©nĂ©rĂ© : - ```sh - java -jar dorfromantik.jar - ``` +ou -Le jeu nĂ©cessite **Java 11** ou une version supĂ©rieure pour fonctionner correctement. Assurez-vous que votre environnement est configurĂ© correctement avant de lancer le jeu. Vous pouvez Ă©galement modifier le Makefile pour personnaliser certaines options de compilation. +```bash +java -jar dorfromantik.jar +``` +Cela exĂ©cutera le fichier `dorfromantik.jar` contenant tout le projet. -## Utilisation đŸŽČ -- **Lancer le jeu :** Une fois le jeu lancĂ©, le menu principal vous permet de choisir entre plusieurs options telles que commencer une nouvelle partie, voir le tableau des scores, ou consulter le tutoriel. Le tutoriel est un excellent moyen de vous familiariser avec les mĂ©caniques du jeu avant de vous lancer dans une partie complĂšte. -- **ContrĂŽles :** Utilisez la souris pour placer les tuiles et naviguer Ă  travers l'interface. Utilisez les flĂšches du clavier pour pivoter les tuiles dans la direction souhaitĂ©e afin de les faire correspondre au mieux au paysage en cours. đŸ–±ïž Les commandes sont simples et intuitives, vous permettant de vous concentrer sur la stratĂ©gie sans ĂȘtre distrait par des contrĂŽles compliquĂ©s. -![Exemple d'Ă©cran de jeu](ressources/images/Tutorial/Gif1.gif) +### Nettoyage des Fichiers đŸ›ïž -Pendant la partie, une jauge de progression indiquera le nombre de tuiles restantes Ă  placer, vous aidant Ă  planifier chaque Ă©tape de la construction de votre paysage. De plus, des conseils contextuels seront disponibles pour guider les nouveaux joueurs dans leurs premiĂšres parties. +Pour nettoyer les fichiers `.class` et la documentation, utilisez la commande : +```bash +make clean +``` -## Organisation du Code 📜 -Voici la structure gĂ©nĂ©rale de notre projet : +## Architecture du Projet 🛁 -```. -├── src -│ └── fr -│ └── monkhanny -│ └── dorfromantik -│ ├── Main.java # Point d'entrĂ©e du jeu -│ ├── game # Logique du jeu (tuile, plateau, score, etc.) -│ ├── controller # ContrĂŽleurs pour les actions de l'utilisateur -│ ├── gui # Interface graphique -│ ├── listeners # Listeners pour les diffĂ©rentes interactions -│ └── utils # Utilitaires (Base de donnĂ©es, sons, etc.) -```` +Le projet est organisĂ© de maniĂšre modulaire pour assurer une bonne maintenance et faciliter la lecture du code. Voici les principaux composants : -- **game** : Contient les classes liĂ©es Ă  la logique du jeu, telles que les tuiles (`Tile.java`), le plateau (`Board.java`), et le calcul des scores (`ScoreManager.java`). Cette partie est au cƓur du projet, permettant de gĂ©rer le placement des tuiles, l'interaction entre celles-ci et le calcul des points. -- **controller** : Gestion de l'interaction entre les joueurs et les diffĂ©rentes parties du jeu. Les contrĂŽleurs dĂ©finissent la logique de rĂ©ponse aux actions de l'utilisateur, telles que le placement des tuiles et les clics dans les menus. -- **gui** : Composants graphiques permettant de crĂ©er l'interface utilisateur du jeu. Cela comprend les menus, les boutons et tous les Ă©lĂ©ments visuels nĂ©cessaires Ă  une bonne expĂ©rience utilisateur. -- **listeners** : Gestion des Ă©vĂ©nements, comme les clics de souris, mouvements, etc. Chaque interaction de l'utilisateur est surveillĂ©e pour que le jeu puisse y rĂ©pondre de maniĂšre fluide et cohĂ©rente. -- **utils** : Utilitaires divers tels que les gestionnaires de base de donnĂ©es (`Database.java`), les loaders de sons (`SoundLoader.java`) et d'images (`ImageLoader.java`). Ces classes permettent une gestion efficace des ressources et facilitent le dĂ©veloppement de nouvelles fonctionnalitĂ©s. +- **Main.java** : Point d'entrĂ©e du programme. +- **game/** : Contient la logique de gestion du plateau et des tuiles, notamment `Board.java` et `Tile.java`. +- **gui/** : Fournit les interfaces graphiques pour l'utilisateur, comme `MainMenu.java` et `GameControlsMenu.java`. +- **controller/** : GĂšre les actions et les Ă©vĂ©nements des utilisateurs. +- **utils/** : Fonctions utilitaires pour charger des images, des polices, et se connecter Ă  la base de donnĂ©es. +- **listeners/** : GĂšre les diffĂ©rents Ă©vĂ©nements de l'application, tels que `GameMouseClickListener.java`. -## CrĂ©dits 🎭 -- **Luc Hernandez** (hernand) – Encadrant du projet et mentor tout au long du dĂ©veloppement. Merci pour votre soutien et vos prĂ©cieux conseils ! -- **Equipe** : [Membres du groupe] (Nom 1, Nom 2, Nom 3) đŸ€ Chacun a contribuĂ© Ă  des aspects spĂ©cifiques du projet, de la conception du gameplay Ă  l'implĂ©mentation graphique. Nous avons travaillĂ© main dans la main pour crĂ©er une expĂ©rience de jeu unique et agrĂ©able. +## Rapport d'Avancement 📃 -Merci d'avoir pris le temps de consulter notre projet ! Pour toute question, n'hĂ©sitez pas Ă  nous contacter. Nous sommes toujours ouverts aux retours constructifs. 💌 +Un rapport d'avancement complet est disponible dans le dossier `XXXXXXXXXXXXXXXXXXXX/`. Ce fichier **PDF** inclut : -![Merci!](ressources/images/Icone/Pause.png) +- Une description du sujet. +- Les fonctionnalitĂ©s et captures d'Ă©cran de notre application. +- La structure du programme avec des diagrammes de classe. +- Une analyse des algorithmes employĂ©s. +- ... ---- +## CrĂ©dits 🚀 -À venir : Nous prĂ©voyons d'ajouter de nouvelles fonctionnalitĂ©s telles qu'un mode multijoueur, des tuiles spĂ©ciales, et mĂȘme des scĂ©narios oĂč vous pourrez construire des paysages spĂ©cifiques Ă  thĂšme, tels que des villages mĂ©diĂ©vaux ou des forĂȘts enchantĂ©es ! Restez connectĂ©s, et prĂ©parez-vous Ă  construire de merveilleux mondes ! 🚀 +Ce projet a Ă©tĂ© rĂ©alisĂ© par : + +- **Moncef STITI** (@stiti) +- **Lenny FOULOU** (@foulou) +- **Khalid CHENOUNA** (@chenouna)