Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(input) {
- input.pop();
- let warriorsAndStrength = {};
- let warriors = [];
- for (const line of input) {
- let command = line.split(':');
- if (command[0] === 'Add') {
- if (!warriorsAndStrength.hasOwnProperty(command[1])) {
- warriorsAndStrength[command[1]] = {
- health: Number(command[2]),
- strength: Number(command[3])
- }
- } else {
- warriorsAndStrength[command[1]] = {
- health: Number(command[2]) + Number(command[2]),
- strength: Number(command[3])
- }
- }
- }
- if (command[0] === 'Attack') {
- if (Object.keys(warriorsAndStrength).indexOf(command[1]) !== -1 && Object.keys(warriorsAndStrength).indexOf(command[2]) !== -1) {
- let decreased = Object.values(warriorsAndStrength[command[2]])
- let increased = Object.values(warriorsAndStrength[command[1]])
- let healthIncrease = increased[0]
- let strengthIncrease = increased[1]
- let health = decreased[0]
- let strength = decreased[1]
- warriorsAndStrength[command[2]] = {
- health: health - Number(command[3]),
- strength: strength
- }
- warriorsAndStrength[command[1]] = {
- health: healthIncrease,
- strength: strengthIncrease - 1
- }
- let resultDef = warriorsAndStrength[command[2]].health
- let resultAtk = warriorsAndStrength[command[1]].strength
- if (resultDef <= 0) {
- delete warriorsAndStrength[command[2]]
- console.log(`${command[2]} was disqualified!`)
- }
- if (resultAtk <= 0) {
- delete warriorsAndStrength[command[1]];
- console.log(`${command[1]} was disqualified!`)
- }
- }
- }
- if (command[0] === 'Delete') {
- if (Object.keys(warriorsAndStrength).indexOf(command[1]) !== -1) {
- delete warriorAndStrength[command[1]]
- }
- if (command[1] === 'All') {
- warriorsAndStrength = {};
- }
- }
- }
- let warriorsArr = Array.from(Object.entries(warriorsAndStrength))
- warriorsArr.reverse();
- let count = warriorsArr.length
- console.log(`People count: ${count}`)
- for (let i = 0; i < warriorsArr.length; i++) {
- let warrior = warriorsArr[i];
- let values = Array.from(Object.values(warrior[1]))
- let combine = [].concat.apply([], values)
- combine = combine.map((value) => '- ' + value)
- console.log(`${warrior[0]} ${combine.join(' ')}`)
- }
- }
- solve([
- 'Add:Bonnie:3000:5',
- 'Add:Johny:4000:10',
- 'Attack:Johny:Bonnie:400',
- 'Add:Chicken:1000:1',
- 'Add:Rabbit:3000:5',
- 'Add:Buggy:1259:10',
- 'Attack:Chicken:Rabbit:1000',
- 'Results'
- ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement