#from __future__ import unicode_literals # -*- coding: utf-8 -*- class Inventaire(dict): """inventaire des objets portes par une creature ou un joueur""" def __init__(self): super(Inventaire, self).__init__() def ajouter(self, objet, nbre = 1): """ajoute un ou plusieurs objets a l'inventaire""" if objet in self: self[objet] += nbre else: self.[objet] = nbre def retirer(self, objet, nbre = 1): """retire le nombre en parametre au nombre de l'objet la quantite restante ne peut pas etre negative""" if objet in self: self[objet] -= nbre if self[objet] < 0: self[objet] = 0 def defQuantite(self, objet, nombre): """definit la quantite de l'objet""" self[objet] = nombre def utiliser(objet): """utilise un objet de l'inventaire""" if objet in self: if self[objet] > 0: objet.utiliser() if objet.estConsomme(): self[objet].retirer(1) def poidsTotal(self): retour = 0 for objet in self: retour += (self[objet]*objet.poids) return retour def trier(self): """retourne un dictionnaire de listes, le dictionnaire recense les objets par type les objets sont tries par ordre alphabétique""" retour = {} for objet in self: if not objet.typeObjet in retour: retour[objet.typeObjet] = [] retour[objet.typeObjet].append((objet, nombre)) for tO in retour: retour[tO].sort() return retour