Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在hangman游戏js更新中显示提示模式_Javascript - Fatal编程技术网

Javascript 在hangman游戏js更新中显示提示模式

Javascript 在hangman游戏js更新中显示提示模式,javascript,Javascript,现在,在实现提示模式后,猜测部分不起作用,这意味着我无法猜测字母。这意味着生命不会减少,任何人都不可能赢或输。提示模式非常有效 function setup() { alphabet = "abcdefghijklmnopqrstuvwxyz"; lives = 8; var words = ["ayeupmeducks", "pieceofcake", "bullinachinashop", "hangfire","greeneyed

现在,在实现提示模式后,猜测部分不起作用,这意味着我无法猜测字母。这意味着生命不会减少,任何人都不可能赢或输。提示模式非常有效

      function setup() {
      alphabet = "abcdefghijklmnopqrstuvwxyz";
      lives = 8;
      var words = ["ayeupmeducks", "pieceofcake", 
     "bullinachinashop", "hangfire","greeneyedmonster", 
     "hairraising","bringhomethebacon","adiamondintherough","onceinabluemoon",
     "afootinthedoor","bitethebullet"];

    messages = {
        win: 'Congratulations you have won the game of Hangman!',
        lose: 'You have been Hanged !!',
        guessed: ' already guessed, please try again...',
        validLetter: 'Please enter a letter from A-Z'
    };

      var getHint = document.getElementById("hint");
      var showClue = document.getElementById("clue");
      getHint.onclick = function() {
      hints = ["Stoke Greeting","Saying Something is Easy",
               "Very Clumsy","delaying something for a minute", 
               "When you are jealous of something",
              "Something is frightening", "Earn Money", 
              "Rough Exterior however has some potential", 
              "When something rarely happens", 
              "When you have succeeded/ getting yourself known by a company",
              "accepting something , when you do not want to"];

    var hintIndex = words
    showClue.innerHTML = "Clue: - " +  hints [idx];};

    gussedLetter = matchedLetter = '';
    numberofMatchedLetters = 0;
    var idx = Math.floor(Math.random() * words.length);
    var currentWord = words[idx];
    output = document.getElementById("output");
    message = document.getElementById("message");
    guessInput = document.getElementById("letter");
    message.innerHTML = 'You have ' + lives + ' lives remaining';
    output.innerHTML = '';
    document.getElementById("letter").value = '';

    guessButton = document.getElementById("guess");
    guessInput.style.display = 'inline';
    guessButton.style.display = 'inline';

    letters = document.getElementById("letters");
    letters.innerHTML = '<li class="current-word">Current word:</li>';
    var letter, i;
    for (i = 0; i < currentWord.length; i++) {
        letter = '<li class="letter letter' + currentWord.charAt(i).toUpperCase() + '">' + currentWord.charAt(i).toUpperCase() + '</li>';
        letters.insertAdjacentHTML('beforeend', letter);
    }
}

function gameOver(win) {
    if (win) {
        output.innerHTML = messages.win;
        output.classList.add('win');
    } else {
        output.innerHTML = messages.lose;
        output.classList.add('error');
    } 
    guessInput.style.display = guessButton.style.display = 'none';
    guessInput.value = '';
}

window.onload = setup();

document.getElementById("restart").onclick = setup;

guessInput.onclick = function () {
    this.value = '';
};
document.getElementById('hangman').onsubmit = function (e) {
    if (e.preventDefault) e.preventDefault();
    output.innerHTML = '';
    output.classList.remove('error', 'warning');
    guess = guessInput.value;

    if (guess) {
        if (alphabet.indexOf(guess) > -1) {
            if ((matchedLetter && matchedLetter.indexOf(guess) > -1) || (gussedLetter && gussedLetter.indexOf(guess) > -1)) {
                output.innerHTML = '"' + guess.toUpperCase() + '"' + messages.guessed;
                output.classList.add("warning");
            }
            else if (currentWord.indexOf(guess) > -1) {
                var lettersToShow;
                lettersToShow = document.querySelectorAll(".letter" + guess.toUpperCase());

                for (var i = 0; i < lettersToShow.length; i++) {
                     lettersToShow[i].classList.add("correct");
                }

                for (var j = 0; j < currentWord.length; j++) {
                    if (currentWord.charAt(j) === guess) {
                        numberofMatchedLetters += 1;
                    }
                }

                matchedLetter += guess;
                if (numberofMatchedLetters === currentWord.length) {
                    gameOver(true);
                }
            }
            else {
                gussedLetter += guess;
                lives--;
                message.innerHTML = 'You have ' + lives + ' lives remaining';
                if (lives === 0) gameOver();
            }
        }
        else {
            output.classList.add('error');
            output.innerHTML = messages.validLetter;
        }
    }
    else {
        output.classList.add('error');
        output.innerHTML = messages.validLetter;
    }
    return false;
};
函数设置(){
字母表=“abcdefghijklmnopqrstuvxyz”;
寿命=8;
var words=[“ayeupmeducks”,“pieceofcake”,
“黄金中国店”、“绞刑场”、“绿色之门”,
“养毛”、“熏肉”、“铁线蕨”、“蓝色月亮”,
“前面的”或“咬子弹”];
消息={
胜利:“恭喜你赢得了绞刑游戏!”,
输:“你被绞死了!!”,
猜测:“已猜测,请重试…”,
validLetter:“请输入来自a-Z的字母”
};
var getHint=document.getElementById(“提示”);
var showClue=document.getElementById(“线索”);
getHint.onclick=函数(){
提示=[“斯托克问候”,“说点容易的事”,
“非常笨拙”,“拖延一分钟”,
“当你嫉妒某事时”,
“有些事情很可怕”,“挣钱”,
“但粗糙的外观有一些潜力”,
“当事情很少发生时”,
“当你成功/让公司了解你自己时”,
“当你不想接受某事时,接受它”];
var hintIndex=单词
showClue.innerHTML=“线索:-”+提示[idx];};
gussedLetter=匹配字母=“”;
numberofMatchedLetters=0;
var idx=Math.floor(Math.random()*words.length);
var currentWord=字[idx];
输出=document.getElementById(“输出”);
message=document.getElementById(“消息”);
guessInput=document.getElementById(“字母”);
message.innerHTML='您拥有'+生命+'剩余生命';
output.innerHTML='';
document.getElementById(“字母”)。值=“”;
guessButton=document.getElementById(“猜测”);
guessInput.style.display='inline';
guessButton.style.display='inline';
字母=document.getElementById(“字母”);
letters.innerHTML='
  • 当前单词:
  • ; var letter,我; 对于(i=0;i'+currentWord.charAt(i).toUpperCase()+''; 字母。插入相邻的TML('beforeed',字母); } } 功能游戏结束(win){ 如果(赢){ output.innerHTML=messages.win; output.classList.add('win'); }否则{ output.innerHTML=messages.lose; output.classList.add('error'); } guessInput.style.display=guessButton.style.display='none'; 猜测输入值=“”; } window.onload=setup(); document.getElementById(“重新启动”).onclick=setup; guessInput.onclick=函数(){ 这个值=“”; }; document.getElementById('hangman').onsubmit=function(e){ 如果(e.preventDefault)e.preventDefault(); output.innerHTML=''; output.classList.remove('error','warning'); 猜测=猜测输入值; 如果(猜测){ if(字母表索引of(猜测)>-1){ if((matchedLetter和&matchedLetter.indexOf(guess)>-1)| |(gussedLetter和&gussedLetter.indexOf(guess)>-1)){ output.innerHTML='''''+guess.toUpperCase()+''''+messages.gussed; output.classList.add(“警告”); } else if(currentWord.indexOf(guess)>-1){ var-lettersToShow; lettersToShow=document.queryselectoral(“.letter”+guess.toUpperCase()); 对于(变量i=0;i

    就我所能看到的变量仍然是一样的,所以我不明白为什么会发生错误

    您声明了一个包含数组的数组:

       hints = [
            ["Stoke Greeting","Saying Something is Easy", "Very Clumsy","delaying something for a minute", "When you are jealous of something","Something is frightening", "Earn Money", "Rough Exterior however has some potential", "When something rarely happens", "When you have succeeded/ getting yourself known by a company","accepting something , when you do not want to"]  
             ];
    
    将其更改为简单数组:

    hints = ["Stoke Greeting","Saying Something is Easy", "Very Clumsy","delaying something for a minute", "When you are jealous of something","Something is frightening", "Earn Money", "Rough Exterior however has some potential", "When something rarely happens", "When you have succeeded/ getting yourself known by a company","accepting something , when you do not want to"];
    

    除了数组中的数组问题外,还需要存储索引本身,并使用它来代替单词

    还有输入错误:
    hint.onclick
    应该是
    getHint.onclick

    var words=[“ayeupmeducks”,“Pieceof Cake”,“bullinachinashop”,“hangfire”,“greeneyedmonster”,“Hairraining”,“bringhomethebacon”,“Adimondrough”,“onceinabluemoon”,“Afotenthedor”,“bitethebullet”];
    var idx=Math.floor(Math.random()*words.length);
    var currentWord=字[idx];
    var getHint=document.getElementById(“提示”);
    var showClue=document.getElementById(“线索”);
    getHint.onclick=函数(){
    var Hists=[“斯托克问候”、“说一些简单的话”、“非常笨拙”、“拖延一分钟”、“当你嫉妒某件事时”、“某件事令人害怕”、“挣钱”、“粗糙的外表却有一些潜力”、“当很少发生某件事时”、“当你成功/让公司了解你自己时”,“当你不想接受某事时,接受它”];
    showClue.innerHTML=“线索:-”+提示[idx];