Разбор
скрипта
- Начнем со строки BODY:
<body bgcolor="хххххх"
onLoad="rand()">
На этот раз функция запускается не кнопкой через onClick, а командой onLoad,
чтобы к тому времени, когда пользователь нажмет
на кнопку, число уже было выбрано. Если сделать
это, как в прошлом уроке, то каждый раз, нажимая на
кнопку, вы будете получать новое число. А оно
должно оставаться одним и тем же, пока вы гадаете.
- Первая функция:
function rand() {
now=new Date()
num=(now.getSeconds())%10
num=num+1
}
Функция выбирает наугад число от 0 до 9 и привязывает его к num. Потом
прибавляет к num единицу, чтобы выбор
осуществлялся между 1 и 10. Мы делали это на прошлом уроке.
- Вторая функция:
function guessnum()
{guess=prompt("Угадай, какое?")
if (eval(guess) == num)
{alert("ПРАВИЛЬНО!!!")
rand()
}
else
alert("Нет. Попробуй еще раз.")
}
Этот фрагмент написала Эндри, потому что она очень умная. В памяти
компьютера уже есть число, полученное через
первую функцию. Вторая дает вам возможность
угадать его. Смотрите, что происходит:
- С помощью запроса создается
переменная guess (догадка).
Функция eval() вычисляет или выполняет строку в скобках (выражение, команду
или последовательность команд) и подставлает полученное значение
вместо себя. Она не является методом какого-либо объекта, но может
использовать свойства уже существующего. В данном случае переводит текст, полученный с помощью
запроса, в нашу функцию для последующей обработки.
Обратите внимание на {фигурные скобки}. Все это
очень похоже на Урок 21.
- Переходим к IF/Else. Если (if) guess (догадка) равна
загаданному числу num, тогда запускается команда
alert("ПРАВИЛЬНО").
- Если это не так, а иначе (else), тогда запускается другая
команда alert.
- Это вам уже знакомо:
<form name="myform">
<input type="button" value="Угадай"
name="b1" onClick="guessnum()">
</form>
Кнопка запускает функцию, которая дает возможность угадать задуманное
число.
Придется вам
постараться! Измените сегодняшний скрипт так,
чтобы при неверной догадке он сообщал
пользователю, что он назвал слишком большое или
слишком маленькое число.
Подсказка! В этом случае возможны только три решения: слишком много,
слишком мало или правильно. Подумайте вот о чем:
нужна ли вам команда Else или сойдет и парочка
дополнительных If?
Возможный ответ здесь |
|