| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- # -*-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
-
-
|