我正在製作一款遊戲,每次按下錯誤的按鍵時,我都需要將計數功能減1。當按下錯誤的按鍵時,javascript減計數?
這裏是到目前爲止我的代碼:
var names = ["Adam Red", "Bob Green", "Chris Blue"];
var nameChosen = names[Math.floor(Math.random() * names.length)];
var nameSplit = nameChosen.split("");
var updated = [];
var attempt = nameChosen.length - 2;
function display(char) {
//replace each of the letters with underscore and space with dash
char = char || '_'; // set to default when no char given
var nameDisplayed = [];
for (var i = 0; i < nameSplit.length; i++) {
if (updated[i] || (char.toLowerCase() === nameSplit[i].toLowerCase())) {
nameDisplayed += nameSplit[i];
updated[i] = true;
}
else if (nameSplit[i] == " ") {
nameDisplayed += "- ";
}
else {
nameDisplayed += "_ ";
}
}
document.getElementById("nameDisplay").innerHTML = nameDisplayed;
}
//get key pressed by user
document.addEventListener('keypress', function(evt) {
evt = evt || window.event;
var charCode = evt.keyCode || evt.which;
var charStr = String.fromCharCode(charCode);
display(charStr); // call when typing
});
display(); // call onload
我知道我需要把attempt--
某處循環,但我只能讓它減去字母的所有長度時錯鍵被按下。
例如:如果選擇的名稱是Adam Red
和key z
被按下,則代替attempt = attempt - 1
,它給我attempt = attempt - 7
(Adam Red中的字母總數)。
謝謝你的建議Gurkanat。我會嘗試一下,讓你知道它是否適合我。 – Viet
嗨Gurkanat。我可以使用你的代碼來確保按鍵被允許被按下一次。但是,由於我使用循環來替換帶有下劃線和空格的字母,因此我無法使用checkWin函數。你能幫助我嗎?另外,如果我得到checkLose權利,我怎麼能停止使用更多的新鍵? – Viet