簡體   English   中英

制作一個javascript hangman游戲,我無法將我的函數應用於重復的字母

[英]Making a javascript hangman game and I can't get my function to apply to repeated letters

除非單詞中沒有重復的字母,否則有關腳本的所有內容現在都可以正常運行。 如果是這樣,那么它將僅顯示第一個字母。 例如,如果隨機詞是“ look”,它將顯示為“ lo k”。

不幸的是,這里唯一其他相關的javascript hangman問題是腳本實際上在重復的字母上沒有問題。 供參考: 在javascript hangman游戲中如何處理重復的字母 誰能幫助我解決重復的信件問題? 謝謝!

我的HTML:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script src="js/jquery-1.11.2.min.js"></script>
    <script src="js/jquery-1.11.2.js"></script>
    <link rel="stylesheet" href="css/main.css">
    <title>Hang a Blue Devil</title>
  </head>
  <body>
    <div class="wrapper">

        <h1 class="title">Hangman</h1>
        <h2 class="attempt-title">You have this many attempts left: </h2>

      <ul class="hangman-word">
        <li class="tester"></li>
        <li class="tester"></li>
        <li class="tester"></li>
        <li class="tester"></li>
        <li class="tester"></li>
        <li class="tester"></li>
      </ul>

        <h3 class="hangman-letters"></h3>

      <input class="text-value" type="text" maxlength="1" onchange="setGuess(this.value)">
      <button class="text-button" onclick="checkGuess()"></button>

        <p class="letters-guessed"></p>

    </div>
  </body>
  <script src="js/hangman.js"></script>
</html>

我的JS:

var hangmanWords = [
  "the","of","and","a","to","in","is","you","that","it","he",
  "was","for","on","are","as","with","his","they","I","at","be",
  "this","have","from","or","one","had","by","word","but","not",
  "what","all","were","we","when","your","can","said","there",
  "use","an","each","which","she","do","how","their","if","will",
  "up","other","about","out","many","then","them","these","so",
  "some","her","would","make","like","him","into","time","has",
  "look","two","more","write","go","see","number","no","way",
  "could","people","my","than","first","water","been","call",
  "who","oil","its","now","find","long","down","day","did","get",
  "come","made","may","part"
];

// declared variables

var randomNumber = Math.floor(Math.random() * 100);
var randomWord = hangmanWords[randomNumber];
var underscoreCount = randomWord.length;
var underscoreArr = [];
var counter = randomWord.length +3;
var numberTest = 0;
var lettersGuessedArr = [];


var lettersGuessedClass = document.querySelector('.letters-guessed');
var li = document.getElementsByClassName('tester');
var textValue = document.querySelector('.text-value');
var attemptTitle = document.querySelector('.attempt-title');
var hangmanWordClass = document.querySelector('.hangman-word');
var hangmanLettersClass = document.querySelector('.hangman-letters');

// actions

attemptTitle.innerHTML = "You have this many attempts left: " + counter;
console.log(randomWord);

function setGuess(guess) {
  personGuess = guess;
}

for (i=0;i<underscoreCount;i+=1) {
  underscoreArr.push("_ ");
  underscoreArr.join(" ");
  var underscoreArrString = underscoreArr.toString();
  var underscoreArrEdited = underscoreArrString.replace(/,/g," ");
  hangmanLettersClass.innerHTML = underscoreArrEdited;
}

function pushGuess () {
      lettersGuessedArr.push(personGuess);
      var lettersGuessedArrString = lettersGuessedArr.toString();
      var lettersGuessedArrEdited = lettersGuessedArrString.replace(/,/g," ");
      lettersGuessedClass.innerHTML = lettersGuessedArrEdited;
}

function checkGuess() {
  for (var i=0;i<randomWord.length;i+=1) {
    if (personGuess === randomWord[i]) {
        console.log(personGuess);
        numberTest = i;
        li[i].textContent = randomWord[i];
        i += 20;
        textValue.value= "";
    } else if ((randomWord.length - 1) > i ) {
        console.log("works");
    } else {
        pushGuess();
        counter -= 1;
        attemptTitle.innerHTML = "You have made this many attempts: " + counter;
        textValue.value= "";
    }
  }
};

我的垃圾桶: http : //jsbin.com/dawewiyipe/4/edit

您有一些不屬於您的代碼:

i += 20;

我將其取出,問題就消失了(循環旨在檢查每個字符, +=20中斷了檢查每個字符的過程)

 function checkGuess() { for (var i=0;i<randomWord.length;i+=1) { if (personGuess === randomWord[i]) { console.log(personGuess); numberTest = i; li[i].textContent = randomWord[i]; textValue.value= ""; } else if ((randomWord.length - 1) > i ) { console.log("works"); } else { pushGuess(); counter -= 1; attemptTitle.innerHTML = "You have made this many attempts: " + counter; textValue.value= ""; } } } 

http://jsbin.com/noxiqefaji/1/edit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM