Перейти к содержимому

Zer0Galaxy

Гуру
  • Публикации

    1 220
  • Зарегистрирован

  • Посещение

  • Победитель дней

    189

Все публикации пользователя Zer0Galaxy

  1. Возрождение сети возможно только с восстановлением чанклоадеров, но их, похоже, никто не собирается возвращать.
  2. Минимальный объем информации, необходимый для кодирования цвета одного вокселя будем называть символом. Очевидно, что символ содержит два бита или число от 0 до 3. Все возможные значения одного символа (0, 1, 2, 3) будем называть алфавитом. Последовательность из нескольких символом будем называть словом. Суть предлагаемого алгоритма сжатия состоит в замене последовательности одинаковых символов XXX...X, словом XN, где X - символ, входящий в исходную последовательность, N- длина этой последовательности, выраженная символами алфавита. Длина последовательности N может принимать значения от 1 (единичный воксель) до 48х48х32=73728 (весь рисунок залит одним цветом). Поскольку длина числа N дешифратору неизвестна, основная проблема это отделить N, входящую в текущую последовательность от начала следующей последовательности. Диапазон изменения N, выраженный в двоичном виде, будет от 1 до 10010000000000000. Каждый бит числа будем кодировать одним символом. Причем, если бит не последний, кодируем его символом "0" или "1", соответственно. В случае если бит завершает слово, кодируем его символом "2", если бит равен 0, или символом "3", если бит равен 1. Поскольку N всегда начинается с бита 1 (незначащие нули не рассматриваем), этот бит при кодировании можно опустить, а при декодировании добавить. Сложность возникает только при кодировании N=1, т.к. в этом случае опускается единственный бит, входящий в N. Для того, чтобы устранить эту проблему, перед кодированием добавим к N единицу, а после декодирования - вычтем. Пример кодирования: Предположим, нам необходимо закодировать последовательность из 25-ти символов "2". 1) Первый символ, входящий в закодированное слово "2" - символ из которых состоит исходная последовательность. 2) К длине последовательности добавляем единицу 25+1=26 и представляем в двоичном виде 26(10)=11010(2) 3) Отбрасываем первую единицу - 1010 4) Кодируем каждый бит кроме последнего символами "0" или "1". Последний бит кодируем символом "2" (соответствует биту 0) В итоге получаем слово - "21012". Пять символов вместо 25-ти. Последовательность декодирования: 1) Принимаем из входного потока первый символ. Из этих символов будет состоять последовательность после декодирования. 2) Присваиваем N=1 3) Сдвигаем N влево на 1 4) Принимаем из входного потока очередной символ. 5) Если принятый символ 1 или 3, N= N+1 6) Если принятый символ 0 или 1, возвращаемся к пункту 3 7) N= N-1 8) Декодированная последовательность представляет собой последовательность из N символов, принятых в п. 1 Предложенный алгоритм сжимает последовательности длиной не менее 3. Последовательности из двух символов не сжимает. А единичные символы замещает словом из двух символов. В наилучшем случае рисунок будет сжат в 4336 раз. В наихудшем - размер увеличится вдвое.
  3. Да, ты прав. Конечно я выразился не совсем точно. Но, надеюсь, мы с Тоторо поняли друг друга.На счет "синтаксиса", могу предложить вариант.
  4. Поторопился с выводом. Башня строится, но как периферию компьютер ее не видит.
  5. Попробовал под СС 1.58. Работает
  6. Это не сжатие, а упаковка Во! Я об этом
  7. Тоторо, не думал про алгоритмы сжатия изображений?
  8. Надо по изучать. Башня кажется весьма полезной
  9. Возможно Алексу пригодится, чтобы в его банке роботы счета не открывали. Вот только картинку нужно не на весь экран, а оставить место для строки ввода. Попытался изменить width, height = 25,10. Получил run:76: index expected, got nil Зумирование не реализовано?
  10. Конечно по двум кликам. Может даже кликам в разных плоскостях. Для рисования трехмерных линий.
  11. Конструктивная критика Конечно, для рисования каляки-маляки, вроде тех, что приведены на скринах, реализованных возможностей редактора достаточно. Но создать более сложный 3D рисунок будет весьма проблематично. Уровни, по которым создается голограмма, представляют собой сечения объекта горизонтальными плоскостями. На мой взгляд, основные трудности при создании объекта предложенным способом следующие. Во-первых, довольно сложно представить такое сечение, как правило, не имея самого объекта перед глазами. Во-вторых, как совмещать эти уровни друг с другом, если виден только один уровень? Предлагаю расширить редактор следующими возможностями: 1) Рисование не только по горизонтальным уровням, но и по вертикальным (фронтальным и профильным). Это даст возможность посмотреть на свое творение еще в двух проекциях. 2) Возможность при рисовании очередного уровня "видеть" выше или нижележащий уровень/уровни, например, прорисовывая их более темным цветом. Значительно облегчит совмещение уровней. 3) Смещение рисунка уровня вправо-влево, вверх-вниз. Так же может быть полезным при совмещении. 4) Набор инструментов типа: линейка, рамка, эллипс, заливка.
  12. Ага. Вот только созданные функции и переменные (те, которые не в API) вытащить не удалось. Может кто знает как?
  13. Вот бы эта консольная программа могла сменяющиеся изображения показывать. Даешь, к примеру, ей перечень файлов, а она по очереди извлекает из них голограммки и в течении определенного времени каждую демонстрирует. Из 26-ти кадров можно 3D-мультик сделать.
  14. Понимаю, что писать программы при помощи встроенного редактора edit весьма неудобно и мало кто занимается таким мазохизмом. Но вот редактировать уже написанный файл, наверняка приходилось каждому компьютеркрафтеру. Я решил чуть скрасить это тяжелейшее занятие и дополнить редактор одной, на мой взгляд, полезной фичей, а именно - автоматическим вводом имен стандартных функций и API. Поможет в этом клавиша F1 Вот, к примеру, нужно мне ввести строку textutils.unserialyze()Целых 23 нажатия, не считая Shift. Это ж пальцы сотрутся!В новом редакторе достаточно ввести несколько первых букв названия API или функции (например, "te") и нажать F1. Вуаля! Редактор найдет подходящее слово (в нашем случае "textutils.") и вставит его вместо этих букв. Если же он нашел и вставил какое то другое слово, скажем "term" - не беда. НЕ НАЖИМАЯ других клавиш, снова давим F1 пока не получим нужное слово. И так, получили "textutils.". Дальше вводим первую букву имени функции "u", снова давим F1 и получаем требуемую комбинацию. Вместе со скобками. Всего за 5 нажатий! А сколько нервов сэкономлено при отладке? Ведь зачастую я ввожу unserialiSe вместо unserialiZe Поддерживаются стандартные функции Lua и загруженные API, в том числе созданные пользователем. Ссылка на скачивание pastebin.com/pJfxziA6
  15. А сколько чанков он грузит?
  16. Пофиксен баг, связанный с удалением/перемещением файлов. Обновите прогу по прежней ссылке
  17. Отбросить нулевые символы можно при помощи заклинания mess=mess:match("(%Z*)"), где mess - принятое сообщение. Передавать длину сообщения при этом не нужно.А вот на счет краша при приеме абракадабры, я подумаю над алгоритмом.
  18. Малость доработал алгоритм поиска и вставил в MiddayCommander. Встречайте новую версию MC 1.3 (pastebin get 4SnKTzvc mc) Теперь комбинация Alt+F7 позволяет найти любой файл на диске компьютера. Не помните названия файла полностью? Не беда! Символы ? и * заменят любой символ или группу символов, соответственно. Жду сообщений о багах.
  19. Я бы подобную задачу решал при помощи рекурсивной функции. Т.е. функция ищет среди файлов в текущей директории, а потом вызывает саму себя для каждой из вложенных директорий. И вместо функции cut используй match. Сделаешь поиск по неполному совпадению - вставлю в МС-коммандер.
  20. Эх, мне бы ОС-эмулятор. Но, все равно, спасибо. Лучше чем у меня был
  21. А что за продукт, поделись секретом?
  22. Указанные координаты находились в зоне покрытия. Однако, после запрета мировых якорей, Сеть перестала функционировать
  23. На сколько я понял структура сети, по которой управляются телепорты - древовидна. Типа такой [ATTACH]165[/ATTACH] На рисунке я изобразил телепорты квадратами, компьютеры менеджеры - треугольниками. Красным цветом - старший менеджер. Выходит, каждая пара компьютеров, между которыми есть связь, должна находится на расстоянии не более дальности модема (не знаю какая она в ОС). Кроме того, не только телепорты, но и менеджеры должны находится в подгруженных чанках. Лично я делал бы обновление либо с носимого компьютера (Алекс обещал, что они будут) либо через более глобальную сеть. Не понятно как осуществляется пинг удаленных телепортов со старшего менеджера. Трансляция ведь односторонняя. Могу помочь с шифрованием. Давай пересечемся в РК
×
×
  • Создать...