Ivankooo1

Cards

Apr 8th, 2020
1,190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(param){
  2.     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};
  3.    
  4.     function createPlayers(input){
  5.         let player = {};
  6.  
  7.         input.forEach(element => {
  8.           let tokens = element.split(': ');
  9.           let name = tokens[0];
  10.           let deck = tokens[1].split(', ');
  11.  
  12.           if(player[name] === undefined){
  13.               player[name] = new Set();
  14.           }
  15.           deck.forEach(card =>{
  16.             player[name].add(card);
  17.  
  18.           })
  19.         });
  20.         return player;
  21.     }
  22.  
  23.     function sumDeck(arr,cardsPower){
  24.        let sum = 0;
  25.        arr.forEach(card =>{
  26.           let tokens = card.split('');
  27.           let type = tokens.pop();
  28.           let power = tokens.join('');
  29.           sum += cardsPower[type] * cardsPower[power];
  30.        })
  31.        return sum;
  32.     }
  33.  
  34.     function createPlayersScore(player,cardsPower){
  35.        let obj = {};
  36.        Object.entries(player).forEach(entry=> {
  37.            let name = entry[0];
  38.            let deck = entry[1];
  39.  
  40.            obj[name] = sumDeck(Array.from(deck.values()),cardsPower);
  41.        })
  42.        return obj;
  43.     }
  44.  
  45.  
  46.     let el = createPlayers(param);
  47.     let output = createPlayersScore(el,cardsPower);
  48.     Object.keys(output).forEach(el=>{
  49.       console.log(`${el}: ${output[el]}`)
  50.     })
  51. }
  52.  
  53. // solve([
  54. //     'Peter: 2C, 4H, 9H, AS, QS',
  55. //     'Tomas: 3H, 10S, JC, KD, 5S, 10S',
  56. //     'Andrea: QH, QC, QS, QD',
  57. //     'Tomas: 6H, 7S, KC, KD, 5S, 10C',
  58. //     'Andrea: QH, QC, JS, JD, JC',
  59. //     'Peter: JD, JD, JD, JD, JD, JD'
  60. //     ]
  61.    
  62. //   );
  63.  
  64.   solve([
  65.     'Pesho: JD, JD, JD, JD, JD, JD',
  66.     'Pesho: 2C, 4H, 9H, AS, QS',
  67.     'Slav: 3H, 10S, JC, KD, 5S, 10S',
  68.     'Peshoslav: QH, QC, QS, QD',
  69.     'Slav: 6H, 7S, KC, KD, 5S, 10C',
  70.     'Peshoslav: QH, QC, JS, JD, JC',
  71.   ]
  72.   )
Advertisement
Add Comment
Please, Sign In to add comment