Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function solve() {
  2.  
  3.         let recipes = {
  4.             apple: {'carbohydrate': 1, 'flavour': 2},
  5.             coke: {'carbohydrate': 10, 'flavour': 20},
  6.             burger: {'carbohydrate': 5, 'fat': 7, 'flavour': 3},
  7.             omelet: {'protein': 5, 'fat': 1, 'flavour': 1},
  8.             cheverme: {'protein': 10, 'carbohydrate': 10, 'fat': 10, 'flavour': 10}
  9.         };
  10.  
  11.         let microElements = {
  12.             protein: 0,
  13.             carbohydrate: 0,
  14.             fat: 0,
  15.             flavour: 0
  16.         };
  17.  
  18.         let result = function (input) {
  19.             let [command, arg2, quantity] = input.split(' ').filter(x=>x != '');
  20.  
  21.             let implement = (function () {
  22.                 return {
  23.                     restock: (microelement, quantity) => {
  24.                         microelement = microelement.toLowerCase();
  25.                         microElements[microelement] += Number(quantity);
  26.                         return "Success";
  27.                     },
  28.  
  29.                     prepare: (recipe, quantity) => {
  30.                         recipe = recipe.toLowerCase();
  31.                         let mealQuantity = quantity;
  32.                         let insufficient = '';
  33.                         for (let prop of Object.keys(recipes[recipe])) {
  34.                             let quantity = recipes[recipe][prop]*Number(mealQuantity);
  35.                             if (quantity > microElements[prop]) {
  36.                                 return `Error: not enough ${prop} in stock`;
  37.                             }
  38.                         }
  39.  
  40.                         Object.keys(recipes[recipe]).forEach(key=> {
  41.                             let quantity = recipes[recipe][key]*Number(mealQuantity);
  42.                             microElements[key] -= quantity;
  43.                         });
  44.  
  45.                         return 'Success';
  46.                     },
  47.  
  48.                     report: () => `protein=${microElements.protein} carbohydrate=${microElements.carbohydrate} fat=${microElements.fat} flavour=${microElements.flavour}`
  49.                 }
  50.             })();
  51.  
  52.             return implement[command](arg2, quantity);
  53.  
  54.         };
  55.  
  56.         return result;
  57.     })()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement