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

Поиск по сайту

Результаты поиска по тегам 'power'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Блоги

  • Робот Байт
  • Fingercomp's Playground
  • 1Ridav' - блог
  • Totoro Cookies
  • Блог cyber01
  • IncluderWorld
  • KelLiN' - блог
  • Крутой блог
  • eutomatic blog
  • Programist135 Soft
  • Сайт в сети OpenNet
  • PieLand
  • Очумелые ручки
  • Блог недоблоггера
  • В мире Майнкрафт
  • LaineBlog
  • Квантовый блог
  • Блог qwertyMAN'а
  • some blog name
  • Дача Игоря

Форумы

  • Программирование
    • Программы
    • База знаний
    • Разработчикам
    • Вопросы
  • Игровой раздел
    • Игровые серверы
    • Моды и плагины
    • Жалобы
    • Ивенты и конкурсы
    • Файлы
  • Общение
    • Задать вопрос
    • Обратная связь
    • Беседка
    • Шкатулка
  • Технический раздел
    • Архив

Искать результаты в...

Искать результаты, которые...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


ВКонтакте


Gtalk


Facebook


Twitter


Город


Интересы

Найдено 1 результат

  1. Totoro

    MoonScript

    Итак, устройтесь поудобнее у ваших голубых экранов. Сегодня я научу вас програмировать во Имя Луны! Мы привыкли писать программы для OpenComputers на Луа. И при этом не задумываемся о том, что язык Луа в OpenComputers - это по сути "язык низкого уровня". На нем мы пишем все - начиная от прошивок BIOS и операционных систем, и заканчивая чатиками для OpenGlasses. Однако, когда объем кода не имеет решающей роли, и есть время для медитации, программист может дать душе отдохнуть, используя красивые конструкции высокоуровневых языков. И таким языком сегодня станет MoonScript. # Что это такое? MoonScript - это язык с интересным и лаконичным синтаксисом. Он позволяет использовать привычные конструкции ООП (объектно-ориентированное программирование) и ФП (функциональное программирование) в сеттинге Луа. Сам автор называет его "CoffeeScript for Lua". Код на MoonScript хранится в файликах с расширением *.moon и транслируется в обычный код Lua. Который может затем быть выполнен на компьютерах или роботах OpenComputers. Плюсы: * краткий и красивый код (субъективно) * изучение нового, интересного (объективно) Минусы: * Транслированный код хуже читаем, и немного объемнее, чем аналогичный код, написанный изначально на Луа # Установка Приведу пример установки для Debian + Lua5.3. Если у вас другая OS - смотрите соответствующие инструкции по ссылкам. 1) Lua (https://www.lua.org/start.html) $ sudo apt-get install lua5.3 2) Пакетный менеджер LuaRocks (https://luarocks.org/#quick-start) Для его установки возможно потребуется пакет liblua5.3-dev. Установим его командой: $ sudo apt-get install liblua5.3-dev Далее следуем инструкциям с официального сайта: $ wget http://luarocks.org/releases/luarocks-2.3.0.tar.gz $ tar zxpf luarocks-2.3.0.tar.gz $ cd luarocks-2.3.0 $ ./configure; sudo make bootstrap 3) Ставим пакеты MoonScript (http://moonscript.org/#installation) $ sudo luarocks install moonscript Теперь в системе появятся программы moon и moonc. Ура! К слову, при их запуске может вылетать ошибка типа /usr/local/share/lua/5.3/alt_getopt.lua:24: attempt to call a nil value (global 'module') Это происходит потому, что moonscript давненько уже не обновлялся, и использует устаревшее ключевое слово module. Фиксится при помощи правки файликов alt_getopt.lua и moon. В файле alt_getopt.lua необходимо закомментировать 24 строку (module ("alt_getopt")) и дописать в самый конец строку return {get_opts = get_opts, get_ordered_opts = get_ordered_opts} В файле moon исправляем вторую строку на local alt_getopt = require("alt_getopt") Все это в нашем случае можно сделать командами: $ sudo gedit /usr/local/share/lua/5.3/alt_getopt.lua $ sudo gedit /usr/local/lib/luarocks/rocks/moonscript/0.4.0-1/bin/moon Все! MoonScript установлен, пропатчен и готов к работе. # Подсветка синтаксиса Очень рекомендую писать код в редакторе заточенном под код. Чертовски удобно, поверьте. Для MoonScript существуют пакеты подсветки синтаксиса для разных редакторов. 1) Sublime Text / Text Mate - https://github.com/leafo/moonscript-tmbundle 2) vim - https://github.com/leafo/moonscript-vim 3) Atom - https://atom.io/packages/language-moonscript 4) Textadept - https://github.com/leafo/moonscript-textadept # А теперь - магия! Для примера, я переписал код библиотечки Braille Bicycle с использованием MoonScript. Теперь она использует ООП подход (привет, @Krutoy ). http://pastebin.com/NQc7JCH3 Этот файлик я потом "откомпилировал" в Lua простой командой: $ moonc braille.moon И получил на выходе рабочую библиотеку braille.lua. Далее, заливаем ее в OC и пишем простой тестовый код: local gpu = require('component').gpu local braille = require('braille') local matrix = braille.Matrix(8, 8) matrix:line(1, 1, 8, 1) matrix:set(1, 2); matrix:line(4, 2, 5, 2); matrix:set(8, 2) matrix:set(1, 3); matrix:line(4, 3, 5, 3); matrix:set(8, 3) matrix:line(1, 4, 3, 4); matrix:line(6, 4, 8, 4) matrix:line(1, 5, 2, 5); matrix:line(7, 5, 8, 5) matrix:line(1, 6, 2, 6); matrix:line(7, 6, 8, 6) matrix:line(1, 7, 2, 7); matrix:line(4, 7, 5, 7); matrix:line(7, 7, 8, 7) matrix:line(1, 8, 8, 8) gpu.setForeground(0xC61331) matrix:render(gpu, 14, 12) matrix:render(gpu, 46, 12) gpu.setForeground(0xFFFFFF) matrix:render(gpu, 30, 12) matrix:render(gpu, 62, 12) И вуаля! Работает. # Игровая трансляция Все это хорошо, но иногда может быть полезна возможность использовать *.moon исходники прямо из OC, без предварительной компиляции. Уже поздно, поэтому расскажу об этом как-нибудь в другой раз. Скажу лишь, что помимо всего прочего, у MoonScript есть такая любопытная тулза, как онлайн "компилятор". Его можно найти вот здесь: http://moonscript.org/compiler/ # UPD Товарищи @Krutoy и @evgkul выпустили транслятор MoonScript на чистом Луа, что позволяет запускать и "компилировать" программы MoonScript прямо из OpenOS. Заценить и потестить можно по этой ссылке: https://github.com/evgkul/moonscript-opencomputers Пишите багрепорты (сюда или на GitHub), и отправляйте свои пуллреквесты, чтобы улучшить программу. # UPD 3 Добавил MoonScript в репозиторий. Теперь можно установить его и потестить всего одной командой: hpm install moon
×
×
  • Создать...