2024-12-06 23:57:15 +01:00
# Dorfromantik 🏔️🌲
2024-11-05 09:22:01 +01:00
2024-12-06 23:57:15 +01:00
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.
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
## Table des Matières ℹ
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
- [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 )
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
## Introduction 🌱
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
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.
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
L'objectif est de créer des poches de terrains connexes maximisant les points 🌟. Le jeu se termine après avoir placé 50 tuiles 🏙️.
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
## Lancement du Programme 🚀
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
Pour démarrer le projet, suivez les instructions ci-dessous :
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
### Compilation 🛠️
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
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/` .
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
### Exécution 🌿
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
Pour lancer le jeu, utilisez la commande suivante :
```bash
make run
```
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
ou
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
```bash
java -jar dorfromantik.jar
```
Cela exécutera le fichier `dorfromantik.jar` contenant tout le projet.
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
### Nettoyage des Fichiers 🛏️
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
Pour nettoyer les fichiers `.class` et la documentation, utilisez la commande :
```bash
make clean
```
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
## Architecture du Projet 🛁
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
Le projet est organisé de manière modulaire pour assurer une bonne maintenance et faciliter la lecture du code. Voici les principaux composants :
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
- **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` .
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
## Rapport d'Avancement 📃
2024-12-06 23:43:57 +01:00
2024-12-06 23:57:15 +01:00
Un rapport d'avancement complet est disponible dans le dossier `XXXXXXXXXXXXXXXXXXXX/` . Ce fichier **PDF** inclut :
- 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 🚀
Ce projet a été réalisé par :
- **Moncef STITI** (@stiti )
- **Lenny FOULOU** (@foulou )
- **Khalid CHENOUNA** (@chenouna )