- 1
[color=green][s][u][b][size=20]ДАВАЙТЕ ФЛУДИТЬ И ТРОЛЛИТЬ[/size][/color][/b][/u][/s]
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
[color=green][s][u][b][size=20]ДАВАЙТЕ ФЛУДИТЬ И ТРОЛЛИТЬ[/size][/color][/b][/u][/s]
ДАВАЙТЕ ФЛУДИТЬ И ТРОЛЛИТЬ
Да здравствует говнокодик!
Совсем недавно произошло знаменательное событие: PVS-Studio появился в Compiler Explorer! Теперь вы можете быстро и легко проанализировать код на наличие ошибок прямо на сайте godbolt.org (Compiler Explorer):
https://www.viva64.com/ru/b/0747/
Универсальные способы получения первого элемента массива:
1. PHP >= 7.3:
2. PHP < 7.3:
3. Если не хочется использовать стрёмную функцию reset, но и хочется обеспечить совместимость:
Домашнее задание: придумать другие способы. There is more than one way to screw it up.
А в «PHP7» наконец-то появилось расширение с реализациями привычных структур данных:
https://www.php.net/manual/ru/book.ds.php
> У тебя тесты есть?
Смешно )
Ещё задача интересная нужна. Одно дело когда во время набега стертора по-быстрому пилишь фильтр, и совсем другое - потом всё это говнище поддерживать и баги фиксить.
Угадай, что выведет такая программа:
Спойлер: https://ideone.com/4h6YgB
А теперь ответ: плавающий питух округляется до целого, строковый ключ по возможности приводится к числовому. Ключи '1e5' и '0xf' останутся строками, хотя бы тут можно не волноваться. И даже '010' останется строкой, хотя '10' будет приведён к числу.
Правда, всё логично?
http://git.php.net/?p=php-src.git;a=blob;f=Zend/zend_hash.c
Может только тут так. На компе тоже очень давно играл.
Игру помню. Помню даже две матерные переделки. В одной из них: «Представляю мудаков. Первый мудак — Сова, второй мудак — Пятачок, а третий мудак — это Вы».
Ещё шестнадцатеричный редактор был в «Norton diskedit» из «Утилит Нортона». Он умел редактировать диск как блочное устройство плюс там были средства для парсинга FAT плюс он умел редактировать отдельные файлы.
Из «VC»/«NC» править нужно было очень осторожно, чтобы не изменить длину файла, иначе распидорасит, потому что где-то джамп будет в пустоту.
1. Игра могла поддерживать цвета только определённой битности. Например, в игре 4 бита на цвет, а ты попытался подсунуть картинку с 8-битным цветом.
2. Игра могла работать с фиксированной палитрой, зашитой в игру. Ты отредактировал картинку под свою палитру, а игра её проигнорировала, и при интерпретации все цвета поменялись.
3. Игра могла не поддерживать сжатие (некоторые форматы допускают сжатие, например, «BMP» можно зожать алгоритмом мухи «RLE»).
4. Игра могла быть рассчитана на определённую ширину картинки (она может игнорировать ширину, указанную в файле, перенося строки через фиксированное количество пикселей).
У BMP нумерация строк снизу вверх: первой выводится самая нижняя строка.
Были ещё форматы с «чересстрочной развёрткой», чтобы в случае медленной загрузки был эффект «постепенного проявления».
*****
Сейчас мы привыкли к тому, что почти любая программа, умеющая выводить картинки, тащит в зависимостях «libjpeg», «libpng» и прочую питушню, которая, может быть, за всё время работы программы понадобится полтора раза. А в играх прошлого века это было непозволительной роскошью (надо было уложиться в небольшой размер оперативки, а также добиться быстрой загрузки на слабых машинах), поэтому в гейдеве изобретали упрощённые загрузчики картинок, которые полагались на определённые значения некоторых параметров.