Advertisement
nikolayneykov

Untitled

Mar 17th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function cardGame(input) {
  2.     let cardPower = new Map([
  3.         ['2', 2],
  4.         ['3', 3],
  5.         ['4', 4],
  6.         ['5', 5],
  7.         ['6', 6],
  8.         ['7', 7],
  9.         ['8', 8],
  10.         ['9', 9],
  11.         ['10', 10],
  12.         ['J', 11],
  13.         ['Q', 12],
  14.         ['K', 13],
  15.         ['A', 14]
  16.  
  17.     ]);
  18.     let cardType = new Map([
  19.         ['S', 4],
  20.         ['H', 3],
  21.         ['D', 2],
  22.         ['C', 1]
  23.     ]);
  24.     let players = new Map();
  25.  
  26.     for (let inputRow of input) {
  27.         let [name, deck] = inputRow.split(': ');
  28.         deck = deck.split(', ');
  29.  
  30.         if (!players.has(name)) {
  31.             players.set(name, new Set());
  32.         }
  33.  
  34.         let oldDeck = players.get(name);
  35.         for (let card of deck) {
  36.             oldDeck.add(card);
  37.         }
  38.     }
  39.     //console.log(players);
  40.  
  41.     for (let [name, deck] of players) {
  42.         let value = getDeckValue(deck);
  43.  
  44.         console.log(`${name}: ${value}`);
  45.     }
  46.  
  47.     function getDeckValue(deck) {
  48.         let sum = 0;
  49.         for (let card of deck) {
  50.             let cardPowerKey = '';
  51.             let cardTypeKey = '';
  52.  
  53.             if (card.length === 2) {
  54.                 cardPowerKey = card[0];
  55.                 cardTypeKey = card[1];
  56.             }
  57.             if (card.length === 3) {
  58.                 cardPowerKey = card[0] + card[1];
  59.                 cardTypeKey = card[2];
  60.                
  61.             }
  62.  
  63.             let cardPowerValue = cardPower.get(cardPowerKey);
  64.            
  65.             let multiplier = cardType.get(cardTypeKey);
  66.        
  67.  
  68.             sum += cardPowerValue * multiplier;
  69.  
  70.  
  71.         }
  72.        
  73.         return sum;
  74.     }
  75.  
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement