albertohilal

Clase 13 Ejemplo 07

Nov 3rd, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. '''Por ultimo, podemos pensar en el mismo ejercicio, pero con una lista adicional llamada
  2. despensa donde tenemos muchisimos ingredientes de cocina.
  3. Podemos tomar ingredientes de alli pero cada vez que necesitemos un ingrediente,
  4. tomaremos 6 ingredientes a la vez (o los que haya),
  5. de manera de no estar yendo y viniendo:'''
  6.  
  7. def recetaParaPanqueques():
  8. # Es una funcion que al ser llamada retorna la lista de
  9. # ingredientes para hacer panqueques.
  10. return [ "huevos", "leche", "harina" ]
  11.  
  12. def puedoCocinarPanqueques(elementosQueTengo):
  13. # Asumo que tengo todos y me fijo si me falta alguno
  14. tengoTodos = True
  15.  
  16. # Me fijo por cada ingrediente en la receta de panqueques
  17. for ingrediente in recetaParaPanqueques():
  18. # Si el ingrediente no esta entre los elementos que tengo
  19. if not ingrediente in elementosQueTengo:
  20. tengoTodos = False
  21. return tengoTodos
  22.  
  23. def CocinarPanqueque(elementosQueTengo):
  24. # Por cada ingrediente de la receta
  25. for ingrediente in recetaParaPanqueques():
  26. # Eliminamos el ingrediente de los elementos que tengo
  27. elementosQueTengo.remove(ingrediente)
  28. print "Se creo un panqueque"
  29.  
  30. def muchos(elemento, cantidad):
  31. elementos = []
  32. for i in range(0, cantidad):
  33. elementos.append(elemento)
  34. return elementos
  35.  
  36. def cantidadDeCadaIngrediente(ingredientes):
  37.  
  38. cantidades = []
  39. for ingrediente in set(ingredientes):
  40. cantidades.append( ingrediente + " x" + str(ingredientes.count(ingrediente)) )
  41. return cantidades
  42.  
  43. def ingredientesFaltantesParaPanqueque(elementosQueTengo):
  44. faltan = []
  45. for ingrediente in recetaParaPanqueques():
  46. if not ingrediente in elementosQueTengo:
  47. faltan.append(ingrediente)
  48. return faltan
  49.  
  50. def ObtenerHastaSeisElementos(despensa, elementosQueTengo, elementoQueQuiero):
  51. for i in range(0,6):
  52. if elementoQueQuiero in despensa:
  53. despensa.remove(elementoQueQuiero)
  54. elementosQueTengo.append(elementoQueQuiero)
  55.  
  56. def ObtenerDeDespensa(despensa, elementosQueTengo, elementosQueQuiero):
  57. for elemento in elementosQueQuiero:
  58. ObtenerHastaSeisElementos(despensa, elementosQueTengo, elemento)
  59.  
  60. def main():
  61. despensa = muchos("huevos", 32) + muchos("leche", 20) + muchos("harina", 80)
  62. misElementos = [
  63. "huevos", "huevos", "huevos",
  64. "leche",
  65. "harina", "harina",
  66. ]
  67. print "Elementos en despensa:", cantidadDeCadaIngrediente(despensa)
  68.  
  69. print "Elementos que tengo:", cantidadDeCadaIngrediente(misElementos)
  70. # Puedo cocinar mientras tenga elementos encima o en la despensa
  71. while puedoCocinarPanqueques(misElementos + despensa):
  72. if not puedoCocinarPanqueques(misElementos):
  73. faltantes = ingredientesFaltantesParaPanqueque(misElementos)
  74. ObtenerDeDespensa(despensa, misElementos, faltantes)
  75. CocinarPanqueque(misElementos)
  76. #print "Elementos que tengo:", cantidadDeCadaIngrediente(misElementos)
  77. print "Elementos en despensa:", cantidadDeCadaIngrediente(despensa)
  78. if __name__ == "__main__":
  79. main()
Advertisement
Add Comment
Please, Sign In to add comment