# -*-coding:Latin-1 -* """objets: armes""" import accessvg class Arme(): """definition d'une arme""" def __init__(self): """initialisation de l'objet arme""" #nom de l'arme self.nom = "indefini" #poids de l'arme self.poids = 1 #degats de l'arme self.degats = 0 #portee de l'arme (en m) self.portee = 0 #description de l'arme self.description = "" def enregistrer(self): """enregistre l'arme dans le fichier""" accessvg.sauver(self.nom, self) print("'{}' sauvegarde dans '{}'".format(self.nom, self.__class__.__name__)) def charger(self, nom): """si l'arme 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 arme""" self.nom = nom print("### Creation de {} ###".format(self.nom)) modele = ("Saisissez les informations sur le modele suivant: \n "\ "Poids;Degats;Portee;Description \n") valide = "n" while valide != "o": chaine = raw_input(modele) self.poids = int(chaine.split(";")[0]) self.degats = int(chaine.split(";")[1]) self.portee = int(chaine.split(";")[2]) self.description = chaine.split(";")[3] print(self) valide = raw_input("Continuer? (o/n) \n") def __repr__(self): """retourne une chaine decrivant le pesonnage""" chaine = ("** Nom: {} - Poids: {} - Degats: {} - Portee: {} - "\ "Description: {} **\n]"\ "".format(self.nom, self.poids, self.degats, self.portee, 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] == "degats": self.degats = int(saisie.split("=")[1]) elif saisie.split("=")[0] == "portee": self.portee = int(saisie.split("=")[1]) elif saisie.split("=")[0] == "decription": self.decription = saisie.split("=")[1] elif saisie == "ok": pass else: print("Mots cles: poids, degats, portee, 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("Arme")) 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("Arme", saisie[3:])) elif saisie[:2] == "n-": a = Arme() a.nouveau("{}".format(saisie[3:])) a.enregistrer() #print(accessvg.sauver("{}".format(saisie[3:]), a)) elif saisie[:2] == "m-": #a = accessvg.recup(saisie[3:]) a = Arme() a.charger(saisie[3:]) print(a) saisie = "" print("\n Objet 'a' recupere.") a.modifier() elif saisie[0] == "q": break except IOError: print("erreur de saisie") pass