Я только начинаю изучать, как использовать javascript, и у меня есть несколько проблем с моим кодом. Нас просят сделать игру палача, и я разработал необходимый код, чтобы сделать "правильное" письмо и "неправильные" циклы писем. Однако мне нужен мой код для отображения символов звездочки, а не ящиков, в которые входят буквы. Мне также нужно, чтобы он поздравил пользователя, когда он правильно догадался об этом слове. Я предполагаю, что проще всего было бы заставить его "предупредить" пользователя. Эта часть не требуется, но я также хотел бы знать, как добавить изображения "палача" в код. Так скажите, что пользователь догадывается о неправильном письме, а затем строит палача из изображений.
Я знаю, что я много прошу, но вместо звездочек появляется звездочка, и предупреждение - это то, что я действительно ищу. Любая помощь будет оценена по достоинству.
Это мой 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);
// ...
A <span>
может быть <span id="letters">* * * *</span>
и может быть адресован с помощью:
var letters = document.getElementById('letters'),
chars = letters.textContent.split(' ');
chars[2] = 'X'; // change the third * to the letter X
letters.textContent = chars.join(' ');
<H1><bold><center> Hangman Program</h1>
где<bold>
будет продолжать применяться к тому, что следует за<h1>
. Точно так же в конце вашего html вы снова закрываете</head>
после закрытия</body>
, но это должно быть<html><head></head></body></body></html>
. Чистый HTML значительно облегчает работу с JavaScript.<input>
vs<span>
для элементов, с которыми пользователю не нужно взаимодействовать. Обратите внимание, что центр для<h1>
перемещен в .css