Description du projet
Kotlin Monster est un jeu d'aventure en ligne de commande développé en Kotlin dans le cadre du cours de programmation orientée objet. Inspiré de l'univers Pokémon, le joueur explore différentes zones de jeu, rencontre des monstres, peut les capturer et les faire évoluer, puis les engager dans des combats stratégiques.
L'objectif pédagogique principal est la mise en pratique des concepts fondamentaux de la POO : chaque entité du jeu est modélisée par une classe (Monstre, Joueur, Zone, Combat). Le projet applique l'héritage pour créer différents types de monstres, le polymorphisme pour les attaques spéciales, et l'encapsulation pour protéger les attributs internes.
Développé avec IntelliJ IDEA, le projet est organisé en packages thématiques et documenté avec KDoc.
Technologies utilisées
Concepts POO appliqués
Monstre est étendue par des types spécifiques (MonstreFeu, MonstреEau…) qui héritent des attributs communs (pv, niveau, nom) et surchargent les méthodes d'attaque.attaquer() est redéfinie dans chaque sous-classe. L'appel sur un objet de type parent invoque la version correcte selon le type réel de l'instance à l'exécution.private. L'accès est contrôlé via des getters/setters avec validation, empêchant des valeurs incohérentes (PV négatifs, niveau hors limites).Combattant définissant le contrat commun à tout participant d'un combat. La classe abstraite Monstre implémente la logique commune et délègue les comportements spécifiques.Architecture des classes
Compétences BTS SIO mobilisées
| Code | Compétence | Mise en œuvre dans le projet |
|---|---|---|
| B2.1 | Exploiter les ressources du poste de travail | Utilisation d'IntelliJ IDEA, configuration du projet Kotlin, gestion des dépendances JVM. |
| B2.2 | Concevoir une solution applicative | Diagramme de classes UML modélisant Monstre, Joueur, Zone et Combat avec leurs relations d'héritage. |
| B2.3 | Développer, documenter et déployer | Développement en Kotlin avec héritage, polymorphisme, encapsulation, interfaces et classes abstraites. Documentation KDoc. |
| B2.4 | Travailler en mode projet | Organisation du code en packages (models, game, utils), versionnage GitHub avec commits descriptifs. |
| B3.2 | Gérer le patrimoine informatique | Documentation du code, structure claire du projet, versionnage permettant la traçabilité des modifications. |