How do you pass the value inputted from a prompt to a function?

General Tech Bugs & Fixes 2 years ago

0 2 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (2)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

I am creating a hangman game using react and js. After pressing the Guess word button I want to use a prompt box to have the user enter what they think the full word is. However, when I input a word into the prompt box I get "TypeError: Object doesn't support property or method 'checkWholeWord'". I am new to js coding and I really don't know what I am doing wrong here.

import React, { Component } from 'react';
import './App.css';
import words from './words'

class App extends Component {
    //chooses random word
    state = {
        word: words[Math.floor(Math.random() * words.length)],
        guessedLetters: [],
        guessesRemaining: 6
    }

    //pass function to child to update
    updateGuessedLetters(letter){
        if(this.state.guessedLetters.includes(letter)){
            alert('ALREADY TRIED THAT')
        }else{
            this.setState({
                //makes new array with letter
                guessedLetters: [...this.state.guessedLetters, letter]
            })
        }
    }

    //keeps track of how many times wrong letter is entered
    updateGuessesRemaining(letter){
        if(!this.state.guessedLetters.includes(letter) && !this.state.word.split('').includes(letter)){
            this.setState({guessesRemaining: this.state.guessesRemaining -1})
        }
    }
    //fix this function 
    wordIsGuessed(){
        const guessState = this.state.word.split('').map(letter => {
            if (this.state.guessedLetters.includes(letter)){
                return letter
            }
        })
        return guessState.join('') === this.state.word
    }

    //checks if game is over by checking guesses remaining
    gameOver(){
        if(this.state.guessesRemaining <= 1){
            alert('You lose')
        }else if (this.wordIsGuessed()){
            alert('You win!')
        }
    }

    //when someone attempts to guess whole word checks inputted word
    checkWholeWord(wholeWord){
        if (wholeWord===
                                                
                                                
0 views
0 shares
profilepic.png
manpreet 2 years ago
guessWholeWord = (e) => {
        e.preventDefault()
        const wholeWord = prompt ("Guess the word :)")
        if (wholeWord===this.state.word){
            alert('You win!')
        }
    }
    render() {
        return (
          <div className="App">
            <h1>Hangmanh1>
            {this.state.word}
            <DisplayWord word = {this.state.word} guessedLetters={this.state.guessedLetters}/>
            <SubmitGuess updateGameState = { (letter) => this.updateGameState(letter)}/>
            <WrongLetters word={this.state.word} guessedLetters={this.state.guessedLetters}/>
            <form ref="forms" onSubmit={this.guessWholeWord}>
            <button type ="submit">Guess Wordbutton>
            form>
          div> 
    );

0 views   0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.

tuteehub community

Join Our Community Today

Ready to take your education and career to the next level? Register today and join our growing community of learners and professionals.

tuteehub community