Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | None | 0 0
  1. let manager = (function(){
  2. let ingredients = {
  3. protein : 0,
  4. carbohydrate: 0,
  5. fat: 0,
  6. flavour: 0
  7. };
  8. let recipes ={
  9. apple: {carbohydrate: 1, flavour: 2},
  10. coke: {carbohydrate: 10, flavour: 20},
  11. burger: {carbohydrate: 5, fat: 7, flavour: 3},
  12. omelet: {protein: 5, fat: 1, flavour: 1},
  13. cheverme: {protein: 10,carbohydrate: 10, fat: 10, flavour: 10},
  14. }
  15.  
  16. function restock(ingredient, quantity){
  17. ingredients[ingredient] += quantity;
  18. return 'Success';
  19. }
  20.  
  21. function prepare(meal, quantity){
  22. let productsAreAvailable = checkProductAvailability();
  23. if(productsAreAvailable[0]){
  24. for (const ingredient in recipes[meal]) {
  25. ingredients[ingredient] -= recipes[meal][ingredient] * quantity;
  26. }
  27.  
  28. return 'Success';
  29. } else{
  30. return `Error: not enough ${productsAreAvailable[1]} in stock`;
  31. }
  32.  
  33. function checkProductAvailability(){
  34. for (const ingredient in recipes[meal]) {
  35. if(ingredients[ingredient] < recipes[meal][ingredient] * quantity){
  36. return [false, ingredient];
  37. }
  38. }
  39.  
  40. return [true];
  41. }
  42. }
  43.  
  44. function report(){
  45. return `protein=${ingredients['protein']} carbohydrate=${ingredients['carbohydrate']} fat=${ingredients['fat']} flavour=${ingredients['flavour']}`;
  46. }
  47.  
  48. return function cmdProcessor(instruction) {
  49. let instructionArgs = instruction.split(/ /);
  50. switch(instructionArgs[0]){
  51. case 'restock': restock(instructionArgs[1], Number(instructionArgs[2])); break;
  52. case 'prepare': prepare(instructionArgs[1], Number(instructionArgs[2])); break;
  53. case 'report': report(); break;
  54. }
  55. }
  56. })();
  57.  
  58. // manager('restock flavour 50');
  59. // manager('prepare coke 4');
  60.  
  61. // manager('restock carbohydrate 10');
  62. // manager('restock flavour 10');
  63. // manager('prepare apple 1');
  64. // manager('restock fat 10');
  65. // manager('prepare burger 1');
  66. // manager('report');
  67.  
  68. // console.log(manager('prepare cheverme 1'));
  69. // console.log(manager('restock protein 10'));
  70. // console.log(manager('prepare cheverme 1'));
  71. // console.log(manager('restock carbohydrate 10'));
  72. // console.log(manager('prepare cheverme 1'));
  73. // console.log(manager('restock fat 10'));
  74. // console.log(manager('prepare cheverme 1'));
  75. // console.log(manager('restock flavour 10'));
  76. // console.log(manager('prepare cheverme 1'));
  77. // console.log(manager('report'));
  78.  
  79.  
  80. console.log(manager('restock protein 100'));
  81. console.log(manager('restock carbohydrate 100'));
  82. console.log(manager('restock fat 100'));
  83. console.log(manager('restock flavour 100'));
  84. console.log(manager('report'));
  85. console.log(manager('prepare omelet 2'));
  86. console.log(manager('report'));
  87. console.log(manager('prepare omelet 1'));
  88. console.log(manager('report'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement