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

Zer0Galaxy

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

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

  • Посещение

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

    189

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

  1. И что, ваша программка нормально отрисовывает картинки, которые не подсилу либе graffiti? Если так, могу я использовать ее код, чтобы исправить graffiti?
  2. Zer0Galaxy

    Zn: строим простой ретранслятор

    Существуют алгоритмы шифрования с открытым ключом.
  3. Zer0Galaxy

    Zn: строим простой ретранслятор

    Есть, конечно. Я даже несколько раз встречал эти редкие экземпляры. Но чтобы они подходили к компьютерам ближе чем на семь чанков, видеть не приходилось.
  4. Zer0Galaxy

    Zn: строим простой ретранслятор

    Я понимаю, день влюбленных и всё такое, но где вы на нашем сервере Олю и Наташку с компьютерами видели?
  5. Хорошая идея, гайд вроде: "Пишем копалку с нуля", "Пишем Hologram Editor с нуля", "Пишем OpenNet с нуля". У начинающих программистов должно пользоваться интересом.
  6. А что дает монтирование папки с уже примонтированной файловой системы?
  7. Обработчик клика проверяет принадлежит ли клик тому или иному компоненту, начиная проверку с более поздних компонентов. Если такой компонент найден, вызывается его обработчик onClick. Другие компоненты на предмет клика уже не проверяются. Т.е. если клик произведен в области перекрывания двух клавиш, клик отработает только для верхней клавиши. По крайней мере, так должно быть.
  8. Если не вызывалась функция redraw(), библиотека forms прорисовывает компоненты в той последовательности, в которой они были созданы. Т.е кнопки, которые были созданы позже будут находиться над кнопками, которые были созданы ранее.
  9. str = 'tyUyyyUUaaattrrUUuu' symbols = {} for l in str:gmatch('%w') do symbols[l] = (symbols[l] or 0) + 1 end for l,n in pairs(symbols) do print(l.." = "..n) end
  10. function ButtononClick(self, user) computer.beep(self.freq, 0.5) end Button1=Form1:addButton(41,7,"До",ButtononClick) Button1.H=3 Button1.W=13 Button1.freq=264 Button2=Form1:addButton(41,11,"Ре",ButtononClick) Button2.H=3 Button2.W=13 Button2.freq=297 --и т.д.
  11. Там экспоненциальная зависимость частоты от ноты, вроде. Можно было бы обойтись одной процедурой ButtononClick для всех клавиш.
  12. Как я понял, либа позволяет сохранять область экрана в таблицу, а потом восстанавливать. На мой взгляд, три байта на символ это чересчур. Дело в том, что на экране соседние символы имеют как правило одинаковый цвет фона и шрифта. Это можно использовать, что бы минимизировать объем занимаемой памяти. Посмотри как я это делал в MiddayCommanderе и в отладчике.
  13. С курсором разберусь на досуге. А по поводу русских названий Фингер верно сказал. Свойства name каждого компонента транслируется в имя переменной,которая будет хранить компонент. Луа не позволяет создавать имена переменных из русских символов, поэтому они и запрещены в свойстве name. В других свойствах, caption например, используй на здоровье.
  14. Облаком я называю группу компьютеров, каждый из которых находится от ближайшего соседа не далле прямой видимости модема. Если между двумя облаками появляется мостик, они сливаются в одно облако. Вопрос, как сделать роутер, транслирующий не все пакеты бездумно, а только те, которые предназначены адресату из того или иного облака.
  15. Вопрос. Правильно ли я понимаю, что любая посылка в Zn-облаке обходит абсолютно все узлы? Если так, то нужно подумать над маршрутизаторами, способными связать два и более облака.
  16. Ставишь серверную стойку, в нее четыре сервера. В каждый сервер одну сетевую карту и три связанных. По сети шлешь серверам пакеты, а они их транслируют роботам. Таким образом одна серверная стойка обслуживает 12 роботов. Надо больше, ставь еще серверные стойки. У меня так OpenNet работал.
  17. Zer0Galaxy

    Отладчик

    Во многом использую прошлые наработки. Найти неординарную задачу становится труднее, чем решить ее.
  18. Zer0Galaxy

    Отладчик

    У многих начинающих (да и у достаточно опытных) программистов часто случаются ситуации, когда программа вот уже вроде написана, запускается и работает, только работает не совсем так, как хотелось бы. Встроенные средства отладки языка Lua, и без того скудные, в варианте для OpenComputers отсутствуют вовсе. А так иногда охота посмотреть, по какой же ветке прошел if и чему равняется переменная в тот или иной момент выполнения программы. Можно, конечно, наставить тестовых принтов, но начиная с сегодняшнего дня вы так делать больше не будете, ибо теперь у нас есть полноценный отладчик. Как же заполучить это чудо на свой жесткий диск? Первым делом устанавливаем GUI-библиотеку forms, если конечно вы этого по каким-то причинам до сих пор не сделали: pastebin get iKzRve2g lib/forms.lua Вторым делом качаем сам отладчик: pastebin get X48P31Gj bin/debugger.lua Вот собственно и вся установка. Для запуска какого либо lua-файла в отладчике просто пишем его имя после команды debugger, например, так: debugger nod.lua Если отлаживаемый файл будет загружен без ошибок, вы должны увидеть примерно такой интерфейс: Экран отладчика разделен на три неравных части. - Верхняя светло-голубая строка – это меню команд, при помощи которых будет происходить отладка. Чтобы выполнить ту или иную команду, необходимо кликнуть по ней мышью или нажать соответствующую функциональную клавишу. - Синее окно – окно отладчика, в котором можно наблюдать отлаживаемый код и другую полезную информацию. - Нижнее зеленое окно – окно просмотра переменных. В нем можно наблюдать текущие значения переменных. Запуск отладки может быть осуществлен одним из трех способов. Самый медленный, но самый надежный способ – пошаговая отладка. Выполните команду «Шаг». В окне отладчика одна из строк будет подсвечена зеленым цветом. Это исполняемая строка программы, т.е. строка, которая будет выполнена на следующем шаге. Таким образом, раз за разом выполняя команду «Шаг», можно проследить последовательность выполнения программного кода. Режим работы отладчика «RUN/STOP» и номер исполняемой строки можно наблюдать в левом нижнем углу окна отладчика. Если же вы желаете начать отладку не с самого начала программы, а с какого либо участка, переместите курсор (выделен светло-синим цветом) в начало участка и выполните команду «До курсора». Для перемещения курсора прокрутите код программы при помощи колесика мыши и кликните на нужную строку. Альтернативным способом перемещения курсора являются кнопки «Вверх» и «Вниз». Позиция курсора отображается в правом нижнем углу окна отладчика. И наконец, третий способ запуска программы – команда «Пуск». В этом случае выполнение программы прервется для отладки только по достижении точки останова. Точку останова можно поместить в любой строке, содержащей исполняемый код. Для этого поместите курсор в нужное место программы и выполните команду «Точка останова». При этом строка, если она не является исполняемой и на ней не стоит курсор, будет выделена красным цветом. Для снятия точки останова просто поместите на нее курсор и еще раз выполните команду «Точка останова». Чтобы прервать отладку, например, для повторного запуска, выполните команду «Стоп». Если отлаживаемая программа должна выводить что-либо на экран, результат этого вывода можно посмотреть, выполнив команду «Экран». Для возврата в отладчик, кликните мышью или нажмите любую клавишу. Просмотр переменных. Выполните команду «Просмотр» и в открывшемся окне введите имя переменной или выражение. После двойного нажатия на кнопку «Ok» выражение будет добавлено в окно просмотра, где также будет отображаться его значение. Для удаления выражения из окна просмотра, выделите его и нажмите клавишу Del. К сожалению, просмотру подлежат только выражения, содержащие глобальные переменные, поскольку доступ к локальным переменным извне в ОС невозможен. Обсуждение здесь. Для выхода из отладчика выполните команду «Выход». PS: Благодарю форумчанина @bob558 за идею написания удобного отладчика. А также форумчанина @NEO за неопровержимое обоснование того, что такой отладчик невозможен. Без чего я не смог бы преодолеть собственную лень, чтобы завершить свой скромный труд.
  19. В связи с переменой места работы совсем нет времени на программирование и тестирование. А на оформление описания программ и подавно. Выкладываю отладчик как есть. Надеюсь на вашу помощь в вылавливании багов. pastebin get X48P31Gj debugger.lua А может кто и описаловку состряпает.
  20. Отлаживать графические программы можно уже сейчас. Правда, на одном мониторе. Переключение Экран/Отладчик - клавиша F5
  21. Это средствами самой лучшей GUI-библиотеки на Луа в майне
  22. Готова альфа-версия отладчика: Отладчик позволяет выполнять код программы пошагово либо до точки останова. Также реализована возможность просмотра текущего значения переменных. Предложите кто нибудь тестовый код, чтобы я оформил статью.
  23. Т.е в том, что он будет ты уже не сомневаешься?
  24. Во-первых, я не говорил, что ты не знаешь про load. Я имел в виду лишь, что она может заменить собой компилятор. Во-вторых, я не утверждал, что отладчик будет работать на одной только load. Для этого понадобится много еще чего. Короутины, например (привет while true do). В-третьих, почему ты решил, что плана по написанию отладчика у меня нет? Ты достаточно давно меня знаешь. Неужели я когда то бросал слова на ветер?
×
×
  • Создать...