BABATURCK
10 months ago
5 changed files with 219 additions and 51 deletions
@ -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 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
@ -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) |
@ -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() |
@ -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…
Reference in new issue