簡體   English   中英

子手游戲。 2個數組。 一個需要相應地更新到另一個

[英]Hangman game. 2 arrays. One need to update accordingly to the other one

我正在構建一個javascript hangman游戲,而我在這個問題上有些困惑。

假設要猜的單詞是“狗”。 我創建了這個單詞的數組: ["d", "o", "g"]; 對於所選單詞中的每個字母,瀏覽器中的提示(段落的in)都顯示有“-”。 在這種情況下,提示將顯示---

如果用戶是猜測正確的信我想顯示例如提示d--如果字母d被猜中。

我已經根據提示創建了一個數組,並使用dog示例,該數組如下所示: ["-", "-", "-"];

我堅持的是如何在正確的位置用相應的字母更新第二個數組。 該數組應類似於: ["d", "-", "-"]; 然后我可以array.join()並將結果字符串顯示為新提示。

像下面這樣的東西應該可以正常工作。 由於您的answerArraydisplayArray的長度相同,因此您可以簡單地循環遍歷answerArray ,檢查是否有任何匹配項,並將所述匹配項推入displayArray的適當位置。

var answerArray = ["d", "o", "g"],
    displayArray = ["-", "-", "-"],
    length = answerArray.length,
    i;

var currentGuess = prompt("Please enter a letter: ");

for (i = 0; i < length; i++) {

    if(currentGuess === answerArray[i]) {

        displayArray[i] = currentGuess;

    }

}

您有兩個數組:

var word = ["d", "o", "g"];
var guessedWord = ["-", "-", "-"];

字母正確時,您可以執行以下操作:

var idx = word.indexOf("d");
guessedWord[idx] = word[idx];

數組的長度應相同,因此您可以天真地分配值。

真正的基本例子。

http://jsbin.com/qoteqakona/1/edit?js,控制台

var word = 'hello'.split('');

var blanks = word.map(function (e) {
  return '-';
});

function guess(l) {
  word.forEach(function (e, i) {
    if (e === l) blanks[i] = word[i];
  });

  return blanks;
}

console.log(guess('l'));
console.log(guess('h'));
console.log(guess('i'));

.forEach()回調中, e是當前元素的值,而i是當前索引的值。

額外文檔:

暫無
暫無

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

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