Skip to content

widfleer/BackPack-Hero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BackPack Hero !

Projet de BUT Informatique codé en Java et réalisé par en binôme.

Screen d'un combat du jeu

Règles du jeu

Le but de ce projet est de réaliser une version simplifiée du jeu Backpack Hero. Il s’agit d’un jeu pour un seul joueur : le héros doit explorer un donjon peuplé de monstres et de trésors, et ne pourra s’aider que du matériel que l’on transporte dans son sac à dos. C’est un jeu de type rogue-like dont une des composantes principales consiste en du placement de tuiles qui interagiront ; la nature de ces interactions sera décrite dans les sections ci-dessous.

Lancer le jeu

  • Clôner le dépôt du projet
  • Ouvrir le projet dans un IDE avec java (Eclipse, IntelliJ....)
  • Ajouter le include/zen5.jar dans le classpath du projet
  • Run à partir du src/bph/controller/SimpleGameController.java et amusez vous !

Ce qui a été implémenté

Dans le jeu :

  • Le héro avec son backpack et la trash
  • Translater et rotate les objets
  • Les combats avec les coûts des actions et les ennemis
  • Interfaces pour les différents types d'objets (épée, bouclier, plastron, Or, Mana, Fléchette)
  • Le donjon avec les différents étages et salles
  • La gestion des events (combats, healer, merchant)
  • Implémentation de nouveaux items avec différentes raretées
  • Ajout de nouveaux ennemis (ainsi que leur apparition en fonction de leu niveau de difficulté)
  • Interaction entre les equipements (Mana)
  • Effets de combat
  • Curses
  • Drop d'items et gain d'expérience

Dans l'interface :

  • Affichage du jeu avec le héro
  • La map générée de manière aléatoire
  • Le backpack
  • Contenus des salles (marchand, healer, combats, trésors)
  • Interaction avec le clic de la souris
  • Combat entièrement interactif
  • Affichage du détail du l'item sélectionné
  • Interaction avec le clavier pour choisir son nom au début du jeu
  • Affichage du Hall Of Fame en fin de partie

Organisation du programme

▷ Une classe SimpleGameData est utilisée pour gérer les données du jeu (le modèle) ainsi que toutes les actions possibles, suivant les règles du jeu. ▷ Une interface GameView implémentée par le record SimpleGameView permet de gérer l’affichage graphique (la vue). ▷ Le contrôleur implémente la boucle de jeu et la gestion des événements utilisateur : clics, touches, ...

---
title: Hiérarchie des classes (simplifié)
---
classDiagram
    class Sword{
    }
    class Shield{
    }
    class BackPack{
    }
    class Room{
    }
    class Floor{
    }
    class Dungeon{
    }
    class Clothing{
    }
    class Dart{
    }
    class Enemy{
    }
    class Gold{
    }
    class Hero{
    }
    class Mana{
    }
    class Curse{
    }
    class Characters{
    }
    class Armor{
    }
    class Damage{
    }
    class RangeWeapon{
    }
    class MeleeWeapon{
    }
    class Item{
    }
    class Protection{
    }
    class Magic{
    }
    class Other{
    }

    class SimpleGameController{
    }
    class SimpleGameData{
    }
    class SimpleFightData{
    }
    class SimpleBackPackData{
    }
    class SimpleGameView{
    }

    Item <|-- Damage
    Damage <|-- MeleeWeapon
    MeleeWeapon <|-- Sword
    Damage <|-- RangeWeapon
    RangeWeapon <|-- Dart
    Item <|-- Protection
    Protection <|-- Shield
    Protection <|-- Armor
    Armor <|-- Clothing
    Item <|-- Magic
    Item <|-- Other
    Item <|-- Gold
    Item <|-- Mana
    Item <|-- Curse
    Characters <|-- Hero
    Characters <|-- Enemy

    SimpleGameData <|-- Item
    SimpleGameData <|-- BackPack
    SimpleGameData <|-- Characters
    SimpleGameData <|-- SimpleFightData
    SimpleGameData <|-- SimpleBackPackData
    SimpleGameData <|-- Dungeon

    Dungeon <|-- Floor
    Floor <|-- Room
    

    SimpleGameController <|-- SimpleGameData
    SimpleGameController <|-- SimpleGameView

Loading

Choix techniques et algorithmiques

Choix techniques Raisons
Java 19 Imposé dans le cadre de ce projet
Zen 5 Pour l'interface graphique car imposé dans le cadre de ce projet
Eclipse Pour le développement

Choix algorithmiques Raisons
Exploitation du modèle de développement MVC Imposé dans le cadre de ce projet
Aucune utilisation de instanceof Utilisation du polymorphisme

About

Version simplifiée du jeu Backpack Hero codé en Java

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages