Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2020
1,171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function piratesProgram(params) {
  2.     let listObj = {}
  3.     let command = params.shift();
  4.     while (command != 'Sail') {
  5.         let commandTowns = command.split('||')
  6.         let town = commandTowns[0];
  7.         let population = Number(commandTowns[1]);
  8.         let gold = Number(commandTowns[2]);
  9.  
  10.         if (listObj.hasOwnProperty(town)) {
  11.             listObj[town].population += population;
  12.             listObj[town].gold += gold;
  13.         }
  14.         else {
  15.             listObj[town] = {
  16.                 population: population,
  17.                 gold: gold
  18.             }
  19.         }
  20.         command = params.shift();
  21.     }
  22.     command = params.shift();
  23.  
  24.     while (command != 'End') {
  25.         let commandNext = command.split('=>');
  26.  
  27.         if (commandNext[0] == 'Plunder') {
  28.             let town = commandNext[1];
  29.             let people = Number(commandNext[2]);
  30.             let gold = Number(commandNext[3]);
  31.             console.log(`${town} plundered! ${gold} gold stolen, ${people} citizens killed.`);
  32.             listObj[town].population -= people;
  33.             listObj[town].gold -= gold;
  34.            
  35.             if ((listObj[town].population <= 0) || (listObj[town].gold <= 0)) {
  36.                 console.log(`{town} has been wiped off the map!`);
  37.  
  38.                 delete listObj[town];
  39.             }
  40.         }
  41.         else if (commandNext[0] == 'Prosper') {
  42.             let town = commandNext[1];
  43.             let gold = Number(commandNext[2]);
  44.             if (gold < 0) {
  45.                 console.log(`Gold added cannot be a negative number!`);
  46.                 continue
  47.             }
  48.             else {
  49.                 listObj[town].gold += gold;
  50.                 console.log(`${gold} gold added to the city treasury. ${town} now has ${listObj[town].gold} gold.`);
  51.             }
  52.         }
  53.         command = params.shift();
  54.     }
  55.  
  56.  
  57.     let workArr = Object.entries(listObj)
  58.     let sorted = workArr.sort((a, b) => {
  59.         if (a[1].gold == b[1].gold) {
  60.             return a[0].localeComapare(b[0]);
  61.         }
  62.         else {
  63.             return b[1].gold - a[1].gold;
  64.         }
  65.     })
  66.     console.log(`Ahoy, Captain! There are ${sorted.length} wealthy settlements to go to:`)
  67.     for (const kvp of sorted) {
  68.         console.log(`${kvp[0]} -> Population: ${kvp[1].population} citizens, Gold: ${kvp[1].gold} kg`);
  69.  
  70.     }
  71. }
  72. piratesProgram([
  73.     'Tortuga||345000||1250',
  74.     'Santo Domingo||240000||630',
  75.     'Havana||410000||1100',
  76.     'Sail',
  77.     'Plunder=>Tortuga=>75000=>380',
  78.     'Prosper=>Santo Domingo=>180',
  79.     'End'
  80. ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement