Advertisement
Guest User

test

a guest
Mar 29th, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.83 KB | None | 0 0
  1. storesDistance = [[0,5,10],[7,0,15],[12,15,0]]
  2. purchasesList = [[13,[16,4]],[28.79,[15,57]],[45,[16,14]]]
  3. catalogList = [["Mag1", {'Tube de dentifrice':5, 'Brosse a dents':3, 'Porte-crayons herisson':7.95 , 'Yasin':5.50}],\
  4. ["Asin2", {'Robe':20, 'Montre':5, 'Bague':3.79, 'Pins':8.79, 'Seche ongles Monkey':10.95}],\
  5. ["Jacky&Co",{"Jeans" : 45.00,"Pull" : 32.00,"Sweat" : 29.00,"Shoes" : 19.00,"Shirt": 5.00,"Slip": 4.00}]]
  6.  
  7. class Chuck():
  8.    
  9.     def __init__(self, storesDistance,purchasesList,catalogList):
  10.         self.storesDistance = storesDistance
  11.         self.purchasesList  = purchasesList
  12.         self.catalogList    = catalogList
  13.         self.temp_list      = []
  14.         self.res_list       = []
  15.  
  16.     def add_travel_time(self, x, y):
  17.         """ Additionne une heure donnée avec un nombre de minutes voulues"""
  18.         minute = x[1]
  19.         hour   = x[0]
  20.         minute += y
  21.         time = (minute //60)
  22.         if time != 0 :
  23.             hour   += time # modifie l'heure ex : 120 min // 60  = 2h
  24.             minute -= time * 60
  25.             # modifie les minutes avec ce qu'il reste. Ex : 127 min// 60 = 7, on ajoute 7 aux minutes
  26.         return([hour,minute])
  27.  
  28.     def Finds_way(self, index = 0, currentStore = 0, current_to_other = 0,):
  29.         """ Trouve tous les chemins possibles de magasins en magasins"""
  30.  
  31.         if current_to_other == len(self.storesDistance[0]) :
  32.             current_to_other = 0
  33.             currentStore += 1
  34.             # si on sort de la longueur d'une sous-liste de storesDistance, on remet le current_to_other à 0
  35.             # et on passe au CurrentStore suivant( prochaine sous-liste)
  36.  
  37.         if (currentStore < len(self.storesDistance)):
  38.             # si on est toujours dans la liste storesDistances
  39.             if (index < len(self.purchasesList) -1):
  40.                 #s'il y a encore une heure pour laquelle un achat a été effectué
  41.                 if self.add_travel_time(purchasesList[index][1], self.storesDistance[currentStore][current_to_other]) \
  42.                      == self.purchasesList[index +1 ][1] :
  43.                      # si l'heure de la purchaseList + le temps en min correspond à l'heure d'après  
  44.  
  45.                     if self.temp_list == [] :
  46.                         self.temp_list.append(catalogList[currentStore][0])
  47.                     # si la liste est vide on ajoute déjà le magasin de départ
  48.  
  49.                     index += 1 # On passe au prochain achat si on a eu une correspondance de chemin
  50.                     self.temp_list.append(catalogList[current_to_other][0])
  51.                     self.Finds_way(index)                  
  52.                     index -= 1 # on continue à chercher tous les chemins possibles pour cette heure-là
  53.  
  54.                     self.res_list.append(self.temp_list)
  55.                     self.temp_list = []
  56.  
  57.             self.Finds_way(index, currentStore, current_to_other +1)
  58.             # on regarde si l'heure correspond en ajoutant un autre temps de la sous-liste storesDistance
  59.         return(self.res_list)            
  60.  
  61.     def Guesses_what_he_bought(self):
  62.         print("coucou")
  63.         self.res_list = self.Finds_way()
  64.         print(self.res_list)
  65.  
  66.  
  67.  
  68.  
  69. Detective = Chuck(storesDistance,purchasesList,catalogList)
  70. Detective.Guesses_what_he_bought()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement