Аргерих Л. О языке РНР. Часть 4. Страница 126


srand((double)microtime() * 1000000); Следующая строка кода фактически генерирует случайное число:

$num = floor(rand(0, $max));

В следующих нескольких строках находится цикл, в котором пользователь вводит значения, пытаясь угадать случайное число:

($i=0; $i<$no_of_guesses; $i++) {

Эта строка получает значения, вводимые пользователем в командной строке:

$guess = readline("Guess: ");

В следующих строках мы обрабатываем неверную догадку пользователя и присваиваем соответствующий текст переменной сообщения. Введенное значение добавляется в буфер памяти readline, чтобы пользователь мог с по­мощью клавиш перемещения курсора увидеть свои предыдущие варианты. Затем снова начинается цикл:

if ($guess > $num) { $message = "Lower"; : } elseif ($guess< Snum) { Smessage = "Higher";

Если угадано правильное значение $num, код входит в блок else. Пользовате­лю выдается сообщение, а для программы устанавливается флаг, что поль­зователь правильно угадал число. Затем цикл for прерывается:

> else :{

echo("\nYou guessed correctly! !\n"); echo("Well done! It took you f,i goes.\n"); $correct = true; break;

}

echo($message. "\n"); readline_add_history($guess);

)

Следующие строки проверяют, правильно ли пользователь отгадал число. Если нет, сообщаем, что количество попыток кончилось:

if($correct != true)

you ran out of

Наконец, спрашиваем пользователя, хочет ли он сыграть еще раз, дожида­ясь в цикле, пока он ответит у или п. Если дан ответ у, то продолжается внешний цикл, а если n, то сценарий завершается:

while(($play != "у')&& ($play != 'п'))

Splay = strtolower(readline( 'Play again? [y/n]'));

) ?>

Это очень простой интерактивный сценарий, но он демонстрирует общие функции расширения. С помощью этого расширения и вложенных циклов можно создавать очень мощные и сложные расширения. Программирование интерактивной командной строки очень отличается от программирования для Интернета — в нем обычно используется множество циклов. Очень по­лезно тщательно соблюдать отступы в коде и помещать комментарий после каждой закрывающей скобки, указывая, какой цикл закрывает скобка и при каких условиях он будет выполняться снова.

Программирование с помощью PHP-GTK

В этом разделе мы обсудим ключевые идеи программирования с помощью PHP-GTK, а затем напишем первую программу - Hello World.

Ключевые понятия PHP-GTK

Как же организована PHP-GTK и как работают ее компоненты?