22 января 2009
[Поделки]
/bflabs/
Ради интереса решил добавить к BFLabs объекты. Получился Object BFLabs. Теперь каждая ячейка это объект. Она состоит из указателя на класс (ClassType) и ячейки данных (как и ранее это просто байт). Всего классов 26 (по буквам латинского алфавита). В каждом классе есть только один безымянный метод, который может быть вызван. И который в свою очередь может вызвать метод предка. Т.е. присутствует наследование. При этом все классы наследуются от базового безымянного класса, в котором тот самый единственный метод просто очищает ячейку.
Перейти >>
15 января 2009
[Заметки]
/Алгоритмы/
В отличие от алгоритма из первой части, здесь производим не прогрызание проходов, а, наоборот, в чистом поле строим стены. При этом вход и выход строятся сами, а алгоритм построения гарантирует, что между ними всегда будет дорожка.
Также затронут вопрос добавления шаблонных комнат.
Перейти >>
02 декабря 2008
[Поделки]
/bflabs/
Brainfuck (англ.
brain мозг +
fuck) - один из известнейших эзотерических языков программирования, придуман Урбаном Мюллером (
Urban Muller) в 1993 году для забавы.
Данный язык пришелся сразу по душе. Люблю что-нибудь простое, но в тоже время не имеющее ограничений для умственных порывов (одним словом тьюрингова полнота). И практически сразу возникла мысль приспособить язык для рисования лабиринтов, добавив всего несколько операторов и двухпоточность.
В итоге, был разработан язык
BFLabs и написана программа, которая его реализует. На странице программы можно почитать
документацию, а также скачать
BFLabs с набором примеров.
Перейти >>
23 октября 2008
[Заметки]
/PHP, Apache, Web/
Появилась идея, как можно бороться с почтовым спамом. Речь пойдет не об индивидуальной защите, а о новом софте, который будет являться надбавкой к существующим почтовым сервисам.
Идея достаточно простая: хранить адресную книгу, а точнее ее копию, на сервере. А далее создается следующий механизм. Если на почтовый сервер приходит некоторое письмо для клиента, в адресной книге которого отправитель не заведен, то сервер может придержать письмо, направив по обратному адресу запрос на подтверждение отправки. Такое подтверждение может быть представлено, к примеру, в виде капчи (
captcha). Запрос на подтверждение это обычное письмо в определенном формате, внутри которого будут поля, содержащие ссылку на картинку в капчей, адрес, куда отправить введенное
POST-запросом и ссылка на страницу, на которой доступен ввод. Т.е. все что нужно, это перейти по ссылке и ввести изображенное на картинке.
Перейти >>
21 июня 2008
[Заметки]
/Мысли/
В детстве, когда нам все казалось незнакомым, мы подолгу разглядывали простейшие предметы, тем самым, запоминая, как они выглядят. При этом это был как бы сбор информации, который в определенный момент должен бы перейти из количества в качество.
Сначала Егорке показывали кубики и называли предметы, которые на них нарисованы. Через какое-то время, просили его показать что-то, например, телевизор, и он показывал на соответствующий кубик. Потом я ходил с ним на руках и показывал предметы в комнате: это кровать, это комод, это телевизор. В последнем случае слово "телевизор" было тем же, что и при показе картинок на кубиках. Но прошло как минимум еще 2-3 месяца, пока ребенок, показав на телевизор в кубике, не стал поднимать голову и показывать на настоящий телевизор.
Перейти >>
18 июня 2008
[Quake]
Q1SP/Coop
Способ прохождения весьма необычный. Сначала мы оказываемся в небольшой комнате с руной посередине. Берем руну, прыгаем в портал. После надписи
"Loading" (загрузка карты) мы попадаем на эту же карту, но в другое место. Начинаем ее проходить как обычно: ключи, двери, толпы монстров. В конце карты приходим к колодцу. При прыжке в колодец сначала видим надпись
"Only 2 more to go...", а затем статистику прохождения.
После нажатия любой кнопки опять загружается та же самая карта, но при этом опять оказываемся в другом ее месте. Где-то локации остаются такими же, где-то появляются новые проходы, где-то проходы наоборот зарастают. Меняется положение секретов, количество и положение монстров, ящиков с лекарствами и патронами. Меняется направление прохождения карты. В конце доходим до другого колодца. При прыжке в него видим надпись
"Only 1 more to go..." и затем снова статистика. Далее жмем кнопку и получаем еще один вариант карты, в конечном колодце которой, нас ждет надпись
"Map completed".
Перейти >>
22 января 2008
[Поделки]
/mapspl/
В рамках функциональности утилиты появилось дополнительное направление. Теперь можно указывать непосредственно области отсечения сущностей и брашей. Задание областей производится непосредственно либо описанием координат области (три варианта) либо путем подключения
map-файла, из которого берутся браши. Т.е. на полной карте создаем браш как его обычно рисуем для
region (
GtkRadiant) и далее через команду «сохранить выделенные» сохраняем в файл.
Отсечение по области можно использовать как предпроцесс перед компиляцией. Это дает возможность редактировать всю карту, но компилировать только часть. Естественно, компилироваться будет не сама карта, а ее обработанная копия.
Также в версии сделаны всякие мелочи. Полный список изменений ниже.
v1.50 (22.01.2008)
- добавлена команда
rmdpid, удаляющая повторяющиеся индексы
- опция «
-rewrconf» удалена. Вместо нее введена опция «
-y», имеющая противоположный смысл.
- если в параметре опций
de/dse/dae есть символ «
#», то проверяется идентификатор сущности, а не имя класса
- в имени класса и
ID для
de/dse/dae теперь можно использовать символы маски «
*» и «
?»
- в имени текстуры для
dt/dst/ddt/dat теперь можно использовать символы маски «
*» и «
?»
- concat теперь команда по умолчанию. т.е. при слиянии ее можно не указывать
- добавлена опция «
-sc:имя_файла», с помощью которой можно подключить набор правил преобразования
- добавлена опция «
-ba/ea», позволяющая четырьмя способами задавать отсечение брашей и сущностей
Документация обновлена.
Перейти >>
21 декабря 2007
[Поделки]
/mapspl/
Консольная утилита, которая помогает в разбиении
map-файла на части и умеет затем их объединить (все или выборочно). Нужно это, в основном, для больших карт, размер которых тормозит создание карты элементарно из-за долгой компиляции. Также позволяет облегчить разработку карты, создаваемую несколькими людьми.
Принцип работы прост: делаем копию карты, загружаем редактор карт, выбрасываем все, кроме интересующего куска и затем запускаем утилиту, указав файл с куском и копию. Результатом будет являться еще одна карта, которая будет содержать инверсию множества сущностей и брашей от карты с куском. Объединение (опять же утилитой) последних двух даст изначальную карту.
На данный момент поддерживаются только
map-файлы для
Quake 1,2
Здесь лежит подробное описание параметров командной строки и работы утилиты.
Перейти >>
02 декабря 2007
[Заметки]
/Идеи (разгрузка)/
После появления мысли о написании программы по просмотру двоичных файлов решил посмотреть, не разрабатывал ли кто-нибудь подобное. Нашлось два похожих продукта:
WinHex и
Structorian. Данные продукты ориентированные больше на работу с шестнадцатеричным представлением данных с возможностью некоторую часть кода отобразить в виде набора полей. Такой подход меня не устраивает. Связано это с тем, что я ставлю перед собой немного другие задачи.
Основное назначение данной программы я вижу в помощи при написании библиотек по поддержке различных форматов (как своих, так и уже имеющихся).
Перейти >>
22 ноября 2007
[Заметки]
/Идеи (разгрузка)/
Открываю раздел "Идеи", куда будут писаться идеи нереализованного. Нереализованного либо потому что проект слишком большой и у меня одного не хватит сил на него, либо потому что нет времени на реализацию (из-за более приоритетных задач), либо потому что проект малозначим в практическом плане, но его интересно описать теоретически.
Первая заметка описывает игру в стиле схожим с RTS, но все управление происходит в виде ввода команд с клавиатуры. Любители консоли меня поймут.
Перейти >>
18 ноября 2007
[Заметки]
/Delphi/
Обнаружил глюк компилятора при обработке оператора continue. Проверялось только на Delphi 2007.
Перейти >>
03 ноября 2007
[Quake]
SDA: шустрые, как никогда
Обычно ждешь практически месяц, пока на
SDA появится что-то новенькое. А в этот раз прошла всего неделя и уже есть приличный список новых прохождений. Или они почту по частям разбирают?
Richard Skidmore прошел
digs01 на
Nightmare Run (4:57). На этот раз тоже с ошибками :(
Есть четыре демки, пройденные двумя игроками:
d1 (0:29, Easy 100%),
d5 (0:56, Easy 100%),
d6 (0:33, Easy Run),
d4 (0:20, Easy Run).
И еще четыре одиночных прохождения:
d6 (1:13, NR),
d6 (1:08, NR),
d6 (1:05, NR),
d6 (0:54, ER)
28 октября 2007
[Quake]
SDA, digs01+
Очередная серия демок на
SDA.
Thomas Bergendorff очень красиво прошел
digs01 на
Easy 100% (9:52).
Richard Skidmore прошел его же на
Nightmare 100% (16:55), улучшив свой прежний рекорд на 84 секунды, но при этом наделав кучу ошибок.
Tom Nguyen прошел
d4 на
Easy Run (0:29) и
Nightmare Run (0:18), а также
d5 на
Easy Run (0:21), обогнав предыдущих рекордсменов на 2-3 секунды.
Daniel Andersson прошел
ds на
Easy Run (0:42), обогнав предыдущего игрока на 2 секунды.
18 июля 2007
[Quake]
Завершение "C3:5 - Can you dig it?"