我是编码的新手,我正在玩一个人的Hangman游戏代码。我决定改变银行这个词,成为各种歌曲的名字。我认为如果这首歌在正确猜测之后播放会很酷,但我不确定如何编码。
当然我会声明并设置变量: var stayinAlive =新音频(/assets/sounds/stayingalive.mp3);
实际上代码该实例,我认为这将是使用if循环的行,例如:
if (selectableWords == "stayinalive") {
stayinAlive.play();
}
else if {
(selectableWords == "dancingqueen") {
dancingQueen.play();
当然,该代码不起作用。我不认为我正在链接正确的变量(selectableWords),我也不确定我会把这段代码放在哪里(我猜它可能与checkWin()函数有关? )
以下是我正在使用的一些javascript:
'use strict';
var selectableWords =
[
"stayinalive",
"dancingqueen",
];
const maxTries = 10;
var guessedLetters = [];
var currentWordIndex;
var guessingWord = [];
var remainingGuesses = 0;
var hasFinished = false;
var wins = 0;
var losses = 0;
// Game sounds
var stayinAlive = new Audio('./assets/sounds/stayinalive.mp3');
var dancingQueen = new Audio('./assets/sounds/dancingqueen.mp3');
function resetGame() {
remainingGuesses = maxTries;
currentWordIndex = Math.floor(Math.random() * (selectableWords.length));
稍后在代码中......
function checkWin() {
if(guessingWord.indexOf("_") === -1) {
document.getElementById("youwin-image").style.cssText = "display: block";
document.getElementById("pressKeyTryAgain").style.cssText= "display: block";
wins++;
hasFinished = true;
}
};
function checkLoss() {
if(remainingGuesses <= 0) {
document.getElementById("gameover-image").style.cssText = "display: block";
document.getElementById("pressKeyTryAgain").style.cssText = "display:block";
losses++
hasFinished = true;
}
}
答案 0 :(得分:2)
有更好的方法。您可以将变量映射为correctAnswer:“songPath”。该代码的示例如下:
{{1}}
编辑:这是一个教程,可以帮助您更好地理解和学习这个原则:http://pietschsoft.com/post/2015/09/05/JavaScript-Basics-How-to-create-a-Dictionary-with-KeyValue-pairs
答案 1 :(得分:2)
var selectableWords =
[
"stayinalive",
"dancingqueen",
];
表示包含可能的单词选择的单词数组,而不是当前猜到的单词。
if (selectableWords == "stayinalive") {
stayinAlive.play();
}
else if {
(selectableWords == "dancingqueen") {
dancingQueen.play();
这里的 selectableWords仍然分配给["stayinalive", "dancingqueen"]
您需要将这些常数与当前单词进行比较。
currentWordIndex = Math.floor(Math.random() * (selectableWords.length));
在随机选择的可选单词数组中可以找到当前单词的数字。
您可以通过数字索引https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
访问数组的值在你的例子中
selectableWords[0]
的值为stayinalive
和
selectableWords[1]
的值为dancingqueen
您可以使用当前索引获取当前单词。
selectableWords[currentWordIndex]
会为您提供单词的名称。
所以,你可以做到
if (selectableWords[currentWordIndex] == "stayinalive") {
stayinAlive.play();
}
但是,这很快就会失控,因此使用其他数据结构(例如@someRandomSerbianGuy的答案)将为您提供更长久的可维护代码。