Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''Por ultimo, podemos pensar en el mismo ejercicio, pero con una lista adicional llamada
- despensa donde tenemos muchisimos ingredientes de cocina.
- Podemos tomar ingredientes de alli pero cada vez que necesitemos un ingrediente,
- tomaremos 6 ingredientes a la vez (o los que haya),
- de manera de no estar yendo y viniendo:'''
- def recetaParaPanqueques():
- # Es una funcion que al ser llamada retorna la lista de
- # ingredientes para hacer panqueques.
- return [ "huevos", "leche", "harina" ]
- def puedoCocinarPanqueques(elementosQueTengo):
- # Asumo que tengo todos y me fijo si me falta alguno
- tengoTodos = True
- # Me fijo por cada ingrediente en la receta de panqueques
- for ingrediente in recetaParaPanqueques():
- # Si el ingrediente no esta entre los elementos que tengo
- if not ingrediente in elementosQueTengo:
- tengoTodos = False
- return tengoTodos
- def CocinarPanqueque(elementosQueTengo):
- # Por cada ingrediente de la receta
- for ingrediente in recetaParaPanqueques():
- # Eliminamos el ingrediente de los elementos que tengo
- elementosQueTengo.remove(ingrediente)
- print "Se creo un panqueque"
- def muchos(elemento, cantidad):
- elementos = []
- for i in range(0, cantidad):
- elementos.append(elemento)
- return elementos
- def cantidadDeCadaIngrediente(ingredientes):
- cantidades = []
- for ingrediente in set(ingredientes):
- cantidades.append( ingrediente + " x" + str(ingredientes.count(ingrediente)) )
- return cantidades
- def ingredientesFaltantesParaPanqueque(elementosQueTengo):
- faltan = []
- for ingrediente in recetaParaPanqueques():
- if not ingrediente in elementosQueTengo:
- faltan.append(ingrediente)
- return faltan
- def ObtenerHastaSeisElementos(despensa, elementosQueTengo, elementoQueQuiero):
- for i in range(0,6):
- if elementoQueQuiero in despensa:
- despensa.remove(elementoQueQuiero)
- elementosQueTengo.append(elementoQueQuiero)
- def ObtenerDeDespensa(despensa, elementosQueTengo, elementosQueQuiero):
- for elemento in elementosQueQuiero:
- ObtenerHastaSeisElementos(despensa, elementosQueTengo, elemento)
- def main():
- despensa = muchos("huevos", 32) + muchos("leche", 20) + muchos("harina", 80)
- misElementos = [
- "huevos", "huevos", "huevos",
- "leche",
- "harina", "harina",
- ]
- print "Elementos en despensa:", cantidadDeCadaIngrediente(despensa)
- print "Elementos que tengo:", cantidadDeCadaIngrediente(misElementos)
- # Puedo cocinar mientras tenga elementos encima o en la despensa
- while puedoCocinarPanqueques(misElementos + despensa):
- if not puedoCocinarPanqueques(misElementos):
- faltantes = ingredientesFaltantesParaPanqueque(misElementos)
- ObtenerDeDespensa(despensa, misElementos, faltantes)
- CocinarPanqueque(misElementos)
- #print "Elementos que tengo:", cantidadDeCadaIngrediente(misElementos)
- print "Elementos en despensa:", cantidadDeCadaIngrediente(despensa)
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment