Advertisement
RRusev77

NFS BRATME

Jul 21st, 2020
518
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function speed(arr) {
  2.     const cars = new Map();
  3.     const carsCapacity = Number(arr.shift());
  4.  
  5.     for(let i = 0; i < carsCapacity; i++) {
  6.         let [carName, mileage, fuel] = arr.shift().split('|');
  7.         mileage = Number(mileage);
  8.         fuel = Number(fuel);
  9.  
  10.         let carArr = [mileage, fuel];
  11.  
  12.         cars.set(carName, carArr);
  13.     }
  14.  
  15.     let commandStr = arr.shift();
  16.  
  17.     while(commandStr !== 'Stop') {
  18.         if(commandStr.includes('Drive ')) {
  19.             let [cmdName, carName, distance, fuel] = commandStr.split(' : ');
  20.             distance = Number(distance);
  21.             fuel = Number(fuel);
  22.  
  23.             let availableFuel = cars.get(carName)[1];
  24.  
  25.             if(availableFuel >= fuel) {
  26.                 let fuelLeft = availableFuel - fuel;
  27.                 let currentDistance = cars.get(carName)[0];
  28.                 let totalDistance = currentDistance + distance;
  29.                 let carArr = [totalDistance, fuelLeft];
  30.  
  31.                 cars.set(carName, carArr);
  32.  
  33.                 console.log(`${carName} driven for ${distance} kilometers. ${fuel} liters of fuel consumed.`);
  34.  
  35.                 if(totalDistance >= 100000) {
  36.                     console.log(`Time to sell the ${carName}!`);
  37.                     cars.delete(carName);
  38.                 }
  39.             } else {
  40.                 console.log('Not enough fuel to make that ride');
  41.             }
  42.         // END OF 'DRIVE' CASE ===============================================================
  43.         } else if(commandStr.includes('Refuel ')) {
  44.             let [cmdName, carName, fuel] = commandStr.split(' : ');
  45.             fuel = Number(fuel);
  46.  
  47.             let currentFuel = cars.get(carName)[1];
  48.             let totalFuel;
  49.  
  50.             if(currentFuel + fuel > 75) {
  51.                 let filledFuel = 75 - currentFuel;
  52.                 totalFuel = 75;
  53.                 cars.get(carName)[1] = totalFuel;
  54.  
  55.                 console.log(`${carName} refueled with ${filledFuel} liters`);
  56.             } else {
  57.                 totalFuel = currentFuel + fuel;
  58.                 cars.get(carName)[1] = totalFuel;
  59.  
  60.                 console.log(`${carName} refueled with ${fuel} liters`);
  61.             }
  62.         // END OF 'REFUEL' CASE ==============================================================
  63.         } else if(commandStr.includes('Revert ')) {
  64.             let [cmdName, carName, kilometers] = commandStr.split(' : ');
  65.             kilometers = Number(kilometers);
  66.  
  67.             let currentMileage = cars.get(carName)[0];
  68.  
  69.             if(currentMileage - kilometers < 10000) {
  70.                 cars.get(carName)[0] = 10000;
  71.             } else {
  72.                 totalMileage = currentMileage - kilometers;
  73.                 cars.get(carName)[0] = totalMileage;
  74.  
  75.                 console.log(`${carName} mileage decreased by ${kilometers} kilometers`);
  76.             }
  77.         // END OF 'REVERT' CASE ==============================================================
  78.         }
  79.  
  80.         commandStr = arr.shift();
  81.     }
  82.  
  83.     let carEntries = Array.from(cars.entries()).sort((a, b) => {
  84.         let mileageA = a[1][0];
  85.         let mileageB = b[1][0];
  86.         let carNameA = a[0];
  87.         let carNameB = b[0];
  88.  
  89.         if(mileageA != mileageB) {
  90.             return mileageB - mileageA;
  91.         } else {
  92.             return carNameA.localeCompare(carNameB);
  93.         }
  94.     });
  95.  
  96.  
  97.     carEntries.forEach(entrie => {
  98.         let [name, carArr] = entrie;
  99.         let [mileage, fuel] = carArr;
  100.  
  101.         console.log(`${name} -> Mileage: ${mileage} kms, Fuel in the tank: ${fuel} lt.`);
  102.     });
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement