Как стать автором
Поиск
Написать публикацию
Обновить

Тетрис на РНР

Время на прочтение1 мин
Количество просмотров1.9K

Вполне себе пятничная новость. Под впечатлением от фильма "Тетрис", энтузиаст решил написать эту игру на РНР, чтобы попрактиковаться в работе с терминалом.

Получилось неплохо, хотя на по-настоящему терминальную игру не тянет - по SSH на достаточно удалённом сервере ожидаемо мерцает.

Лично для меня код оказался интересным в плане работы с пользовательским вводом в терминале, в частности, функция readline_callback_handler_install(), которая подменяет стандартный механизм ввода. Соответственно, передав в неё пустой callback можно получить "игровой" вариант ввода, когда не требуется подтверждение через Enter. Ну и убрав блокировку потока, получаем неблокирующий ввод:

readline_callback_handler_install('', function() {});
stream_set_blocking(STDIN, false);

Теперь обращения к fgetc() будут сразу возвращать введённый символ, если он был, а скрипт продолжит выполнение.

Теги:
Хабы:
+8
Комментарии12

Другие новости

Ближайшие события