Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function battleManager(arr = []) {
- const players = new Map();
- for (let line of arr) {
- if (line === 'Results') {
- break;
- } else if (line.includes('Add')) {
- let [,player,health,energy] = line.split(':');
- health = Number(health);
- energy = Number(energy);
- let skills = {
- 'health': 0,
- 'energy': 0
- };
- if (!players.has(player)) {
- players.set(player, skills);
- }
- players.get(player).health += health;
- players.get(player).energy += energy;
- } else if (line.includes('Attack')) {
- let [,player,defenderPlayer,damage] = line.split(':');
- if (players.has(player) && players.has(defenderPlayer)) {
- players.get(defenderPlayer).health -= Number(damage);
- if (players.get(defenderPlayer).health <= 0) {
- players.delete(defenderPlayer);
- console.log(`${defenderPlayer} was disqualified!`);
- }
- players.get(player).energy--;
- if (players.get(player).energy <= 0) {
- players.delete(player);
- console.log(`${player} was disqualified!`);
- }
- }
- } else if (line.includes('Delete')) {
- let [, player] = line.split(":");
- if (players.has(player)) {
- players.delete(player);
- }
- if (player === "All") {
- players.clear();
- }
- }
- }
- console.log(`People count: ${players.size}`);
- let sortedPlayers = Array.from(players.keys())
- .sort((a,b) => players.get(b).health - players.get(a).health || a.localeCompare(b));
- sortedPlayers.forEach(player => {
- console.log(`${player} - ${players.get(player).health} - ${players.get(player).energy}`);
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement