Advertisement
Guest User

breakfastRobot

a guest
Sep 6th, 2020
682
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let solution = (function(){
  2.  
  3.     let ingredients = {}
  4.     ingredients.protein = 0;
  5.     ingredients.carbohydrate = 0;
  6.     ingredients.fat = 0;
  7.     ingredients.flavour = 0
  8.  
  9.     function restock([microelemnt,quantity]) {
  10.         quantity = Number(quantity);
  11.         ingredients[microelemnt] += quantity;
  12.  
  13.         return `Success`;
  14.     }
  15.  
  16.     function prepare([recipe,quantity]) {
  17.         quantity = Number(quantity);
  18.         let message = ``;
  19.  
  20.         switch(recipe) {
  21.             case `apple`:
  22.                 if(ingredients.flavour < quantity * 2) {
  23.                     message = `Error: not enough flavour in stock`;
  24.                 }
  25.                 if(ingredients.carbohydrate < quantity) {
  26.                     message = `Error: not enough carbohydrate in stock`;
  27.                 }
  28.  
  29.                 if(message == ``) {
  30.                     ingredients.flavour -= quantity*2;
  31.                     ingredients.carbohydrate -= quantity;
  32.                     return `Success`
  33.                 }
  34.  
  35.                 return message;
  36.                 break;
  37.  
  38.                 case `lemonade`:
  39.                     if(ingredients.flavour < quantity * 20) {
  40.                         message = `Error: not enough flavour in stock`;
  41.                     }
  42.                     if(ingredients.carbohydrate < quantity * 10) {
  43.                         message = `Error: not enough carbohydrate in stock`;
  44.                     }
  45.                     if(message == ``) {
  46.                         ingredients.flavour -= quantity * 20;
  47.                         ingredients.carbohydrate -= quantity * 10;
  48.                     }
  49.  
  50.                     return message;
  51.                     break;
  52.  
  53.                     case `burger`:
  54.                         if(ingredients.carbohydrate < quantity * 5) {
  55.                             message = `Error: not enough carbohydrate in stock`;
  56.                         }
  57.                         if(ingredients.fat < quantity * 7) {
  58.                             message = `Error: not enough fat in stock`;
  59.                         }
  60.                         if(ingredients.flavour < quantity * 3) {
  61.                             message = `Error: not enough flavour in stock`;
  62.                         }
  63.  
  64.                         if(message === ``) {
  65.                             ingredients.flavour -= quantity * 3;
  66.                             ingredients.fat -= quantity * 7;
  67.                             ingredients.carbohydrate -= quantity * 5;
  68.                         }
  69.  
  70.                         return message;
  71.                         break;
  72.  
  73.                         case `eggs`:
  74.  
  75.                         if(ingredients.protein < quantity * 5) {
  76.                             message = `Error: not enough protein in stock`;
  77.                         } if(ingredients.fat < quantity) {
  78.                             message = `Error: not enough fat in stock`;
  79.                         } if(ingredients.flavour < quantity) {
  80.                             message = `Error: not enough flavour in stock`;
  81.                         }
  82.  
  83.                         if(message === ``) {
  84.                             ingredients.protein -= quantity * 5;
  85.                             ingredients.fat -= quantity;
  86.                             ingredients.flavour = quantity;
  87.                         }
  88.  
  89.                         return message;
  90.                         break;
  91.  
  92.                         case `turkey`:
  93.  
  94.                         if(ingredients.protein < quantity*10) {
  95.                            return message = `Error: not enough protein in stock`;
  96.                         }
  97.                         if(ingredients.carbohydrate < quantity * 10) {
  98.                           return  message = `Error: not enough carbohydrate in stock`;
  99.                         }
  100.                         if(ingredients.fat < quantity * 10) {
  101.                             return message = `Error: not enough fat in stock`;
  102.                         }
  103.                         if(ingredients.flavour < quantity * 10) {
  104.                            return message = `Error: not enough flavour in stock`;
  105.                         }
  106.  
  107.                         if(message == ``) {
  108.                             ingredients.flavour -= quantity * 10;
  109.                             ingredients.carbohydrate -= quantity * 10;
  110.                             ingredients.protein -= quantity * 10;
  111.                             ingredients.fat -= quantity * 10;
  112.                             message = `Success`
  113.                         }
  114.  
  115.                         return message;
  116.                         break;
  117.  
  118.  
  119.         }
  120.     }
  121.  
  122.     function report() {
  123.  
  124.         return `protein=${ingredients.protein} carbohydrate=${ingredients.carbohydrate} fat=${ingredients.fat} flavour=${ingredients.flavour}`;
  125.     }
  126.  
  127.     return function(comand) {
  128.  
  129.         let token = comand;
  130.         token = token.split(` `)
  131.         let action = token.shift();
  132.  
  133.         if(action === `prepare`) {
  134.             return prepare(token);
  135.         } else if(action === `restock`) {
  136.             return restock(token);
  137.         } else if(action === `report`) {
  138.             return report()
  139.         }
  140.     }
  141.  
  142.  
  143. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement