Javascript Java脚本刽子手游戏问题
我一直在为一个类的项目开发一个使用HTML模板和javascript的hangman游戏 我目前遇到了一些问题。 1.我正在使用一个数组来调用错误猜测的图片,以便在绞刑架上为尸体添加部分。当发生4次错误猜测时,仅显示图片4。 2.我还有一个问题,就是只有某些单词的按钮才决定实际工作,而字母“o”永远不会工作 任何帮助都将不胜感激Javascript Java脚本刽子手游戏问题,javascript,arrays,Javascript,Arrays,我一直在为一个类的项目开发一个使用HTML模板和javascript的hangman游戏 我目前遇到了一些问题。 1.我正在使用一个数组来调用错误猜测的图片,以便在绞刑架上为尸体添加部分。当发生4次错误猜测时,仅显示图片4。 2.我还有一个问题,就是只有某些单词的按钮才决定实际工作,而字母“o”永远不会工作 任何帮助都将不胜感激 <!DOCTYPE HTML> <html> <head> <title>Hangman</title> &
<!DOCTYPE HTML>
<html>
<head>
<title>Hangman</title>
<meta charset="utf-8">
<script type="text/javascript" language="JavaScript">
var NumberOfChances;
var theWord = "",oldString="";
var currentGuessed = "";
var value="";
var words = new Array();
words[0]="No strings attached";
words[1]="Never look back";
words[2]="Happy birthday";
words[3]="Against all odds";
words[4]="Break a leg";
words[5]="Off the beaten path";
words[6]="Good old days";
words[7]="Gold rush";
words[8]="Happy camper";
words[9]="Grin from ear to ear";
words[10]="Live long and prosper";
words[11]="Quartz watch";
words[12]="Jumping jacks";
words[13]="Income tax";
var image = new Array();
image[0] = '<img src="image0.jpg" align ="left" width="415" height="496">';
image[1] = "<img src='image1.jpg' align ='left' width='415' height='496'>";
image[2] = '<img src="image2.jpg" align ="left" width="415" height="496">';
image[3] = '<img src="image3.jpg" align ="left" width="415" height="496">';
image[4] = '<img src="image4.jpg" align ="left" width="415" height="496">';
image[5] = '<img src="image5.jpg" align ="left" width="415" height="496">';
image[6] = '<img src="image6.jpg" align ="left" width="415" height="496">';
NumberOfChances = image.length;
function swap(image)
{
document.getElementById("images").src =image+".gif";
}
var usedLetters = new Array();
function secretWord()
{
debugger
theWord = words[Math.floor(Math.random()*51)];
for (i=0; i<theWord.length; i++)
{
currentGuessed = currentGuessed + "*";
}
document.getElementById("secretWord").value = currentGuessed;
debugger
}
function gameProcess()
{
currentGuessed ="";
secretWord();
NumberOfChances=0;
document.getElementById("lives").value = NumberOfChances;
startImage = image[0];
}
function turn(letterGuessed)
{
debugger
value = oldString = "";
var correctGuess = false;
for (i=0; i<theWord.length; i++)
{
if (theWord.charAt(i) == letterGuessed)
{
value = value + letterGuessed;
currentGuessed = currentGuessed.replace(oldString + "*",value);
oldString = value;
correctGuess=true;
}
else
{
if(currentGuessed.charAt(i) == "*")
{
value = value + '*';
oldString = oldString + "*";
}
else
{
value = value + currentGuessed.charAt(i);
oldString = oldString + currentGuessed.charAt(i);
}
}
}
if (!correctGuess)
{
NumberOfChances++;
swap("image" + NumberOfChances );
if (NumberOfChances==6)
{
alert("You Lost!");
document.getElementById("secretWord").value = theWord;
theWord = "";
currentGuessed = "";
}
document.getElementById("lives").value = NumberOfChances;
if(correctGuess != 0)
{
takeChance();
}
}
win();
}
function win()
{
var winCount = 0;
for(var i = 0;i<theWord.length;i++)
{
if(currentGuessed.charAt(i) == "*")
{
winCount++;
}
document.getElementById("secretWord").value = currentGuessed;
}
if(winCount == 0 && currentGuessed != "")
{
alert("yay, you win!");
}
}
</script>
</head>
<body>
<H1>Lets play Hangman</H1>
<form name="userGuessForm" id="form1">
<div id="Image"><img src="image0.gif" align ="left" width="415" height="496" id="images"/></div>
<div id="wordDisplay"></div>
This is the Secret Word<br /><input id="secretWord" type="text" value="currentGuessed" />
<br />
<input id="letters" type="button" name="a" value="a" onClick="turn('a');">
<input id="Button1" type="button" name="b" value="b" onClick="turn('b');">
<input id="Button2" type="button" name="c" value="c" onClick="turn('c');">
<input id="Button3" type="button" name="d" value="d" onClick="turn('d');">
<input id="Button4" type="button" name="e" value="e" onClick="turn('e');">
<input id="Button5" type="button" name="f" value="f" onClick="turn('f');">
<input id="Button6" type="button" name="g" value="g" onClick="turn('g');">
<input id="Button7" type="button" name="h" value="h" onClick="turn('h');">
<input id="Button8" type="button" name="i" value="i" onClick="turn('i');">
<input id="Button9" type="button" name="j" value="j" onClick="turn('j');">
<input id="Button10" type="button" name="k" value="k" onClick="turn('k');">
<input id="Button11" type="button" name="l" value="l" onClick="turn('l');">
<input id="Button12" type="button" name="m" value="m" onClick="turn('m');">
<input id="Button13" type="button" name="n" value="n" onClick="turn('n');">
<input id="Button14" type="button" name="o" value="o" onClick="turn('o');">
<input id="Button15" type="button" name="p" value="p" onClick="turn('p');">
<input id="Button16" type="button" name="q" value="q" onClick="turn('q');">
<input id="Button17" type="button" name="r" value="r" onClick="turn('r');">
<input id="Button18" type="button" name="s" value="s" onClick="turn('s');">
<input id="Button19" type="button" name="t" value="t" onClick="turn('t');">
<input id="Button20" type="button" name="u" value="u" onClick="turn('u');">
<input id="Button21" type="button" name="v" value="v" onClick="turn('v');">
<input id="Button22" type="button" name="w" value="w" onClick="turn('w');">
<input id="Button23" type="button" name="x" value="x" onClick="turn('x');">
<input id="Button24" type="button" name="y" value="y" onClick="turn('y');">
<input id="Button25" type="button" name="z" value="z" onClick="turn('Z');"><br />
Number of Tries (6): <input id="lives" type="text" value="0" onfocus="lives.blur();" SIZE=2>
<input type="button" name="submit" value=" Start Over " onClick="gameProcess()">
<input type="button" name="end" value=" END " onClick="gameEnd()"><br />
</form>
</body>
</html>
刽子手
var机会数;
var theWord=“”,oldString=“”;
var currentGuessed=“”;
var值=”;
var words=新数组();
字[0]=“无附加字符串”;
字[1]=“永不回头”;
字[2]=“生日快乐”;
词语[3]=“克服一切困难”;
单词[4]=“打断一条腿”;
文字[5]=“不走寻常路”;
单词[6]=“过去的好日子”;
文字[7]=“淘金热”;
单词[8]=“快乐露营者”;
单词[9]=“咧嘴笑”;
字[10]=“长命百岁”;
文字[11]=“石英表”;
单词[12]=“跳跃式千斤顶”;
字[13]=“所得税”;
var image=新数组();
图像[0]='';
图像[1]=“”;
图像[2]='';
图像[3]='';
图像[4]='';
图像[5]='';
图像[6]='';
NumberOfChances=image.length;
功能交换(图像)
{
document.getElementById(“images”).src=image+“.gif”;
}
var usedLetters=新数组();
函数secretWord()
{
调试器
单词=单词[Math.floor(Math.random()*51)];
对于(i=0;i您的图像无法正常工作,因为您将数组用作字符串
document.getElementById("images").src =image+".gif";
应该是
document.getElementById("images").src ="image"+NumberOfChances+".gif";
否则,您要做的就是获取所有图像的html并将其设置为图像的src属性
<img src="<img src="image0.jpg" align ="left" width="415" height="496">, <img src="image1.jpg" align ="left" width="415" height="496">, <img src="image2.jpg" align ="left" width="415" height="496">..." id="images"> This isn't what you want!
这似乎表明你的单词少于51或50个
在你的letterGuessed函数中,我认为你没有完全掌握for循环的概念。你似乎在想,每次调用函数时都会发生一个新的迭代,但事实并非如此。相反,每次使用你猜到的一个字母调用函数时,for循环会遍历整个单词。因此,除非每个si单词中的单个字母是o,如果你猜到了字母o,单词中的每个o都会得到一分,而不是o的每个字符都有-1次机会,这不是你想要的。放弃for循环,每次函数运行时都使用i++即可
function swap(image)
{
document.getElementById("images").src =image+".gif";
}
尝试将gif更改为jpg
if (!correctGuess)
{
NumberOfChances++;
swap(image[NumberOfChances]);
if (!correctGuess)
{
NumberOfChances++;
swap(image[NumberOfChances]);