Une adaptation numérique fidèle du célèbre jeu de société Cascadia. Ce projet, réalisé en Java 23, simule l'écosystème du Nord-Ouest Pacifique où les joueurs s'affrontent pour créer l'habitat le plus harmonieux et peupler leur territoire d'animaux sauvages.
Le projet implémente les mécaniques centrales de Cascadia :
- Draft de tuiles et jetons : Système de sélection de paires (Tuile Habitat + Jeton Animal).
- Placement tactique : Gestion des coordonnées sur un plateau extensible avec vérification de validité.
- Équilibre de l'écosystème : Gestion du "surpeuplement" (Overcrowd) des jetons animaux avec remélange automatique.
- Variantes de score : Implémentation de plusieurs modes de calcul (Standard et Familial) via un moteur de scoring dynamique.
- Langage : Java 23 (utilisant les dernières fonctionnalités de la JVM).
- Moteur Graphique : Zen 6, une bibliothèque légère pour le rendu 2D et la gestion des événements.
- Architecture : * Pattern Strategy : Pour le calcul des scores selon la variante choisie.
- Modèle Objet : Séparation stricte entre la logique de jeu (
Game,Board), les entités (Tile,Animal) et l'affichage.
- Modèle Objet : Séparation stricte entre la logique de jeu (
- I/O : Chargement de configurations de jeu via fichiers externes (
.txt) et gestion des entrées utilisateur.
- Gestion des Collections : Utilisation intensive des
ListetArrayListpour gérer les pioches et les mains des joueurs. - Algorithmique de Scoring : Développement d'un système capable d'analyser les voisinages de tuiles et les chaînes d'animaux pour calculer les points selon des règles complexes.
- Documentation : Projet entièrement documenté via Javadoc pour une maintenance et une compréhension aisées du code.
- Robustesse : Gestion des erreurs de saisie et des exceptions I/O pour garantir la stabilité de la partie.
- Prérequis : JDK 23 installé.
- Clonage :
git clone [https://github.com/ton-pseudo/cascadia-java.git](https://github.com/ton-pseudo/cascadia-java.git) cd cascadia-java
3 . Compilation & Exécution : (Assurez-vous que la bibliothèque Zen 6 est bien présente dans le classpath)
javac -d bin --module-path lib src/fr/uge/cascadia/*.java
java -cp "bin:lib/*" fr.uge.cascadia.MainDéveloppeurs : Mathieu Jaunet & Lisa Haddadou