Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solveProblemThree(input) {
- let obj = {};
- for (let line of input) {
- let [command, name, ...args] = line.split(':');
- let [health, energy] = args;
- health = Number(health);
- energy = Number(energy);
- if (command === 'Add') {
- if (!obj.hasOwnProperty(name)) {
- obj[name] = {
- health,
- energy
- };
- } else {
- obj[name].health += health;
- }
- } else if (command === 'Attack') {
- let attackerName = name;
- let [defenderName, damage] = args;
- damage = Number(damage);
- if (obj.hasOwnProperty(attackerName) && obj.hasOwnProperty(defenderName)) {
- obj[defenderName].health -= damage;
- if (obj[defenderName].health <= 0) {
- delete obj[defenderName];
- console.log(`${defenderName} was disqualified!`);
- }
- obj[attackerName].energy -= 1;
- if (obj[attackerName].energy <= 0) {
- delete obj[attackerName];
- console.log(`${attackerName} was disqualified!`);
- }
- }
- } else if (command === 'Delete') {
- let username = name;
- if (username === 'All') {
- let deleted = Object.keys(obj);
- for (let el of deleted) {
- delete obj[el];
- }
- } else {
- if (obj.hasOwnProperty(username)) {
- delete obj[username];
- }
- }
- } else if (command === 'Results') {
- break;
- }
- }
- let sorted = Object.entries(obj).sort(compareNames);
- console.log(`People count: ${sorted.length}`);
- for (let [name, info] of sorted) {
- let {
- health,
- energy
- } = info;
- console.log(`${name} - ${health} - ${energy}`);
- }
- function compareNames(a, b) {
- let [aName, aInfo] = a;
- let [bName, bInfo] = b;
- return bInfo.health - aInfo.health || aName.localeCompare(bName);
- }
- }
- // solveProblemThree(
- // (["Add:Mark:1000:5",
- // "Add:Clark:1000:3",
- // "Attack:Clark:Mark:500",
- // "Add:Allison:2500:5",
- // "Attack:Clark:Mark:300",
- // "Add:Charlie:4000:10",
- // "Attack:Clark:Mark:500",
- // "Results"
- // ])
- // )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement