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 и как работают ее компоненты?