Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function solve() {
- let recipes = {
- apple: {'carbohydrate': 1, 'flavour': 2},
- coke: {'carbohydrate': 10, 'flavour': 20},
- burger: {'carbohydrate': 5, 'fat': 7, 'flavour': 3},
- omelet: {'protein': 5, 'fat': 1, 'flavour': 1},
- cheverme: {'protein': 10, 'carbohydrate': 10, 'fat': 10, 'flavour': 10}
- };
- let microElements = {
- protein: 0,
- carbohydrate: 0,
- fat: 0,
- flavour: 0
- };
- let result = function (input) {
- let [command, arg2, quantity] = input.split(' ').filter(x=>x != '');
- let implement = (function () {
- return {
- restock: (microelement, quantity) => {
- microelement = microelement.toLowerCase();
- microElements[microelement] += Number(quantity);
- return "Success";
- },
- prepare: (recipe, quantity) => {
- recipe = recipe.toLowerCase();
- let mealQuantity = quantity;
- let insufficient = '';
- for (let prop of Object.keys(recipes[recipe])) {
- let quantity = recipes[recipe][prop]*Number(mealQuantity);
- if (quantity > microElements[prop]) {
- return `Error: not enough ${prop} in stock`;
- }
- }
- Object.keys(recipes[recipe]).forEach(key=> {
- let quantity = recipes[recipe][key]*Number(mealQuantity);
- microElements[key] -= quantity;
- });
- return 'Success';
- },
- report: () => `protein=${microElements.protein} carbohydrate=${microElements.carbohydrate} fat=${microElements.fat} flavour=${microElements.flavour}`
- }
- })();
- return implement[command](arg2, quantity);
- };
- return result;
- })()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement