From f858c50a28013719e962e76ff0b0b634945ce059 Mon Sep 17 00:00:00 2001 From: ShivangiRai1310 Date: Fri, 1 Oct 2021 17:34:31 +0530 Subject: [PATCH] 35 - Hangman Project added --- 30DaysOfJavaScript/assets/35.png | Bin 0 -> 50877 bytes 35 - Hangman/index.html | 21 ++++++++ 35 - Hangman/scripts/app.js | 30 +++++++++++ 35 - Hangman/scripts/hangman.js | 66 +++++++++++++++++++++++++ 35 - Hangman/scripts/request.js | 10 ++++ 35 - Hangman/styles.css | 82 +++++++++++++++++++++++++++++++ index.html | 7 +++ 7 files changed, 216 insertions(+) create mode 100644 30DaysOfJavaScript/assets/35.png create mode 100644 35 - Hangman/index.html create mode 100644 35 - Hangman/scripts/app.js create mode 100644 35 - Hangman/scripts/hangman.js create mode 100644 35 - Hangman/scripts/request.js create mode 100644 35 - Hangman/styles.css diff --git a/30DaysOfJavaScript/assets/35.png b/30DaysOfJavaScript/assets/35.png new file mode 100644 index 0000000000000000000000000000000000000000..6d6ed1bba899b6ba54831cc33b26c29e227a9a08 GIT binary patch literal 50877 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 + + + + Hangman + + +
+

HANGMAN

+

Here's your popular word guessing game
Build a missing word by guessing one letter at a time.
After 5 incorrect guesses, the game ends and the player loses.
Correctly identify all the letters of the missing word to win.

+
+
+

+ +
+
+ + + + + \ No newline at end of file diff --git a/35 - Hangman/scripts/app.js b/35 - Hangman/scripts/app.js new file mode 100644 index 00000000..fec27d28 --- /dev/null +++ b/35 - Hangman/scripts/app.js @@ -0,0 +1,30 @@ +let game1 +const puzzleDIV = document.querySelector('#puzzle'); +const remainingDIV = document.querySelector('#guesses'); + +window.addEventListener('keypress', (e) => { + + const guess = String.fromCharCode(e.charCode); + game1.makeGuess(guess); + render() +}) + +const render = () => { + puzzleDIV.innerHTML = '' + remainingDIV.textContent = game1.statusMessage; + + game1.puzzle.split('').forEach((letter) => { + const letterEl = document.createElement('span') + letterEl.textContent = letter + puzzleDIV.appendChild(letterEl) + }) +} + +const startGame = async () => { + const puzzle = await getPuzzle('3') + game1 = new Hangman(puzzle, 5) + render() +} + +document.querySelector('#reset').addEventListener('click', startGame) +startGame() \ No newline at end of file diff --git a/35 - Hangman/scripts/hangman.js b/35 - Hangman/scripts/hangman.js new file mode 100644 index 00000000..56b5cd15 --- /dev/null +++ b/35 - Hangman/scripts/hangman.js @@ -0,0 +1,66 @@ +class Hangman { + constructor(word, remainingGuesses){ + this.word = word.toLowerCase().split(''); + this.remainingGuesses = remainingGuesses; + this.guessedLetters = []; + this.status = 'playing'; + } + + get puzzle() { + let puzzle = ''; + this.word.forEach((letter) => { + if (this.guessedLetters.includes(letter) || letter === ' '){ + puzzle += letter; + } else { + puzzle += '*' + } + }) + return puzzle; + } + + makeGuess (guess){ + guess = guess.toLowerCase(); + const isUnique = !this.guessedLetters.includes(guess); + const isBadGuess = !this.word.includes(guess); + + if (this.status !== 'playing'){ + return + } + + if (isUnique){ + this.guessedLetters.push(guess) + } + + if (isUnique && isBadGuess){ + this.remainingGuesses-- + } + this.calculateStatus(); + } + + get statusMessage(){ + if (this.status === 'playing'){ + return `Guesses left: ${this.remainingGuesses}` + } else if (this.status === 'failed') { + return `Nice try! The word was "${this.word.join('')}" ` + } else { + return 'Great work! You guessed the word right!' + } + } + + calculateStatus(){ + const finished = this.word.every((letter) => this.guessedLetters.includes(letter) || letter === ' ') + + if (this.remainingGuesses === 0){ + this.status = 'failed' + } else if (finished){ + this.status = 'finished' + } else { + this.status = 'playing' + } + } + +} + + + + diff --git a/35 - Hangman/scripts/request.js b/35 - Hangman/scripts/request.js new file mode 100644 index 00000000..58c53ffd --- /dev/null +++ b/35 - Hangman/scripts/request.js @@ -0,0 +1,10 @@ +const getPuzzle = async (wordCount) => { + const response = await fetch(`https://puzzle.mead.io/puzzle?wordCount=${wordCount}`) + if (response.status === 200){ + const data = await response.json() + return data.puzzle + } else { + throw new Error('Unable to fetch puzzle') + } +} + \ No newline at end of file diff --git a/35 - Hangman/styles.css b/35 - Hangman/styles.css new file mode 100644 index 00000000..a21b0557 --- /dev/null +++ b/35 - Hangman/styles.css @@ -0,0 +1,82 @@ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html { + font-size: 62.5%; +} + +#main{ + margin-top: 100px; +} + +body { + background: #19172e; + color: #fafafa; + font-family: Helvetica, Arial, sans-serif; + font-size: 1.6rem; + display: flex; + justify-content: center; + min-height: 100vh; + text-align: center; +} + +span { + border-bottom: 1px solid #534f59; + display: inline-block; + font-size: 2rem; + height: 2.4rem; + line-height: 2.4rem; + margin: 0 .1rem; + text-align: center; + text-transform: uppercase; + width: 2.4rem; +} + +h1{ + color: #976dc4; + font-weight: 600; + font-size: 4rem; +} + +.desc{ + word-wrap: break-word; + max-width: 600px; + margin: 20px auto; + text-align: center; + font-size: 1.7rem; + line-height: 1.5; +} + +p { + font-weight: 300; + margin-bottom: .8rem; +} + +.puzzle { + display: flex; + margin-bottom: 4.8rem; +} + +.puzzle-box{ + margin-top: 150px; + text-align: center; +} + +.button { + background: #7044a0; + border: none; + border-bottom: 2px solid #603a88; + cursor: pointer; + color: white; + font-size: 1.4rem; + font-weight: 300; + padding: .8rem; + transition: background .3s ease, color .3s ease; +} + +.button:hover { + background: #5F3A87; +} \ No newline at end of file diff --git a/index.html b/index.html index b3dcca08..b85f218d 100644 --- a/index.html +++ b/index.html @@ -244,7 +244,14 @@

Virtual Piano

Virtual Piano + +