Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let solution = (function(){
- let ingredients = {}
- ingredients.protein = 0;
- ingredients.carbohydrate = 0;
- ingredients.fat = 0;
- ingredients.flavour = 0
- function restock([microelemnt,quantity]) {
- quantity = Number(quantity);
- ingredients[microelemnt] += quantity;
- return `Success`;
- }
- function prepare([recipe,quantity]) {
- quantity = Number(quantity);
- let message = ``;
- switch(recipe) {
- case `apple`:
- if(ingredients.flavour < quantity * 2) {
- message = `Error: not enough flavour in stock`;
- }
- if(ingredients.carbohydrate < quantity) {
- message = `Error: not enough carbohydrate in stock`;
- }
- if(message == ``) {
- ingredients.flavour -= quantity*2;
- ingredients.carbohydrate -= quantity;
- return `Success`
- }
- return message;
- break;
- case `lemonade`:
- if(ingredients.flavour < quantity * 20) {
- message = `Error: not enough flavour in stock`;
- }
- if(ingredients.carbohydrate < quantity * 10) {
- message = `Error: not enough carbohydrate in stock`;
- }
- if(message == ``) {
- ingredients.flavour -= quantity * 20;
- ingredients.carbohydrate -= quantity * 10;
- }
- return message;
- break;
- case `burger`:
- if(ingredients.carbohydrate < quantity * 5) {
- message = `Error: not enough carbohydrate in stock`;
- }
- if(ingredients.fat < quantity * 7) {
- message = `Error: not enough fat in stock`;
- }
- if(ingredients.flavour < quantity * 3) {
- message = `Error: not enough flavour in stock`;
- }
- if(message === ``) {
- ingredients.flavour -= quantity * 3;
- ingredients.fat -= quantity * 7;
- ingredients.carbohydrate -= quantity * 5;
- }
- return message;
- break;
- case `eggs`:
- if(ingredients.protein < quantity * 5) {
- message = `Error: not enough protein in stock`;
- } if(ingredients.fat < quantity) {
- message = `Error: not enough fat in stock`;
- } if(ingredients.flavour < quantity) {
- message = `Error: not enough flavour in stock`;
- }
- if(message === ``) {
- ingredients.protein -= quantity * 5;
- ingredients.fat -= quantity;
- ingredients.flavour = quantity;
- }
- return message;
- break;
- case `turkey`:
- if(ingredients.protein < quantity*10) {
- return message = `Error: not enough protein in stock`;
- }
- if(ingredients.carbohydrate < quantity * 10) {
- return message = `Error: not enough carbohydrate in stock`;
- }
- if(ingredients.fat < quantity * 10) {
- return message = `Error: not enough fat in stock`;
- }
- if(ingredients.flavour < quantity * 10) {
- return message = `Error: not enough flavour in stock`;
- }
- if(message == ``) {
- ingredients.flavour -= quantity * 10;
- ingredients.carbohydrate -= quantity * 10;
- ingredients.protein -= quantity * 10;
- ingredients.fat -= quantity * 10;
- message = `Success`
- }
- return message;
- break;
- }
- }
- function report() {
- return `protein=${ingredients.protein} carbohydrate=${ingredients.carbohydrate} fat=${ingredients.fat} flavour=${ingredients.flavour}`;
- }
- return function(comand) {
- let token = comand;
- token = token.split(` `)
- let action = token.shift();
- if(action === `prepare`) {
- return prepare(token);
- } else if(action === `restock`) {
- return restock(token);
- } else if(action === `report`) {
- return report()
- }
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement