water - marj#43
Conversation
dHelmgren
left a comment
There was a problem hiding this comment.
JS Adagrams
Major Learning Goals/Code Review
| Criteria | yes/no, and optionally any details/lines of code to reference |
|---|---|
Correctly uses variables, and only uses const and let variables. The program prefers const variables. The program never uses var. |
✔️ |
| Practices best-practices in JavaScript syntax. There are semi-colons at the end of most lines that need semi-colons. Variables and functions are named with camelCase. | inconsistient ;'s |
| Correctly creates and calls functions within an object with proper syntax (parameters, return statements, etc.) | ✔️ |
| Uses correct syntax for conditional logic and iteration | ✔️ |
| Practices git with at least 3 small commits and meaningful commit messages | :'( |
Utilizes unit tests to verify code; tests can run using the command $ npm test test/adagrams.test.js and we see test successes and/or failures |
✔️ |
Functional Requirements
| Functional Requirement | yes/no |
|---|---|
For the drawLetters function, there is an appropriate data structure to store the letter distribution. (You are more likely to draw an 'E' than an 'X'.) |
|
Utilizes unit tests to verify code; all tests for drawLetters and usesAvailableLetters pass |
✔️ |
Utilizes unit tests to verify code; all tests for scoreWord pass |
✔️ |
Utilizes unit tests to verify code; all tests for highestScoreFrom pass |
✔️ |
Overall Feedback
| Overall Feedback | Criteria | yes/no |
|---|---|---|
| Green (Meets/Exceeds Standards) | 5+ in Code Review && 3+ in Functional Requirements | |
| Yellow (Approaches Standards) | 4+ in Code Review && 2+ in Functional Requirements, or the instructor judges that this project needs special attention | ✔️ |
| Red (Not at Standard) | 0-3 in Code Review or 0,1 in Functional Reqs, or assignment is breaking/doesn’t run with less than 5 minutes of debugging, or the instructor judges that this project needs special attention |
| for (let i = 0; i < 10; i++) { | ||
| let letter = letterDistribution.pickRandomLetter(); | ||
|
|
||
| while(letterDistribution[letter] === 0) { | ||
| letter = letterDistribution.pickRandomLetter(); | ||
| } | ||
|
|
||
| lettersDrawn.push(letter); | ||
| letterDistribution[letter] -= 1; | ||
| } | ||
|
|
||
| return lettersDrawn; | ||
| }, |
There was a problem hiding this comment.
This doesn't actually create a weighted distribution. You are essentially picking from a pile 26 options, and then reducing the number of times that someone can draw that letter, which is mathematically different than having a pile that has a hundred or so tiles and just one 'Q'.
There was a problem hiding this comment.
Oh no... >_< I'm not sure I understand what you mean or what I should have done differently to use weighted distribution. I am googling its meaning~! Are you saying I should rename my variables or change my function???
There was a problem hiding this comment.
Ok, so should I have made an object with the total amount of tiles for the all the letters and then give each letter a unique number.. like instead of {A:9, B:2} for a total of 11 tiles, should I have done {A:1, A:2, A:3...B:10, B:11}???
| let allLettersIncluded = true | ||
|
|
||
| for(let letter of input){ | ||
| if (lettersInHand.includes(letter)){ | ||
| let letterToRemove = lettersInHand.indexOf(letter); | ||
| lettersInHand.splice(letterToRemove, 1) | ||
| } else { | ||
| allLettersIncluded = false; | ||
| break; | ||
| } | ||
| } | ||
| return allLettersIncluded | ||
| }, |
There was a problem hiding this comment.
You're about 50/50 for semicolons in this function.
| let allLettersIncluded = true | |
| for(let letter of input){ | |
| if (lettersInHand.includes(letter)){ | |
| let letterToRemove = lettersInHand.indexOf(letter); | |
| lettersInHand.splice(letterToRemove, 1) | |
| } else { | |
| allLettersIncluded = false; | |
| break; | |
| } | |
| } | |
| return allLettersIncluded | |
| }, | |
| let allLettersIncluded = true; | |
| for(let letter of input){ | |
| if (lettersInHand.includes(letter)){ | |
| let letterToRemove = lettersInHand.indexOf(letter); | |
| lettersInHand.splice(letterToRemove, 1); | |
| } else { | |
| allLettersIncluded = false; | |
| break; | |
| } | |
| } | |
| return allLettersIncluded; | |
| }, |
Assignment Submission: JS Adagrams
Congratulations! You're submitting your assignment. Please reflect on the assignment with these questions.
Reflection