diff --git a/babel.config.js b/babel.config.js index 05c74d42..3d88ba77 100644 --- a/babel.config.js +++ b/babel.config.js @@ -9,6 +9,7 @@ const presets = [ safari: "11.1", }, useBuiltIns: "usage", + corejs: 2, }, ], ]; diff --git a/src/adagrams.js b/src/adagrams.js index 54043451..52fa80f1 100644 --- a/src/adagrams.js +++ b/src/adagrams.js @@ -1,7 +1,80 @@ const Adagrams = { + letterQuantity : { + "A": 9, "B": 2, + "C": 2, "D": 4, + "E": 12, "F": 2, + "G": 3, "H": 2, + "I": 9, "J": 1, + "K": 1, "L": 4, + "M": 2, "N": 6, + "O": 8, "P": 2, + "Q": 1, "R": 6, + "S": 4, "T": 6, + "U": 4, "V": 2, + "W": 2, "X": 1, + "Y": 2, "Z": 1 + }, + + letterPoints : { + "A": 1, "B": 3, + "C": 3, "D": 2, + "E": 1, "F": 4, + "G": 2, "H": 4, + "I": 1, "J": 8, + "K": 5, "L": 1, + "M": 3, "N": 1, + "O": 1, "P": 3, + "Q": 10, "R": 1, + "S": 1, "T": 1, + "U": 1, "V": 4, + "W": 4, "X": 8, + "Y": 4, "Z": 10 + }, + drawLetters() { - // Implement this method for wave 1 + let letters = this.letterQuantity + const keys = Object.keys(letters); + const hand = []; + + while (hand.length < 10) { + let randomTile = keys[Math.floor(Math.random() * keys.length)] + let tileCount = letters[randomTile]; + if (tileCount > 0){ + letters[randomTile] -= 1; + hand.push(randomTile) + } + } + return hand; }, + + usesAvailableLetters(input, lettersInHand) { + let inputLength = input.length; + + if(inputLength > lettersInHand.length){ + return false + } + + for(let i = 0; i < inputLength; i++){ + if (lettersInHand.indexOf(input[i]) !== -1){ + lettersInHand = lettersInHand.toString().replace(input[i], ''); + } else { + return false + } + } + return true + }, + + scoreWord(word) { + let score = 0; + (word.length > 6 && word.length < 11 ? score += 8 : score += 0); + + let w = word.toUpperCase(); + for (const letterTile of w){ + score += (this.letterPoints[letterTile]); + } + return score + }, + }; // Do not remove this line or your tests will break!