Advertisement
megi_al

Untitled

Apr 3rd, 2021
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solveProblemThree(input) {
  2.     let obj = {};
  3.     for (let line of input) {
  4.         let [command, name, ...args] = line.split(':');
  5.         let [health, energy] = args;
  6.         health = Number(health);
  7.         energy = Number(energy);
  8.         if (command === 'Add') {
  9.  
  10.             if (!obj.hasOwnProperty(name)) {
  11.  
  12.                 obj[name] = {
  13.                     health,
  14.                     energy
  15.                 };
  16.             } else {
  17.                 obj[name].health += health;
  18.             }
  19.         } else if (command === 'Attack') {
  20.             let attackerName = name;
  21.             let [defenderName, damage] = args;
  22.  
  23.             damage = Number(damage);
  24.             if (obj.hasOwnProperty(attackerName) && obj.hasOwnProperty(defenderName)) {
  25.                 obj[defenderName].health -= damage;
  26.                 if (obj[defenderName].health <= 0) {
  27.                     delete obj[defenderName];
  28.                     console.log(`${defenderName} was disqualified!`);
  29.                 }
  30.                 obj[attackerName].energy -= 1;
  31.                 if (obj[attackerName].energy <= 0) {
  32.                     delete obj[attackerName];
  33.                     console.log(`${attackerName} was disqualified!`);
  34.                 }
  35.             }
  36.         } else if (command === 'Delete') {
  37.             let username = name;
  38.             if (username === 'All') {
  39.                 let deleted = Object.keys(obj);
  40.                 for (let el of deleted) {
  41.                     delete obj[el];
  42.                 }
  43.  
  44.             } else {
  45.                 if (obj.hasOwnProperty(username)) {
  46.                     delete obj[username];
  47.                 }
  48.             }
  49.         } else if (command === 'Results') {
  50.             break;
  51.         }
  52.     }
  53.     let sorted = Object.entries(obj).sort(compareNames);
  54.     console.log(`People count: ${sorted.length}`);
  55.  
  56.     for (let [name, info] of sorted) {
  57.         let {
  58.             health,
  59.             energy
  60.         } = info;
  61.         console.log(`${name} - ${health} - ${energy}`);
  62.  
  63.     }
  64.  
  65.     function compareNames(a, b) {
  66.         let [aName, aInfo] = a;
  67.         let [bName, bInfo] = b;
  68.  
  69.         return bInfo.health - aInfo.health || aName.localeCompare(bName);
  70.     }
  71. }
  72.  
  73. // solveProblemThree(
  74. //     (["Add:Mark:1000:5",
  75. //         "Add:Clark:1000:3",
  76. //         "Attack:Clark:Mark:500",
  77. //         "Add:Allison:2500:5",
  78. //         "Attack:Clark:Mark:300",
  79. //         "Add:Charlie:4000:10",
  80. //         "Attack:Clark:Mark:500",
  81. //         "Results"
  82. //     ])
  83.  
  84. // )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement