Advertisement
ggeorgiev88

needForSpeed

Mar 23rd, 2023
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function needForSpeed(arr) {
  2.  
  3.     let carsNumber = Number(arr.shift());
  4.     let carGarage = {};
  5.     for (let x = 0; x < carsNumber; x++) {
  6.         let tokens = arr.shift().split("|")
  7.         let currModelCar = tokens[0];
  8.         let mileage = Number(tokens[1]);
  9.         let fuel = Number(tokens[2]);
  10.         carGarage[currModelCar] = [];
  11.         carGarage[currModelCar].push(mileage, fuel);
  12.         let gasLeft = 0;
  13.         let currMileage = 0
  14.     }
  15.     for (let i = 0; i < arr.length; i++) {
  16.         let tokens = arr.shift().split(" : ");
  17.         let comand = tokens[0];
  18.         let info = tokens.slice(1);
  19.         switch (comand) {
  20.             case "Drive":
  21.                 let carToDrive = info[0];
  22.                 let distance = Number(info[1]);
  23.                 let gas = Number(info[2]);
  24.  
  25.                 if (carGarage[carToDrive][1] >= gas) {
  26.                     gasLeft = carGarage[carToDrive][1] - gas;
  27.                     currMileage = carGarage[carToDrive][0] + distance
  28.                     carGarage[carToDrive].splice(0, 2, currMileage, gasLeft);
  29.                     console.log(`${carToDrive} driven for ${distance} kilometers. ${gas} liters of fuel consumed.`)
  30.                 } else {
  31.                     console.log("Not enough fuel to make that ride")
  32.                 } break;
  33.             case "Refuel":
  34.                 let carToRefuel = info[0];
  35.                 let addGas = Number(info[1]);
  36.                 let posibileGas = Math.min(75 - carGarage[carToRefuel][1], addGas);
  37.                 let newFuel = carGarage[carToRefuel][1] + posibileGas;
  38.                 carGarage[carToRefuel].splice(1, 1, newFuel);
  39.                 console.log(`${carToRefuel} refueled with ${posibileGas} liters"`);
  40.                break;
  41.            default:
  42.                break;
  43.        }
  44.  
  45.  
  46.    }
  47.  
  48.  
  49. }
  50.  
  51.  
  52. needForSpeed([
  53.    '3',
  54.    'Audi A6|38000|62',
  55.    'Mercedes CLS|11000|35',
  56.    'Volkswagen Passat CC|45678|5',
  57.    'Drive : Audi A6 : 543 : 47',
  58.    'Drive : Mercedes CLS : 94 : 11',
  59.    'Drive : Volkswagen Passat CC : 69 : 8',
  60.    'Refuel : Audi A6 : 50',
  61.    'Revert : Mercedes CLS : 500',
  62.    'Revert : Audi A6 : 30000',
  63.    'Stop']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement