11.2.4. Разбор сценария

Начнем с команды BODY.

<body bgcolor="white" onLoad="rand()">

На этот раз функция запускается не событием onClick в описании кнопки, а событием onLoad в команде BODY. В этом случае к тому времени, когда пользователь нажмет кнопку, число уже будет выбрано. Если сделать это по-другому, то каждый раз, нажимая на кнопку, вы будете получать новое случайное число. А оно должно оставаться одним и тем же, пока вы пытаетесь угадать.

Теперь первая функция:

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("Нет. Попробуй еще раз.");

    }

В памяти компьютера уже есть число, полученное через первую функцию. Вторая дает возможность угадать его. Смотрите, что происходит:

1.С помощью запроса prompt создается переменная guess (догадка). Функция eval() вычисляет или выполняет строку в скобках (выражение, команду или последовательность команд) и подставляет полученное значение вместо себя. Она не является методом какого-либо объекта, но может использовать свойства уже существующего. Обратите внимание на {фигурные скобки}. Все это очень похоже на Урок 21.

2.Переходим к IF/Else. Если ( if ) guess (догадка) равна загаданному числу num, тогда запускается команда alert("ПРАВИЛЬНО").

3.Если это не так ( else ), тогда запускается другая команда alert.

Остальное уже знакомо:

<form name="myform" action="">

<input type="button" value="Угадай" name="b1" onClick="guessnum()">

</form>

Кнопка запускает функцию, которая дает возможность угадать задуманное число.