Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- storesDistance = [[0,5,10],[7,0,15],[12,15,0]]
- purchasesList = [[13,[16,4]],[28.79,[15,57]],[45,[16,14]]]
- catalogList = [["Mag1", {'Tube de dentifrice':5, 'Brosse a dents':3, 'Porte-crayons herisson':7.95 , 'Yasin':5.50}],\
- ["Asin2", {'Robe':20, 'Montre':5, 'Bague':3.79, 'Pins':8.79, 'Seche ongles Monkey':10.95}],\
- ["Jacky&Co",{"Jeans" : 45.00,"Pull" : 32.00,"Sweat" : 29.00,"Shoes" : 19.00,"Shirt": 5.00,"Slip": 4.00}]]
- class Chuck():
- def __init__(self, storesDistance,purchasesList,catalogList):
- self.storesDistance = storesDistance
- self.purchasesList = purchasesList
- self.catalogList = catalogList
- self.temp_list = []
- self.res_list = []
- def add_travel_time(self, x, y):
- """ Additionne une heure donnée avec un nombre de minutes voulues"""
- minute = x[1]
- hour = x[0]
- minute += y
- time = (minute //60)
- if time != 0 :
- hour += time # modifie l'heure ex : 120 min // 60 = 2h
- minute -= time * 60
- # modifie les minutes avec ce qu'il reste. Ex : 127 min// 60 = 7, on ajoute 7 aux minutes
- return([hour,minute])
- def Finds_way(self, index = 0, currentStore = 0, current_to_other = 0,):
- """ Trouve tous les chemins possibles de magasins en magasins"""
- if current_to_other == len(self.storesDistance[0]) :
- current_to_other = 0
- currentStore += 1
- # si on sort de la longueur d'une sous-liste de storesDistance, on remet le current_to_other à 0
- # et on passe au CurrentStore suivant( prochaine sous-liste)
- if (currentStore < len(self.storesDistance)):
- # si on est toujours dans la liste storesDistances
- if (index < len(self.purchasesList) -1):
- #s'il y a encore une heure pour laquelle un achat a été effectué
- if self.add_travel_time(purchasesList[index][1], self.storesDistance[currentStore][current_to_other]) \
- == self.purchasesList[index +1 ][1] :
- # si l'heure de la purchaseList + le temps en min correspond à l'heure d'après
- if self.temp_list == [] :
- self.temp_list.append(catalogList[currentStore][0])
- # si la liste est vide on ajoute déjà le magasin de départ
- index += 1 # On passe au prochain achat si on a eu une correspondance de chemin
- self.temp_list.append(catalogList[current_to_other][0])
- self.Finds_way(index)
- index -= 1 # on continue à chercher tous les chemins possibles pour cette heure-là
- self.res_list.append(self.temp_list)
- self.temp_list = []
- self.Finds_way(index, currentStore, current_to_other +1)
- # on regarde si l'heure correspond en ajoutant un autre temps de la sous-liste storesDistance
- return(self.res_list)
- def Guesses_what_he_bought(self):
- print("coucou")
- self.res_list = self.Finds_way()
- print(self.res_list)
- Detective = Chuck(storesDistance,purchasesList,catalogList)
- Detective.Guesses_what_he_bought()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement