Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(param){
- let cardsPower = {2:2, 3:3, 4:4, 5:5, 6:6, 7:7, 8:8, 9:9, 10:10, J:11, Q:12, K:13, A:14,S:4, H:3, D:2, C:1};
- function createPlayers(input){
- let player = {};
- input.forEach(element => {
- let tokens = element.split(': ');
- let name = tokens[0];
- let deck = tokens[1].split(', ');
- if(player[name] === undefined){
- player[name] = new Set();
- }
- deck.forEach(card =>{
- player[name].add(card);
- })
- });
- return player;
- }
- function sumDeck(arr,cardsPower){
- let sum = 0;
- arr.forEach(card =>{
- let tokens = card.split('');
- let type = tokens.pop();
- let power = tokens.join('');
- sum += cardsPower[type] * cardsPower[power];
- })
- return sum;
- }
- function createPlayersScore(player,cardsPower){
- let obj = {};
- Object.entries(player).forEach(entry=> {
- let name = entry[0];
- let deck = entry[1];
- obj[name] = sumDeck(Array.from(deck.values()),cardsPower);
- })
- return obj;
- }
- let el = createPlayers(param);
- let output = createPlayersScore(el,cardsPower);
- Object.keys(output).forEach(el=>{
- console.log(`${el}: ${output[el]}`)
- })
- }
- // solve([
- // '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'
- // ]
- // );
- solve([
- 'Pesho: JD, JD, JD, JD, JD, JD',
- 'Pesho: 2C, 4H, 9H, AS, QS',
- 'Slav: 3H, 10S, JC, KD, 5S, 10S',
- 'Peshoslav: QH, QC, QS, QD',
- 'Slav: 6H, 7S, KC, KD, 5S, 10C',
- 'Peshoslav: QH, QC, JS, JD, JC',
- ]
- )
Advertisement
Add Comment
Please, Sign In to add comment