Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function arenaTier(data) {
- let gladiatorPool = {};
- let isOver = false;
- for (let index = 0; index < data.length; index++) {
- if (data[index] === "Ave Cesar") {
- isOver = true;
- break;
- }
- let tokens = data[index].split(" -> ");
- if (tokens.length > 1) {
- let gladiatorName = tokens[0];
- let technique = tokens[1];
- let skill = Number(tokens[2]);
- if (!gladiatorPool.hasOwnProperty(gladiatorName)) {
- gladiatorPool[gladiatorName] = new Map();
- }
- if (gladiatorPool[gladiatorName].has(technique) || (gladiatorPool[gladiatorName].get(technique) < skill)) {
- } else {
- gladiatorPool[gladiatorName].set(technique, skill);
- }
- } else {
- let [gladiatorA, gladiatorB] = tokens[0].split(" vs ");
- if (gladiatorPool.hasOwnProperty(gladiatorA) && gladiatorPool.hasOwnProperty(gladiatorB)) {
- for (let [technique, skill] of Array.from(gladiatorPool[gladiatorA])) {
- if (gladiatorPool[gladiatorB].has(technique)) {
- totalSkillPoints(gladiatorA);
- totalSkillPoints(gladiatorB);
- if (totalSkillPoints(gladiatorA) > totalSkillPoints(gladiatorB)) {
- delete gladiatorPool[gladiatorB];
- } else if (totalSkillPoints(gladiatorA) < totalSkillPoints(gladiatorB)) {
- delete gladiatorPool[gladiatorA];
- }
- isOver = false
- break;
- }
- }
- }
- }
- }
- function totalSkillPoints(gladiator) {
- let sum = 0;
- for (let [technique, skill] of Array.from(gladiatorPool[gladiator])) {
- sum += Number(skill);
- }
- return sum;
- }
- if (isOver = true) {
- let totalSkill = {};
- for (let [gladiatorName, skills] of Object.entries(gladiatorPool)) {
- if (totalSkillPoints(gladiatorName) !== 0) {
- totalSkill[gladiatorName] = totalSkillPoints(gladiatorName);
- }
- }
- let firstSorting = Object.entries(totalSkill).sort((arrA, arrB) => {
- return arrB[1] - arrA[1] || arrA[0].localeCompare(arrB[0]);
- });
- for (const [gladiator, totalSkill] of firstSorting) {
- console.log(`${gladiator}: ${totalSkill} skill`);
- let secondSorting = Array.from(gladiatorPool[gladiator]).sort((a, b) => {
- return b[1] - a[1] || a[0].localeCompare(b[0]);
- });
- for (const [technique, skill] of secondSorting) {
- console.log(`- ${technique} <!> ${skill}`);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement