Todorov_Stanimir

10. Legendary Farming

Jul 19th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function legendaryFarming(input) {
  2.     input = input.split(' ');
  3.     let keyMaterials = new Map();
  4.     keyMaterials.set('shards', 0);
  5.     keyMaterials.set('fragments', 0);
  6.     keyMaterials.set('motes', 0);
  7.     let junkMaterials = new Map();
  8.  
  9.     for (let i = 0; i < input.length; i += 2) {
  10.         let quantity = Number(input[i]);
  11.         let material = String(input[i + 1]).toLowerCase();
  12.  
  13.         if (material === 'shards' || material === 'fragments' || material === 'motes') {
  14.             let currentQuantity = keyMaterials.get(material);
  15.             quantity += currentQuantity;
  16.             if (quantity >= 250) {
  17.                 keyMaterials.set(material, quantity - 250);
  18.                 keyMaterialRichNeededQuantity(material);
  19.                 break;
  20.             } else {
  21.                 keyMaterials.set(material, quantity);
  22.             }
  23.         } else {
  24.             if (junkMaterials.has(material)) {
  25.                 let currentQuantity = junkMaterials.get(material);
  26.                 quantity += currentQuantity;
  27.                 junkMaterials.set(material, quantity);
  28.             } else {
  29.                 junkMaterials.set(material, quantity);
  30.             }
  31.         }
  32.     }
  33.  
  34.     keyMaterials = [...(keyMaterials.entries())];
  35.     keyMaterials.sort(mySort);
  36.     function mySort(a, b) {
  37.         if (a[1] > b[1]) {
  38.             return -1;
  39.         } else if (a[1] < b[1]) {
  40.             return 1;
  41.         } else {
  42.             return a[0].localeCompare(b[0]);
  43.         }
  44.     }
  45.     keyMaterials.forEach(element => {
  46.         console.log(`${element[0]}: ${element[1]}`);
  47.     });
  48.  
  49.     junkMaterials = [...(junkMaterials.entries())];
  50.     junkMaterials.sort((a, b) => a[0].localeCompare(b[0]));
  51.     junkMaterials.forEach(element => {
  52.         console.log(`${element[0]}: ${element[1]}`);
  53.     });
  54.  
  55.     function keyMaterialRichNeededQuantity(input) {
  56.         switch (input) {
  57.             case ('shards'):
  58.                 console.log('Shadowmourne obtained!');
  59.                 break;
  60.             case ('fragments'):
  61.                 console.log('Valanyr obtained!');
  62.                 break;
  63.             case ('motes'):
  64.                 console.log('Dragonwrath obtained!');
  65.                 break;
  66.         }
  67.     }
  68. }
Add Comment
Please, Sign In to add comment