CCCPaste

card game

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'
]
)