From 315d3e693323193343540ca797510e5fe60fda22 Mon Sep 17 00:00:00 2001 From: geli-gel Date: Thu, 14 Nov 2019 21:37:02 -0800 Subject: [PATCH 1/4] draw letters working --- src/adagrams.js | 65 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/src/adagrams.js b/src/adagrams.js index 54043451..b11cbbff 100644 --- a/src/adagrams.js +++ b/src/adagrams.js @@ -1,8 +1,69 @@ const Adagrams = { + letterInfo: { + "A": {count: 9, points: 1}, + "B": {count: 2, points: 3}, + "C": {count: 2, points: 3}, + "D": {count: 4, points: 2}, + "E": {count: 12, points: 1}, + "F": {count: 2, points: 4}, + "G": {count: 3, points: 2}, + "H": {count: 2, points: 4}, + "I": {count: 9, points: 1}, + "J": {count: 1, points: 8}, + "K": {count: 1, points: 5}, + "L": {count: 4, points: 1}, + "M": {count: 2, points: 3}, + "N": {count: 6, points: 1}, + "O": {count: 8, points: 1}, + "P": {count: 2, points: 3}, + "Q": {count: 1, points: 10}, + "R": {count: 6, points: 1}, + "S": {count: 4, points: 1}, + "T": {count: 6, points: 1}, + "U": {count: 4, points: 1}, + "V": {count: 2, points: 4}, + "W": {count: 2, points: 4}, + "X": {count: 1, points: 8}, + "Y": {count: 2, points: 4}, + "Z": {count: 1, points: 10}, + }, + + drawCount: 10, + drawLetters() { - // Implement this method for wave 1 + const letterInfo = this.letterInfo; + const letterPool = []; + for (let letter in letterInfo) { + const letterCount = letterInfo[letter].count + for (let i = 0; i < letterCount; i++){ + letterPool.push(letter); + } + } + // console.log(letterPool); + + const randomIndices = []; + + while (randomIndices.length < this.drawCount) { + const randomIndex = Math.floor(Math.random() * letterPool.length); + if (!randomIndices.includes(randomIndex)) { + randomIndices.push(randomIndex); + } + } + // console.log(`randomIndices: ${randomIndices}`); + + const drawnLetters = randomIndices.map((index) => { + return letterPool[index]; + }); + + // console.log(`drawnLetters: ${drawnLetters}`) + + return drawnLetters; + }, + }; +Adagrams.drawLetters(); + // Do not remove this line or your tests will break! -export default Adagrams; +// export default Adagrams; From 01c83987638a120d22ef23ff4900fda76d201553 Mon Sep 17 00:00:00 2001 From: geli-gel Date: Thu, 14 Nov 2019 21:40:29 -0800 Subject: [PATCH 2/4] uncommented the accidentally commented out export part --- src/adagrams.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/adagrams.js b/src/adagrams.js index b11cbbff..f3ea9d88 100644 --- a/src/adagrams.js +++ b/src/adagrams.js @@ -40,7 +40,7 @@ const Adagrams = { } } // console.log(letterPool); - + const randomIndices = []; while (randomIndices.length < this.drawCount) { @@ -63,7 +63,5 @@ const Adagrams = { }; -Adagrams.drawLetters(); - // Do not remove this line or your tests will break! -// export default Adagrams; +export default Adagrams; From 74747844dfb8724291bec16bc097ae374802a4b7 Mon Sep 17 00:00:00 2001 From: geli-gel Date: Thu, 14 Nov 2019 22:38:09 -0800 Subject: [PATCH 3/4] usesAvailableLetters working --- src/adagrams.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/adagrams.js b/src/adagrams.js index f3ea9d88..c47a1973 100644 --- a/src/adagrams.js +++ b/src/adagrams.js @@ -60,8 +60,25 @@ const Adagrams = { return drawnLetters; }, + + usesAvailableLetters(input, lettersInHand) { + const handCopy = [...lettersInHand]; + + const validInputs = input.split('').map((letter) => { + if (handCopy.includes(letter)) { + const letterIndex = handCopy.indexOf(letter); + handCopy.splice(letterIndex,1); + console.log(`handCopy: ${handCopy}`); + return true; + } else {return false;} + }); + + return validInputs.includes(false) ? false : true; + }, }; +console.log(Adagrams.usesAvailableLetters('poopies', ['p','o','o','l'])); + // Do not remove this line or your tests will break! export default Adagrams; From d26f2aed2ad3ac8731de73fb8658be417dc31def Mon Sep 17 00:00:00 2001 From: geli-gel Date: Sun, 17 Nov 2019 16:26:11 -0800 Subject: [PATCH 4/4] wave 3 passing --- src/adagrams.js | 21 ++++++++++++++++++++- test/adagrams.test.js | 2 ++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/adagrams.js b/src/adagrams.js index c47a1973..d0a60435 100644 --- a/src/adagrams.js +++ b/src/adagrams.js @@ -68,13 +68,32 @@ const Adagrams = { if (handCopy.includes(letter)) { const letterIndex = handCopy.indexOf(letter); handCopy.splice(letterIndex,1); - console.log(`handCopy: ${handCopy}`); + // console.log(`handCopy: ${handCopy}`); return true; } else {return false;} }); return validInputs.includes(false) ? false : true; }, + + scoreWord(word) { + const letterInfo = this.letterInfo; + const wordArray = word.toUpperCase().split(''); + + const letterPoints = wordArray.map(letter => letterInfo[letter]['points']); + + console.log(letterPoints); + + if (wordArray.length >= 7) { + letterPoints.push(8); + } + + const wordPoints = letterPoints.reduce((total, points) => total + points, 0); + + return wordPoints; + + + }, }; diff --git a/test/adagrams.test.js b/test/adagrams.test.js index 371027a0..9f3b77af 100644 --- a/test/adagrams.test.js +++ b/test/adagrams.test.js @@ -139,3 +139,5 @@ describe('Adagrams', () => { }); }); }); + +