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.