# -*-coding:Latin-1 -* """objets: armes""" import accessvg class Armure(): """definition d'une armure""" def __init__(self): """initialisation de l'objet armure""" #nom de l'armure self.nom = "indefini" #poids de l'armure self.poids = 1 #protection de l'armure self.protection = 0 #description de l'armure self.description = "" def enregistrer(self): """enregistre l'armure dans le fichier""" accessvg.sauver(self.nom, self) print("'{}' sauvegarde dans '{}'".format(self.nom, self.__class__.__name__)) def charger(self, nom): """si l'armure existe dans la bdd, on recupere ses infos""" self.nom = nom try: tmp = accessvg.recup(self.__class__.__name__, self.nom) except: print("echec du chargement de: {}".format(self.__class__.__name__)) tmp = None return tmp def nouveau(self, nom): """on cree une nouvelle armure""" self.nom = nom print("### Creation de {} ###".format(self.nom)) modele = ("Saisissez les informations sur le modele suivant: \n "\ "Poids;Protection;Description \n") valide = "n" while valide != "o": chaine = raw_input(modele) self.poids = int(chaine.split(";")[0]) self.protection = int(chaine.split(";")[1]) self.description = chaine.split(";")[2] print(self) valide = raw_input("Continuer? (o/n) \n") def __repr__(self): """retourne une chaine decrivant l'armure""" chaine = ("** Nom: {} - Poids: {} - Protection: {} - "\ "Description: {} **\n]"\ "".format(self.nom, self.poids, self.protection, self.description)) return chaine def modifier(self): """Modification d'un objet enregistre""" saisie = "" while not saisie == "ok": saisie = raw_input("Effectuez vos modifications (ex: 'poids=3')"\ "- 'ok' pour finir\n") saisie = saisie.lower() #print(saisie.split(" ")) if saisie.split("=")[0] == "nom": print("le nom ne peut être modifie\n") elif saisie.split("=")[0] == "poids": self.poids = int(saisie.split("=")[1]) elif saisie.split("=")[0] == "protection": self.protection = int(saisie.split("=")[1]) elif saisie.split("=")[0] == "decription": self.decription = saisie.split("=")[1] elif saisie == "ok": pass else: print("Mots cles: poids, protection, description\n") if raw_input("Modifications effectuees \n 'r': remplacer l'actuel / 'c': creer {}1 \n".format(self.nom)) == "r": accessvg.supprSvg(self.__class__.__name__, self.nom) print(accessvg.sauver("{}".format(self.nom), self)) if __name__ == "__main__": # si lancement direct: #on ouvre le dictionnaire actuellement charge: while True: saisie = "" print(accessvg.afficheSvg("Armure")) saisie = raw_input("\n 'd- xxxx' -> supprimer xxxx / 'n- xxxx'"\ "-> creer xxxx / 'm- xxxx' -> modifier xxxx / 'q' -> quitter\n") try: if saisie[:2] == "d-": print(accessvg.supprSvg("Armure", saisie[3:])) elif saisie[:2] == "n-": ar = Armure() ar.nouveau("{}".format(saisie[3:])) ar.enregistrer() #print(accessvg.sauver("{}".format(saisie[3:]), a)) elif saisie[:2] == "m-": #a = accessvg.recup(saisie[3:]) ar = Armure() ar.charger(saisie[3:]) print(a) saisie = "" print("\n Objet 'ar' recupere.") ar.modifier() elif saisie[0] == "q": break except IOError: print("erreur de saisie") pass