Browse Source

eliot

tu as tous les fichiers rangés
master
BABATURCK 10 months ago
parent
commit
389616695f
  1. 66
      Lieu.py
  2. BIN
      combat.py
  3. 11
      main.py
  4. 46
      manoir.py
  5. 103
      monstre.py

66
Lieu.py

@ -0,0 +1,66 @@
class Lieu:
def __init__(self, nom, dsc, img=None) -> None:
self.nom = nom
self.dsc = dsc
self.image = None
self.nord = None
self.sud = None
self.est = None
self.ouest = None
self.occupant = None
self.objets = []
self.action_supp = None
def decrire_lieu(self):
"""Renvoie une description de la salle et le monstre éventuellement présent
:: param self(Lieu) :: une instance de Lieu
:: return (str) :: un string contenant la description globale
"""
reponse = self.dsc
if self.occupant: # cela veut dire si self.occupant existe (n'est pas 0, vide ou None)
reponse = reponse + f" \nLa salle contient également un(e) {self.occupant.nom} : {self.occupant.get_description()}"
return reponse
def decrire_actions_possibles(self:'Lieu') -> str:
"""Renvoie un string de toutes les actions possibles"""
actions_possibles = ""
if self.occupant:
actions_possibles =+ "C : Combattre"
actions_possibles =+ "F : Fuire"
if self.objets:
actions_possibles =+ "R : Ramasser"
if self.nord:
actions_possibles =+ "Z : Porte Nord"
if self.sud:
actions_possibles =+ "S : Porte Sud"
if self.ouest:
actions_possibles =+ "D : Porte Ouest"
if self.est:
actions_possibles =+ "Q : Porte Est"
if self.objet:
actions_possibles =+ "U : utiliser objet"
def set_occupant(self:'Lieu', occupant:'None|Monstre|Personnage') -> bool:
'''Cette méthode permet de mettre en place un occupant dasn un lieu'''
if not self.occupant or occupant.est_hs():
self.occupant = occupant
def ouvrir(self:'Personnage', lieu:'Lieu'):
'''permet de verifier si on a un objet dans l'inventaire pour ouvrir'''
if self.objet == 'clé cadena':
lieu.nord =
entree.nord = couloire_sud
couloire_sud.sud = entree
if self.objet == "Croc d'Hydra":
picine.est = cuisine.ouest
if self.objet == 'Boutielle de vodka':
salle_NSI.ouest = salle_arcade.est

BIN
combat.py

Binary file not shown.

11
main.py

@ -0,0 +1,11 @@
from personnage import *
from monstre import *
if __name__ == '__main__':
Alice = Personnage("Alice")
Monstre = Monstre("Gobelin", "")
Alice.combattre(Monstre)
cmd =input()
print(Alice.nom)
print(cmd)

46
manoir.py

@ -0,0 +1,46 @@
from personnage import *
from monstre import *
from Lieu import *
class Manoir:
def __init__(self):
self.heros = None
self.depart = None
self.lieux = []
self.monstres = []
def peupler_manoir():
# Création du personnage du joueur
aventurier = Personnage("Alice")
# Création et agencement des lieux
des = """Vous êtes devant l'entrée qui mène au nord. Une solide porte en bois est entreouverte"""
exterieur = Lieu("Entrée", des, "manoir.jpg")
des = "Vous êtes dans le hall d'entrée du manoir."
hall = Lieu("Hall", des, "hall.jpeg")
exterieur.nord = hall
hall.sud = exterieur
# Création et positionnement d'un monstre
squelette_1 = Monstre("Squelette", "Un squelette semblant bouger seul et muni d'une épée.", "squelette.png")
hall.set_occupant(squelette_1)
# Affectation d'un lieu de départ à l'aventurier
aventurier.lieu = exterieur
# Création du manoir
manoir = Manoir()
manoir.heros = aventurier
manoir.depart = aventurier.lieu
manoir.lieux.append(exterieur)
manoir.lieux.append(hall)
manoir.monstres.append(squelette_1)
return manoir
if __name__ == '__main__':
m = peupler_manoir()

103
monstre.py

@ -1,51 +1,96 @@
# Importation
import random as rd import random as rd
# Déclaration des CONSTANTES import time
# Déclaration Classes
class Monstre : class Monstre:
def __init__(self, nom, dsc, img=None, obj=None) -> None: def __init__(self, nom, dsc, img=None, obj=None) -> None:
self.nom = nom self.nom = nom
self.dsc = dsc self.dsc = dsc
self.img = img self.img = img
self.obj = obj self.obj = obj
self.habilite = rd.randint(1,10) self.habilite = rd.randint(1, 10)
self.endurance = 5 self.endurance_max = 15
self.endurance = self.endurance_max
self.force = 2 self.force = 2
self.courage = rd.randint(1,10) self.courage = rd.randint(1, 10)
self.objet = []
if "Squelette" in self.nom: if "Squelette" in self.nom:
self.habilite = rd.randint(1,10) self.habilite = rd.randint(1, 7)
self.endurance = rd.randint(1,10) self.endurance = rd.randint(1, 4)
self.force = rd.randint(1,2) self.force = rd.randint(1, 2)
self.courage = rd.randint(1,10) self.courage = rd.randint(1, 10)
if 'Chauve-souris' in self.nom:
self.habilite = rd.randint(5, 10)
self.endurance = rd.randint(1, 3)
self.force = 1
self.courage = 10
self.objet = ['clé cadena']
if 'Limace-geante' in self.nom:
self.habilite = 1
self.endurance = 7
self.force = 1
self.courage = 10
if 'Zombie' in self.nom:
self.habilite = rd.randint(1, 4)
self.endurance = 7
self.force = 1
self.courage = 8
if 'Zombie_sur_poulet' in self.nom:
self.habilite = rd.randint(4, 7)
self.endurance = 4
self.force = 2
self.courage = 8
if 'Hydra' in self.nom:
self.habilite = rd.randint(8, 10)
self.endurance = 10
self.force = 3
self.courage = 10
self.objet = ["Croc d'Hydra"]
if 'Poutine' in self.nom:
self.habilite = 10
self.endurance = 12
self.force = 4
self.courage = 10
self.objet = ["Bouteille de vodka"]
if 'Pikachu' in self.nom:
self.habilite = 12
self.endurance = 5
self.force = 2
self.courage = 10
def modifier_endurance(self: 'Monstre', modificateur):
endurance_modifie = self.endurance + modificateur
if endurance_modifie < 0:
self.endurance = 0
elif endurance_modifie > self.endurance_max:
self.endurance = self.endurance_max
else:
self.endurance = endurance_modifie
def subir_degats(self: 'Monstre', degats: int) -> None:
if degats > 0:
self.modifier_endurance(-degats)
def get_description(self:'Monstre') -> str: def get_description(self: 'Monstre') -> str:
return self.dsc return self.dsc
def get_carac(self:'Montres') -> str: def get_carac(self: 'Montres') -> str:
return f"{self.nom} H{self.habilite} E{self.endurance} F{self.force} C{self.courage}" return f"{self.nom} H{self.habilite} E{self.endurance} F{self.force} C{self.courage}"
def est_hs(self:'Monstre') -> bool: def est_hs(self: 'Monstre') -> bool:
if self.endurance <= 0: if self.endurance <= 0:
return True return True
else: else:
return False return False
def getEndurance(self):
return self.endurance
# Déclaration de Fonctions
# Le corps du module en lui-même
Loading…
Cancel
Save