«МК-61s»: графика на текстовом экране
У меня давно вертится в голове идея попробовать вывести графику
Сначала я подумал, что можно было бы воспользоваться инерцией дисплея
Потом я попробовал показывать по восемь символов за раз, быстро чередуя их и отображая полное изображение за четыре кадра. Изображение стало узнаваемым, но очень низкоконтрастным. Чтобы наглядно показать, что получилось, мне пришлось сильно скорректировать уровни изображения в редакторе:
Следующая идея была сложнее: первым проходом показывать максимум общих точек, а последующими — «добивать» оставшиеся, также перепрограммируя символы «на лету». Идея могла бы сработать, тем более, что на фрагменте эталонного изображения Лены Сёдерберг вместо четырёх кадров, по нашим с нейросетью расчётам, потребовалось бы всего три.
В реальности изображение стало чётче, но отображалось полосами. Я попросил нейросеть сделать подстройку частоты кадров и попытался подобрать её, как в старом телевизоре, но всё сильно зависело от того, какой кусочек Лены был на экране. Впрочем, контрастность явно выросла. Пакман тоже стал виден лучше.
Под конец я решил разделить экран на четыре блока по восемь символов по горизонтали и отрисовывать их один за другим. Этот вариант мне понравился меньше остальных, хотя контрастность была самой высокой — блоки слишком сильно мигали.
На добивку я попробовал совместить два последних метода, но ситуацию это, пожалуй, не улучшило, просто экран стал мигать разнообразнее.
Не уверен что мне с этим всем делать, но пока оставил реализацию в экспериментальном режиме.
PHP: что ты такое?
Мне сегодня показали вот такой код и спросили, знал ли я, что так можно. Речь идёт о вызове $this::w00t(). То есть мы используем $this как бы в статическом контексте. Мне бы такое в голову не пришло.
Код ниже, понятное дело, чисто демонстрационный.
Нет, я не знал, но, как ни удивительно, эта конструкция работает! Причём работает уже очень давно — это не свежее веяние: она появилась ещё в версии 5.4!
(new class() {
public function w00t():void {
echo "WHAT THE HELL ARE YOU?\n";
}
public function test():void {
$this::w00t();
}
})->test();Дополнено: работает как эквивалент static, что ожидаемо, конечно.
Троеточие и многоточие
Многие люди путают троеточие и многоточие. Запомнить разницу легко.
Смотрите: это — точка «.». Добавляем ещё одну точку — получаем двоеточие «:», оно всем знакомо. Добавляем ещё одну — получаем троеточие «⋮». Ещё одну — получаем четвероточие «⁞». Ну и так далее.
А «…» — это многоточие.