-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
Description
Hangman
Here are the rules:
- The computer selects a word at random from a wordbank and shows the user a "blanked" version using underscores
- The user can make 8 guesses.
- If the user guess correct, print the word with underscores for unguessed letters and the actual letters for correctly guessed letters.
- If the user guesses incorrect, print the number of guesses left
Bonus: use jQuery (sample code that may help with the bonus: https://gist.github.com/coolaj86/5905472)
Hints
This should be the output if the word is watermelon and I have guessed ["e", "m", "l"]:
_ _ _ e _ m e l _ _
This should be the output if I guess incorrectly for the 5th time:
3 guesses left!
- get it working in the console before you add jQuery events
Console
At the end you should have a function guess that accepts a single letter.
Each time guess is called it should be printing out either the number of guesses remaining or the correctly guessed words.
- Don't worry about inputs, just follow these steps. We'll add inputs later with jQuery
- Focus on just 1 word to start. Worry about the wordbank array later.
- How can I iterate over the word? BIG HINT: The string
.split('')method will come in handy - Focus on just 1 guessed letter. How can you use
console.log()to show a modified copy of the string that only contains the letters in the guessed letter? - What if you had just 2 letters? How can you show a modified copy of the string that has both of the letters guessed?
- Now create an array of guesses. Create an array of guesses. Use
forEachto iterate over each guess. - How many guesses does the user get when they start? How can you keep track of how many attempts have failed?
- Modify your forEach loop to keep track of how many guesses are left.
- Modify your forEach loop to be a while loop that uses
prompt
jQuery
Start with this template:
function main() {
var $ = window.jQuery
;
/* copy your console code here (the stuff inside of main) */
}
window.jQuery(main);- create a
<button type="button" class="js-make-guess"></button> - assign a
clickhandler tojs-make-guessthat gets prints something to the screen - create an
<input class="js-letter" />and get it's value with jQuery - modify the button handler so that it prints out the input's value
- modify the button handler so that it calls
guessand passes in the input's value - modify the original code so that it returns a string instead of using console.log
- create a
<div class="js-message"></div>and use jQuery's.text()method to show the message in the browser