function cardGame(input) {
let playersAndTheirCards = {};
for (let i = 0; i < input.length; i++) {
let line = input[i].split(": ");
let player = line[0];
let cards = line[1].split(", ");
if (player in playersAndTheirCards) {
let currentCards = playersAndTheirCards[player];
let allCards=currentCards.concat(cards);
let distinctCards=[...new Set(allCards)];
playersAndTheirCards[player]=distinctCards;
} else {
playersAndTheirCards[player] = cards;
}
}
for(let player in playersAndTheirCards) {
let personalScore=0;
let cardsArr=playersAndTheirCards[player];
cardsArr.forEach(card => {
let kvp=card.split("");
let color=kvp.pop();
let power=kvp.join("");
let value=0;
let multiplier=0;
switch(power){
case "2": value=2; break;
case "3": value=3; break;
case "4": value=4; break;
case "5": value=5; break;
case "6": value=6; break;
case "7": value=7; break;
case "8": value=8; break;
case "9": value=9; break;
case "10": value=10; break;
case "J": value=11; break;
case "Q": value=12; break;
case "K": value=13; break;
case "A": value=14; break;
}
switch(color){
case "S":multiplier=4;break;
case "H":multiplier=3;break;
case "D":multiplier=2;break;
case "C":multiplier=1;break;
}
personalScore+=value*multiplier;
});
console.log(`${player}: ${personalScore}`);
}
}
cardGame([
'Peter: 2C, 4H, 9H, AS, QS',
'Tomas: 3H, 10S, JC, KD, 5S, 10S',
'Andrea: QH, QC, QS, QD',
'Tomas: 6H, 7S, KC, KD, 5S, 10C',
'Andrea: QH, QC, JS, JD, JC',
'Peter: JD, JD, JD, JD, JD, JD'
]
)