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

Totoro

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

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

  • Посещение

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

    289

Сообщения, опубликованные пользователем Totoro


  1. Тут как раз "метатаблица" и есть неблагозвучный калькированный с английского неологизм.

     

    Если бы документацию писали, а не переводили, то термин скорее всего был бы "суб-таблица" или составной, но более точный по сути "таблица операторов". 

     

    Немного не соглашусь.

    У неологизма "метатаблица" есть как минимум пара преимуществ, по сравнению с другими вариантами.

    Первое - он широко распространен (в контексте Луа). Как в английском так и в русском языке.

    Второе - это наиболее точный перевод термина "metatable" на русский. То что перевод так похож на оригинал - лишь облегчает понимание мануалов.

    Так что тут уже все решено за нас создателями языка.

     

    Термин "суб-таблица" возможно прижился бы. Но он звучит менее определенно. "Под-таблица". Это таблица-элемент? Таблица операторов? Или что-то еще?

    Приставка "мета-" носит в русском языке (хотя она несомненно иностранного происхождения) смысл абстрактности и обобщенности. Что вполне подходит к случаю, на мой взгляд.

    • Нравится 2

  2. Да, термин "таблица" рябит в глазах, особенно если это замечаешь.

     

    Однако, на мой взгляд, в статье на подобную тему это неизбежно. И уж тем более не стоит заменять термин "метатаблица" на неологизм собственного сочинения, вводя в заблуждение читающих статью новичков.

     

    • setmetatable(tabletable) — эта основная функция при работе с метатаблицами, она устанавливает таблице метатаблицу. Первый аргумент здесь  таблица, второй  метатаблица. Такая функция работает только с таблицами.

     

    Можно использовать синтаксис описания команд, подобный тому, что можно увидеть на http://ocdoc.cil.li/

    И переформулировать фразы немного, чтобы избежать излишней тавтологии.

     

    • setmetatable(table: table, metatable: table) — это основная функция, которая позволяет установить таблице метатаблицу.

     

    Т.е. тип аргументов и какой идет куда, становится понятно из сигнатуры.


  3. Получается я могу написать свой кодовый замок, только с другими надписями, и получить байт-IV (которого нет)?

     

    Для него эта программка - прогресс. А для тебя регресс. Так что обойдешься без четвертого байта )

    • Нравится 2

  4. то есть как минимум поиск по ключу нужно написать вроде

    ...
    

    ну и патерн как-то универсальным сделать, чтобы можно было прочитать  name='Big Bob', тогда хоть какой-то смысл в библе есть.

     

    Ага. Паттерн можно сделать такой: "(%S+)%s*=%s*(.*)".

    Таким образом будут корректно парситься строки вроде

    name=Вася Пупкин
    age = 99
      tab_len=  2
    are_you_crazy =true
    

    Если после равно не будет текста, value примет значение "".

    Если добавить экранирование строк-комментариев (например знаком #), будет вообще отлично.

    • Нравится 1

  5. Там стоят строки

    local key, value = string.match(line,"(.*)=(.*)")
    if value ~= nil and key == key then
    

    Т.е. считанная строка разбивается на key и value, а затем идет проверка на то что value содержит какое-нибудь значение, и key совпадает с нужным.

    В противном случае идет чтение строк из файла дальше.

     

    Однако key == key всегда будет равно true, потому что локальная переменная key закрывает видимость аргумента key.

     

    А также паттерн "(.*)=(.*)" не подразумевает возможности пробелов перед или после равно. Если конфиг пишет программа - это не важно, но в случаее ручной правки конфига может вызвать ошибки.


  6. О, а что тогда у меня там было?

     

    Кинь скрин выполнения команды df (запускать через консоль), или команды for a, b in component.list('filesystem') do print(a, component.proxy(a).getLabel()) end (запускать из интерпретатора lua).


  7. Я не совсем понимаю что с инициализации системы... Но он так специально сделан! Так нужно! Он специально сделанный без клавы и монитора, он был рассчитан на удалённое управление! У него есть жёсткий диск с обычной OpenOS и я хочу получить доступ к этому винту без постоянно собирания и разжигания робота...

     

    В таком случае пиши и тестируй программу в сингле. Отключи буферизацию в конфиге OpenComputers. У тебя будет доступ к диску через папку с миром. И удобный редактор, чтобы писать.

    Когда закончишь тестирование - зальешь программу на сервер и будешь уже управлять роботом через сетевую карту (или как оно у тебя задумано).


  8. ну к HDD робота!!!

    Не появляется его диск в mnt

     

    Глянь через df еще.

     

    P.S. Сябро. Уже 10 часов прошло. У тебя есть робот, без клавиатуры, без монитора, без инициализированной файловой системы (если я правильно понял). Нафиг он тебе нужен в таком виде? За это время ты вполне успел бы его пересобрать заново с недостающими деталями.

    • Нравится 1

  9. К сожалению, я ввел в заблуждение.

    Существует функция, которая позволяет задать расстояние, на котором объект виден для игрока. Однако она не возвращает расстояния.

    Работает чисто как параметр объекта.


  10. А если взять голопроекторы, то память эффектней и эффективней +понтов больше

     

    На самом деле память получается не настолько эффективная, как из экрана третьего уровня.

     

    Каждый воксель голограммы может быть погашен, либо иметь один из трех цветов палитры. Т.е. - 4 состояния. Это 2 бита информации.

    Размерность голограммы - 48 на 32 на 48. То есть - 73 728 вокселей. Делим на четыре, и получаем 18 432 байт.

    Т.е. сама по себе матрица голограммы вмещает не очень много информации.

     

    Можно добавить еще конкретные значения цветов палитры: 3 цвета по 3 байта = 9 байт

    Масштаб голограммы, и значения сдвига дает еще четыре number'а. Т.е. 4 * 8 = 32 байта.

     

    Итого, голограмма максимального уровня хранит: 18 473 байт информации.

    • Нравится 1

  11. О, великие программеры всея Lua, можно ли скинуть ссылочку на нормальный гайдик по очкам? А то мне даже страшно от кода становится))

     

    Нету гайдиков, к сожалению. Придется перекопать методы компонента, и поизучать програмки которые под него есть.

×
×
  • Создать...