Advertisement
Prohause

Breakfast Robot

Jun 27th, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. 'use strict';
  2. function solution() {
  3. let products = {};
  4. products.protein = 0;
  5. products.carbohydrate = 0;
  6. products.fat = 0;
  7. products.flavour = 0;
  8.  
  9. let recepies = {};
  10. recepies.apple = {'carbohydrate': 1, 'flavour': 2};
  11. recepies.coke = {'carbohydrate': 10, 'flavour': 20};
  12. recepies.burger = {'carbohydrate': 5, 'fat': 7, 'flavour': 3};
  13. recepies.omelet = {'protein': 5, 'fat': 1, 'flavour': 1};
  14. recepies.cheverme = {'protein': 10, 'carbohydrate': 10, 'fat': 10, 'flavour': 10};
  15.  
  16. return function (input) {
  17. let [comm, type, qty] = input.split(' ');
  18. qty = Number(qty);
  19.  
  20. function restock() {
  21. products[type] += qty;
  22. return 'Success';
  23. }
  24.  
  25. function report() {
  26. return `protein=${products.protein} carbohydrate=${products.carbohydrate} fat=${products.fat} flavour=${products.flavour}`;
  27. }
  28.  
  29. function prepare() {
  30. let needed = {};
  31. for (let key of Object.keys(recepies[type])) {
  32. needed[key] = qty * recepies[type][key];
  33. }
  34.  
  35. let isEnough = true;
  36. let result = '';
  37.  
  38. for (let key of Object.keys(needed)) {
  39. if (products[key] < needed[key]) {
  40. result = `Error: not enough ${key} in stock`;
  41. isEnough = false;
  42. break;
  43. }
  44. }
  45.  
  46. if (isEnough) {
  47. for (let key of Object.keys(needed)) {
  48. products[key] -= needed[key];
  49. }
  50. result = 'Success';
  51. }
  52.  
  53. return result;
  54. }
  55.  
  56. switch (comm) {
  57. case 'restock':
  58. return restock();
  59. case 'report':
  60. return report();
  61. case 'prepare':
  62. return prepare();
  63. }
  64. }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement