2017-03-27 4 views
0

私はハングマンゲームを作成していますが、プログラムを実行すると正しい推測が上書きされます... 関数のコードはここに表示されます以前の値を上書きせずに、推測された文字を配列 "letterBoxes"に格納しますか?以前の推測された文字を上書きせずに配列に値を格納

// Globala variabler 
var wordList; 
var selectedWord; på 
var letterBoxes; 
var hangmanImg; 
var hangmanImgNr; 
var msgElem; 

function init() { 
var i; 
var startGameBtn; 
var letterButtons; 
wordList = 


["BLOMMA","LASTBIL","SOPTUNNA","KÖKSBORD","RADIOAPPARAT","VINTER","SOMMAR","DATORMUS","LEJON","ELEFANTÖRA","JULTOMTE", 
      "SKOGSHYDDA","BILNUMMER","BLYERTSPENNA","SUDDGUMMI","KLÄDSKÅP","VEDSPIS","LJUSSTAKE","SKRIVBORD","ELDGAFFEL","STEKPANNA", 
      "KASTRULL","KAFFEBRYGGARE","TALLRIK","SOFFBORD","TRASMATTA","FLYGPLAN","FLYGPLATS","TANGENTBORD"]; 

hangmanImg = document.getElementById("hangman"); 
msgElem = document.getElementById("message"); 
startGameBtn = document.getElementById("startGameBtn"); 
document.getElementById("startGameBtn").onclick = startGame; 
letterButtons =  
document.getElementById("letterButtons").getElementsByTagName("button"); 
for (i = 0; i < letterButtons.length; i++) letterButtons[i].onclick = 
guessLetter;//anrop av funktionen guessLetter 

} // End init 
window.onload = init; // Se till att init aktiveras då sidan är inladdad 


function startGame() { 

randomWord(selectedWord); //ok 
showLetterBoxes(letterBoxes); 
hangmanImg = "pics/h1.png"; //byt till h0.png när koden är klar 
document.getElementById("hangman").src = hangmanImg; 
hangmanImgNr = 0; //ok! 
} 
funktion skapa slumpat ord OK 
function randomWord() { 
var wordIndex; 
wordIndex = parseInt(Math.random() * 29); 
selectedWord = wordList[wordIndex]; 
alert(selectedWord); 
} 

function showLetterBoxes() { 
var i; 
var newCode; 

newCode = ""; 
for (i = 0; i < selectedWord.length; i++) { 
    newCode += "<span>&nbsp;</span>"; 
} 

document.getElementById("letterBoxes").innerHTML = newCode; 

document.getElementById("letterButtons").getElementsByTagName("value").innerHTML; 
} 
+0

が機能していないまだ完全なコード –

答えて

1

letterBoxesは配列です。

あなたは+を使用しないで、プッシュ機能を使用します。

letterBoxes.push("<span>" + letter + "</span >"); 

letterBoxes.push("<span>*</span>"); 
0

あなたはそれはあなたがコードを実行するたびに上書きされます、他の関数の外であなたの変数letterBoxesを宣言する必要があります。あなたはそれが配列であることを示すletterBoxes = []と宣言しましたが、コード内の文字列として使用します。

これを試してみてください:

letterBoxes = ''; 

function guessLetter() 
{ 
var letter; 
var i; 

var letterFound;//flagga 
var correctLettersCount;//korrekta bokstäver 
correctLettersCount; //sätt antal rätt bokstäver till 0 

letter = this.value; 
for (i = 0; i < selectedWord.length; i++) { 


    if (selectedWord.charAt(i) == letter) { 
     letterBoxes += "<span>" + letter + "</span >"; 

     } 
    else{ 
     letterBoxes += "<span>*</span>"; 
    } 


    } 
    document.getElementById("letterBoxes").innerHTML = letterBoxes; 
} 
+0

を追加... –

+0

は、次の行を削除したレターボックス= [];あなたのコードから? –

+0

はい、変更されたletterBoxes.push( "" +文字+ ""); –

関連する問題