gpt4 book ai didi

javascript - 我不太擅长编码,并且我的 Hangman 游戏遇到一些问题

转载 作者:行者123 更新时间:2023-12-02 17:36:35 24 4
gpt4 key购买 nike

我刚刚开始学习如何使用 javascript,我的代码遇到了一些问题。我们被要求制作一个刽子手游戏,我已经开发了必要的代码来使“正确”字母和“错误”字母循环工作。但是,我需要我的代码来显示星号符号,而不是字母所在的框。我还需要它在用户正确猜出单词时祝贺他们。我假设最简单的事情就是让它“提醒”用户。这部分不是必需的,但我还想知道如何将“hangman”图像添加到代码中。假设用户猜错了一个字母,它就会根据图像构建刽子手。

我知道我问了很多,但星号部分而不是方框和警报才是我真正想要的。任何帮助,将不胜感激。

这是我的 html 代码,与我的 javascript 代码一起使用

<html>
<head>
<title>HangmanProgram</title>
</head>
<script src="functions.js"></script>
<body>
<H1><bold><center> Hangman Program</h1>
<h3> The Hangman Game.
<br>
Click Start Game button. Type a letter in the "Guess" box and then click "Guess".
<br>
Click Reset button to play again.
<br>
<br>

<Form name = "hangmanForm">
<input type="button" value="Start Game" onclick="getword()"><br>
<!-- Hidden field for storing answer -->
<input type="hidden" name="answer" value=""/>
<input type="button" value="Guess" onclick="formCheck()">
<input name = "ltr" type="text" size = "1"><br>

<br>The Word is:
<input name = "letterone" type="text" size = "1">
<input name = "lettertwo" type="text" size = "1">
<input name = "letterthree" type="text" size = "1">
<input name = "letterfour" type="text" size = "1">
<BR>
<BR>
Wrong Letters<input name = "wrongletters" type="text" size = "24">
<BR>
<BR>
<input type="reset" value="Reset">
</form>
</head>
</body>
</html>

下面是我的 JavaScript 代码

// Get a random number
function get_random()
{
document.hangmanform.ltr.focus();
var ranword= Math.floor(Math.random()*11);
return ranword;
}

// Fetch the possible words using random number and array of choices
function getword()
{
var userguess=get_random();

var words =new Array(11);
words[0]="note";
words[1]="duck";
words[2]="cake";
words[3]="lake";
words[4]="stop";
words[5]="know";
words[6]="dogs";
words[7]="play";
words[8]="fair";
words[9]="sexy";
words[10]="love";

var answer = words[userguess];

// Set hidden field to answer.
hangmanform.answer.value = answer;

}

function formCheck()
{
// Read answer and decide if guess is in the string.
var answer = hangmanform.answer.value;
var vposition = answer.indexOf(hangmanform.ltr.value);

// If it is not the word, add to wrong letters box.
if (vposition == -1) {
hangmanform.wrongletters.value = hangmanform.ltr.value + " " + hangmanform.wrongletters.value;
}
else {

// Guess in string
switch (vposition) {
case 0:
hangmanform.letterone.value = answer.substring(0,1);
break;
case 1:
hangmanform.lettertwo.value = answer.substring(1,2);
break;
case 2:
hangmanform.letterthree.value = answer.substring(2,3);
break;
case 3:
hangmanform.letterfour.value = answer.substring(3,4);
}

}

// Set form guess box to empty string NOT SPACE
hangmanform.ltr.value ="";
hangmanform.ltr.focus();
}

最佳答案

JavaScript 区分大小写。所以,name , Name ,和NAME被视为不同的标识符,可以同时用于不同的值。

在这种情况下,这意味着对 hangmanform 的每个引用脚本中的(小写)应该是 hangmanForm (camelCase) 以匹配 <form name="hangmanForm"> 使用的大小写.

// ...

function formCheck()
{
// Read answer and decide if guess is in the string.
var answer = hangmanForm.answer.value;
var vposition = answer.indexOf(hangmanForm.ltr.value);

// ...
<小时/>

此外,尽管自动全局变量正在成为标准,但依赖它们仍然不一定是一个好习惯,因为它们仍然可能与全局变量的其他用途发生冲突。

// ...

function formCheck()
{
// Read answer and decide if guess is in the string.
var form = document.getElementsByName('hangmanForm')[0];
var answer = form.answer.value;
var vposition = answer.indexOf(form.ltr.value);

// ...

MDN: getElementsByName()

关于javascript - 我不太擅长编码,并且我的 Hangman 游戏遇到一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22582803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com