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

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

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

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

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

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


Блоги

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

Форумы

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

Категории

  • Форум
  • Лаунчер
  • Игровой сервер

Группы продуктов

Нет результатов для отображения.


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

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


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

  • Начать

    Конец


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

  • Начать

    Конец


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

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

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


ВКонтакте


Gtalk


Facebook


Twitter


Город


Интересы

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

  1. Здрассьте, господа, у нас тут превесёлая вещь случилась: спустя полгода разработки (причём круглым числом; 28 мая стартанули) у нас отрелизился репозиторий! Обозвали мы его Hel. В репозитории мы собрали и воплотили в жизнь все хорошие идеи и концепции, которые обсуждались здесь, чтобы получился максимально кавайный способ дистрибуции пакетов. Пользоваться репозиторием не сложнее, чем ставить программы с Pastebin. Для этого нужно знать только название пакета. Одна команда: $ hpm install <нужный пакет> И вуаля! Он уже установлен в нужную папку, все нужные библиотеки загружены и распиханы по системе. Можно запускать и работать. Но по сравнению с OPPM или Pastebin, hel несравненно удобнее. Он легковесный. Простой. Не требует регистрации. И СМС. Чем мы гордимся, безусловно. Установка программ производится с помощью одного легкого клиента (как у Pastebin), но в то же самое время, вам не нужно волноваться о библиотеках или версиях программы. Вы всегда можете найти и установить самую свежую версию (и даже не самую свежую), зная только название пакета (как в OPPM). Кстати, раз уж мы заговорили про OPPM. У нас клиент получился настолько охренительным, что вы можете теперь выкинуть oppm в помойку, наконец-то! В стандартный комплект поставки включён oppm-модуль с кэшированием (иными словами, вам не нужно будет ждать пару минут, пока пробрутфорсятся репозитории, сразу всё качается). Всё быстро, чётко, ясно. Юзается оно так: $ hpm oppm:install <имя пакета> Об остальных фичах читайте уже в мануале hpm, там всё есть.
  2. Прикол в том что лично я вот Ничего не умею хотя ОЧЕНЬ хочу писать проги под mine или хотя бы open os (дела у меня с этим трудно учитывая что я даже не умею вывести надпись "Hello world!"). Хотелось бы создать прогу в которой можно создавать другие проги!(да да тавтология в деле) С визуальным программированием! Желательно конечно что бы сделать приложение под винду (на том же юнити) так и удобнее будет и практичнее и... и... и.. забыл.. А ЛАГАТЬ меньше будет! Да и вероятность что эт получится точно будет больше. Если брать именно логику - это возможно, такое уже делали под робота а вот за дизайн - хз Работа приложения имеется ввиду что Я (ну допустим я или вы короче)... Заходим мы в приложение под винду создаём там дизайн проги, потом визуальным программированием создаём код и экспортируем файл .LUA. Закидываем его на комп (через проводник или гитхаб) и запускаем! ИЗИ ПРОФИТ (нет). может кому интересна тема или просто нечего что делать можете подумать Задача есть? Есть. Идея? Тоже. Выполнение? пока нет и вряд ли будет. Вопросы? Задавайте жду. УДАЧКИ!
  3. Remoute Control, ver. 0.1.1 (управление роботом удаленно по сети Wi-Fi с планшета в ручном режиме) многоцелевая программа для мода OpenComputers Программа позволяет Вам получить полный контроль над роботом, совершать множество действий удаленно, при этом видеть самого робота и его параметры. Например, можно пробраться роботом в труднодоступные места, выгрузить уран из реактора при этом не получив облучения, построить простую конструкцию там, куда вы сами не можете пока добраться или наоборот, привезти что-то. Робот под вашим полным контролем. Забавным применением программки является гриф чужого имущества, атаки на игроков. Роботы по настройкам конфига могут производить действия, связанные с использованием предметов, включения и выключения кнопок, рычагов и механизмов и инструментов в чужом привате, хоть приват и не рушат. Можно произвести атаку и снести все опреснители игрока, солярки и ветряки, ели он не в игре и не спрятал все с крыши, или не выставил охрану и не сенсорит атакеров. Можно прикрутить реакторную камеру к стене жертвы, запихать туда 4-х урановый стержень,в включить на роботе редстончик и подорвать стеночку в несколько блоков, если беспечный игрок-жертва заприватил дом тютелька в тютельку по краю стены, как это обычно делают игроки =). Реактор на ИТ в настройках рушит блоки в радиусе 2-4 блоков. Есть шанс, что вы проберетесь в домик жертвы, при этом вы в укрытии и вас не видно никак. Код программы (latest): ПЛАНШЕТ: скачать (pastebin get b8nz3PrH tabletRC.lua) РОБОТ: скачать (pastebin get 7V2fvm7L robotRC.lua) Старые версии (old): Скрины: Требования к комплектации робота и планшета (за основу взял связанную карту, она обязательна, в роботе также обязателен контроллер инвентаря, остальное опционально. Можно выкинуть таблички и запихать контроллер ведра, немного добавить строчку и тырить жидкости и прочее. ЧЛ пока в программе не используется. Для грифа крайне желательна красная плата, магнит, большой инвентарь):
  4. Добрый день, любители поиграть в видеоигры в компании друзей. Сегодня вам крупно повезло, вам посчастливилось стать свидетелем мультиплеерной игры "Змейка" на ОС. Правила очень просты: Вы играете за змею Вам нужно собирать синие ягоды В любой момент, любой желающий игрок может подойти к вашему компьютеру и начать игру с вами, он появится на координатах (5;5) (левый верхний угол) Количество игроков неограниченно Размеры карты - ваш монитор Первый две буквы вашего ника будут отображаться на голове змеи. Упёрся в свой или чужой блок - умер Ушёл через границу экрана - оказался на другом её конце. Преимущества: Системные требования ультранизкие. Работает на минимальной комплектации компа, даже с памятью Т1. Никаких сетевых/интернет карт не требуется. Все события обрабатывает один комп. Быстрая графика, за счёт того что экран не очищается каждый кадр, а изменяет лишь нужные пиксели. Легко настраиваемые параметры, вроде скорости игры, размера карты и прочего. Большие перспективы на будущее Недостатки: Пока что в игре лучше не ставить низкую скорость игры из-за бага управления приводящего к смерти (при шаге назад). Я поставил костыль, когда время будет думаю исправлю Ссылка на код: http://pastebin.com/ndCeF7eT Установка: pastebin get -f ndCeF7eT snake.lua Видео обзор: Скрины: На последнем скрине тест самого слабого компа! Но даже на нём графика шустро работала.
  5. Игра "Determinant" Пилим игру всем форумом на LÖVE. Жанр: top-down шутер в стиле Crimson Land. Сеттинг математический: считаем определители матриц 10х10, бьем врагов знаком интеграла, дифференцируем экспоненту. Предполагается наличие мультиплеера. Графон двухмерный, векторный — рисовать будет @Totoro. @Totoro предложил вести разработку по принципу Git Flow: создаем feature ветку, ревьюим, мержим в dev, затем dev мержим в master и выпускаем релиз. Репа: https://gitlab.com/cc-ru/determinant. Присоединяемся. Обсуждаем в IRC.
  6. Totoro

    HackerRank

    https://www.hackerrank.com Задачки для хакеров, кто не боится трудностей В наличии широкий выбор языков. От C++ до Lua, от Python до Scala. А вы боитесь трудностей? Уже в игре: @Fingercomp https://www.hackerrank.com/fingercomp @Totoro https://www.hackerrank.com/moonlightowl @danshat https://www.hackerrank.com/danshat @LeshaInc https://www.hackerrank.com/LeshaInc @folder https://www.hackerrank.com/folder Тематическая дискуссия - в IRC. Или пишите сюда.
  7. #CC.RU https://www.codewars.com Нашёл ещё один прикольный сайт. Тут можно решать задачки как на HackerRank, но сделано прикольнее. При регистрации можно указать название "клана" и тогда, все кто зарегался в том же клане станут союзниками. =) Там тоже туча языков (включая Луа) и прикольная система рангов (а-ля кунг-фу). Короче, предлагаю всем желающим затусить там командой и понагибать местных. Указывайте при регистрации наш клан: #CC.RU (решёточка - часть названия). P.S. Вот как выглядит наш клан на текущий момент:
  8. Каждый, кто занимался разработкой человеко-машинного интерфейса под OpenOS, наверное знает какое это муторное занятие. Даже если Вы используете библиотеку GUI. То и дело приходится выходить из редактора кода, запускать свою программу, смотреть на результат своих стараний и снова заходить в редактор, чтобы исправить всего одну цифру. Предлагаемая система позволяет создавать интерфейсы программ не в текстовом редакторе, а в графическом при помощи мыши, но самое главное - результат своей работы Вы можете видеть сразу, не выходя из редактора. Построена система на основе уже известной Вам gui-библиотеки forms. При входе в FormsMaker мы видим пустую форму Щелкните правой кнопкой мыши в любом месте формы после чего откроется окно управления компонентом Выбрав пункт "Свойства Form1" можно (будет) редактировать свойства формы, такие как цвет рамка и т.д. Пункты "Add ..." добавляют на форму соответствующий компонент. Пункт "Проект" позволит управлять проектом: сохранять, компилировать и т.д. Для возврата к редактируемой форме выберите "Отмена" К примеру мы выбрали пункт "Add frame". Это добавит на нашу форму рамку. Таким же образом на рамку можно добавить кнопку. Щелкаем ПКМ на рамку и выбираем "Add button" Изменить размер рамки можно при помощи ЛКМ, потянув за правый-нижний ее угол А перемещать рамку по форме можно перетаскивая за любое свободное её место pastebin get wA5KMKav fmaker.lua Приму с благодарностью любую посильную помощь в развитии проекта, как в программировании, тестировании так и просто советом.
  9. Так как GET запросы, например, к http://www.timeapi.org/utc/now , требуют на выполнение определенного времени, до нескольких секунд, наличия интернет карты и кучи телодвижений, есть еще один вариант получения астрономического времени. Точное оно настолько, насколько точно его настроил админ на хосте. Стандартные функции date +%s в консоли и в интерпретаторе os.date() выдают пока черти что, 1970 год и время с потолка. Всякие счетчики работы Луа машины и ПК нам тоже не подходят, типа os.clock() и прочих. Но есть один способ. В ОС можно получить дату модификации файла методом lastModified('filename') из библиотеки filesystem в формате UNIX Ним и воспользуемся. Модифицируем вспомагательный файл и получим время модификации тут же. Вот функция получения времени: -- ======машинное время (время хоста)======= -- раскомментируйте библиотеку, если она не подключена в вашем коде --local fs = require("filesystem") --(установить для своего часового пояса, -12 : +13, например: -2 или 6) local TIME_ZONE = 2 --(не изменять!) local t_correction = TIME_ZONE * 3600 local function getTimeHost() local file = io.open('/tmp/unix.tmp', 'w') file:write('') file:close() local lastmod = tonumber(string.sub(fs.lastModified('UNIX.tmp'), 1, -4)) + t_correction --print(lastmod) -- Вариант 1 --local data = os.date('%x', lastmod) --local time = os.date('%X', lastmod) --return data, time -- Вариант 2, eсли нужно все по отдельности --local year = os.date('%Y', lastmod) --local month = os.date('%m', lastmod) --local day = os.date('%d', lastmod) --local weekday = os.date('%A', lastmod) --local hour = os.date('%H', lastmod) --local minute = os.date('%M', lastmod) --local sec = os.date('%S', lastmod) --return year, month, day, weekday, hour, minute, sec -- Вариант 3, но есть нюанс, если число минут(часов) 5, то и будет выдано 5, а не 05! --local dt = os.date('*t', lastmod) --return dt.year, dt.month, dt.day, dt.hour, dt.min, dt.sec -- Вариант 4, все в куче, как мы привыкли, в правильном формате local dt = os.date('%Y.%m.%d %H:%M:%S', lastmod) return dt end print(getTimeHost()) Вот выдержка из Советской Энциклопедии о UNIX времени. Часовой пояс установите, как Вам угодно (например, сейчас 2 на ИТ - это время Киев, 3 - МСК). Формат, который возвращает функция, тоже выберите, какой Вам удобно. Лишние закомментированные строки (--) удалите. Теперь легко можно в лог записать любое событие и приписать ему время. Так же можно легко узнать дату и день недели через 234 часов, 36 мин, 40 сек, например, предварительно переведя временной интервал в секунды и потом вернуть астрономическое время. Например вы хотите узнать, через сколько на ИТ вы скрафтите 100К ведер жидкой материи. Это например, 2256 год, 1 апреля, 12:50:12, если не останавливать "генмат" не на секунду Вот ретурн функции: Вариант 1: string, string 04/22/15 09:05:56 Вариант 2: number, number, number, string, number, number, number 2015 04 22 Wednesday 09 05 56 Вариант 3: number, number, number, number, number, number 2015 04 22 9 5 56 Вариант 4: string 2015.04.22 09:05:56 и т.п. По сути вся функция, это 7 строчек. Не нужно никаких гетзапросов выполнять, библ всяких и интернет карт. Подробнее о форматах os.date() здесь.
  10. Список игр: 1)Шашки 2)Камень-Ножницы-Бумага 3)Тетрис 4)Крестики-Нолики(любое поле, любая линия) 5)Сапёр 6)Пятнашки 7)mazeMaster(хз как назвать, тут короче лабиринты нужно проходить) 8)SameGame TODO CLEAN UP Следующий текст является пока что бредом, надеюсь скоро исправлю Так же я делал покер, там осталось исправить некоторые ошибки и будет готов, но руки никак не дотягиваются. Инструкция к играм: 1)в играх на 2х в начале появляется 2 серые рамки на которые нужно кликнуть чтобы определить кто игрок 1, а кто игрок 2. 2)в шашках если тебе нужно побить не выделяются остальные и поэтому может казаться что игра зависла(возможно потом исправлю) 3)в играх кроме КНБ при нажатии на клавиатуру игра автоматом выходит, так что будьте осторожны 4)в некоторых играх на первых строчках находится раздел Настроек, где можно устанавливать правила Планы: Update1(03.11.2016) Update2(04.11.2016) Update3(05.11.2016) Update4(06.11.2016) Update5(17.07.2018) Update6(27.10.2018) Update7(11.11.2018)
  11. Сколько вы можете придумать способов напечатать фразу "Hello World!" десять раз, при помощи Луа? Мой вклад в копилку: 1) Рекурсией function hello(times) if times > 0 then print "Hello World!"; hello(times-1) end end hello(10) 2) Заменой local source = " " local hello = source:gsub(" ", "Hello World!\n") print(hello)
  12. Всем доброго времени суток. У меня в последнее время возникли мысли о новых технология для мода ОС, которые бы вывели мод и программирование под него на новый уровень. Теперь о том, что я хочу предложить: Мы знаем, что новички не умеют программировать, а некоторые даже не горят желанием заняться этим вообще. Предпочитая устанавливать MineOS и воображать себя крутыми хакерами. Вместо того, чтобы бороться с этой безграмотностью, предлагаю поддержать её, введя новую программу-конструктор. Который позволит нубам самим писать программы, используя этот конструктор. Пусть это и не решит проблему лени людей, зато (по плану) повысит популярность самого мода OpenComputers и возможно вдохновит пару игроков на освоение более подробно мода самостоятельно. Так как сам я написать такую прогу не смогу, по этому эта тема и создана. Дабы люди подумали над этим вопросом и при желании написали такую прогу. (Другие проекты, которые я в силах реализовать, я пока не спешу рассказывать всем)
  13. Всем добрый день. Уже давно хотел предложить создание следующих крутых прог. Я хочу предложить писать программы, представляющие из себя некоторую функцию, которая прописывается в event.listen() и завершается. Выходит что комп по сути свободен, а прога осталась в фоне. А в идеале она ещё закрепляется за другим монитором и клавиатурой освобождая основной монитор и клавиатуру. Таким образом мы можем на первом (основном) мониторе дальше писать проги, или ещё что то запускать и параллельно с этим на втором мониторе у нас будет работать прога на эвентах. Вот пример прог на эвентах, которые теоретически при небольших изменениях в коде способны запускаться параллельно с работой основного компа: Программа для управления редстоун сигналом Redcontrol Программа для прослушки чатбокса Мультиплеерная/одиночная игра Змейка Игра Квантовый куб И те проги, что я ещё не написал, но уже хочу прорекламировать написать на эвентах В чём суть? Эти программы прописываются в эвентах и тупо занимают время компа бесконечным циклом с задержкой Часть кода из проги для прослушки чата: function start() term.clear() event.listen("chat_command",cmd) event.listen("chat_message",msg) while exit do os.sleep(3) -- просто прожигаем время в пустую, вместо того чтобы работать параллельно с компом. end event.ignore("chat_command",cmd) event.ignore("chat_message",msg) end start() Как мы видим мы просто загрузили эвенты и ждём время когда игрок захочет их отрубить (причём отрубает он их с помощью тех же эвентов). То есть теоретически если не задавать цикл - можно параллельно запускать кучи прог, надо лишь распределить под каждую из них свой монитор и параллельный запуск обеспечен. Что об этом думаете пишите в комментах.
  14. С днём космонавтики, игроки! История проекта "Open Space": Как то решил я сделать клон одной игрушке на андроид которая мне понравилась (про самолёты). В итоге во время написания физики получилось совершенно иное, в чём я увидел больший интерес и решил сменить вектор развития. В итоге получилась в какой то степени обучающая програмка космической физики и теории относительности. Что есть в игре: Инерция движения тел Инерция вращения тел Относительность 🙂 Реалистичная реактивная тяга, с учётом массы ракеты, массы топлива и так далее. Отображение основной относительной траектории полёта (отключаемая функция) Отображение восьми дополнительных относительных траекторий + космический корабль как точка отсчёта в этой системе (отключаемая функция) Расход топлива Заправка топлива Замедление, ускорение и стабилизация времени + режим паузы Неограниченный мир Возможность отключения всех траекторий и осознания что жизнь - тлен Индикаторы скоростей (в разных системах отсчёта) Управление: W - Ускорение A - Поворот налево D - Поворот направо F - Заполнить полный бак Z - замедлить игру X - ускорить игру C - обычная скорость игры R - пауза 1 - отрисовка основной траектории движения 2-9 - отрисовка дополнительных траекторий движения (относительно космической станции) Колесо мыши - зум Ссылка на игру: https://yadi.sk/d/D3qXeVhsqwHcW Скрины: Видео обзор: О дальнейшей разработке: Точно не ясно во что перерастёт проект. Заморозится ли он. Перерастёт в игру или песочницу. Пока что это не ясно. Есть шанс что из этого вообще выйдет космическая гонка в которой придётся проходить дрифтинг-трассу в условиях космоса Что вы хотите пишите в комментариях. Возможно я добавлю то что будет предложено. Планируется добавить: Гравитацию и планеты Меню выбора объекта и расположение в игре по желанию игрока Система отображения траекторий с учётом вращения точки отсчёта (космической станции) Перед игрой прочитайте хотя бы управления к игре. Иначе многое потеряете и будите спрашивать "как заправить ракету". Я тут заметил что часть игроков не читая ничего скачивают продукт и потом ничего не понимают что к чему. Чем можно заняться в игре: Просто тестировать инерцию вращения и движения ракеты Нарезать круги - "дрифтить" Наглядно наблюдать относительные системы отсчёта (клавиши от 1 до 9 создают и отключают) От автора: Наличие сопротивления среды могло бы убрать такой эффект как относительные системы отсчёта. В какой то степени и по этой причине этого не было осуществлено замедление. Да и в принципе в космосе это не нужно. Геймплей: P.S. Новая версия игры в видеоролике не доступна к скачиванию, как и более поздние версии игры. Пока что не вижу смысла их выкладывать, ведь игра в разработке, а фанатов у игры нуль.
  15. Добрый день, земляне! Я сколько не пробовал вникнуть в теорию относительности, вечно натыкался на непонимание "сверхъестественных" процессов которые она пропагандирует. Предлагаю обсудить эту тему в данной теме. Она создана специально в разделе "беседка" и сообщения по теме теории относительности по идее не кто не должен здесь удалять. Предлагаю вот такой мысленный эксперимент: Предположим что в космосе существует гипотетический объект, который равноускоренно движется в пространстве и через равные промежутки времени отбрасывает некие мелкие объекты которые движутся по инерции. Таким образом этот тестовый механизм постоянно ускоряется и ему не что не мешает ускорятся. В то же время относительно друг друга ближние маленькие объекты (назовём их космической разметкой) держат какую то постоянную разницу в скоростях. В чём суть этого эксперимента: По так называемой "космической разметке" мы можем предположить, что складывая их скорости мы сможем взять 2 объекта, которые бы относительно друг друга летели со скоростью света и даже больше. Но, если ОТО права то мы взять такие объекты не сможем. И относительно наблюдателя дальние куски разметки будут с виду иметь меньшую разность в скорости относительно друг друга чем, если бы мы были рядом с ними. Означает ли это что там время идёт медленнее? Потому что это будет противоречием. И дальние сзади и дальние спереди куски будут иметь меньшую разницу в скоростях как будто там время идёт медленнее, хотя спереди они должны лететь быстрее. И второй эксперимент: Есть планета, с которой вылетела ракета с околосветовой скоростью. Вопрос: где время будет лететь быстрее, на планете или на ракете? Ведь относительно друг друга они движутся с одинаковой скоростью.
  16. Так как тут у нас много Lua любов, создаем темку для полезных программок на/для Lua не имеющих отношения к игре или моду OC. Первая программка: Luakit — легковесный браузер для UNIX-систем, использующий движок WebKit. Написан с использованием библиотеки GTK+. Для конфигурирования браузера используются Lua-скрипты, что делает его легко расширяемым и настраиваемым под себя. Будучи настроенным по умолчанию, luakit очень напоминает другие микро-браузеры — jumanji, uzbl, surf(en). Имеет Vim-подобный интерфейс. © Wiki
  17. Доброго времени суток, игроки. Я тут решил написать небольшой сборник советов для начинающих программистов. Возможно кому нибудь понадобится. 1 проблема: не использование булева В чём суть проблемы: игроки используют 1 и 0 как включено и выключено. Вместо true и false, как это надо делать. В чём причина проблемы: булева занимают минимальное из всех типов данных место. Булева поддерживают такую операцию как x = not x, которая так быстро прижилась в моём коде для создания переключателей. В добавок и сам код выглядит красивее, не нужно ставить комменты в коде что означает 1 и 0. 2 проблема: комментировать всё подряд (если это не обучающий код) Способ решения: со временем приходит осознание того что ты делаешь и как. Если код написан так как надо, то тут и комменты не нужны. Любой прогер взглянет и поймёт что в переменных x и y хранятся координаты. Комменты следует ставить там где они действительно нужны 3 проблема: использование чего то вроде этого if x==true then ... end. В чём ошибка? Да в том что сравнение тут совершенно не нужно. Достаточно написать if x then ... end чтобы условие выполнялось, когда x чему либо равен, кроме false и nil. 4 проблема: длинный комменты, там где они могут замениться более простым пояснением что к чему. Способ решения: нарисовать псевдографикой поясняющий рисунок между символами --[[ и ]]. Внутри них всё воспринимается как коммент. Вот пример: Итак что мы видим в примере? Это игра Cube. Здесь мы видим такую строку как door.pos={false,false,false,false} (в проге она означает положение дверей, закрыты они или открыты). Но без комментов не понять под каким номером какая комната. Можно было бы написать 4 коммента и расписать что 1 - верхняя комната и так далее что не так удобно. Но при помощи псевдографики можно очень понятный рисунок нарисовать, который сразу все вопросы закроет. 5 проблема: использование глобальных переменных. Это очень важный пункт. В большинстве случаев в проге используются локальные переменные (в том числе и локальные функции). Это позволит экономить память, так как когда задаются локальные переменные в функции, по завершении этой функции они все удаляться из памяти. Освободив как саму переменную, которую мы сможем использовать с таким же именем, так и место в памяти. В общем, экономия и порядок будет в коде тех кто использует локальные переменные. Способы выявления ошибка: Как правило строку в которой произошла ошибка и путь к ней пишется на экране, где бы вы lua не использовали. Но если случилась непонятная ситуация - ставьте print(здесь нужная переменная). Так мы сможем проверить, соответствует ли переменная тому что мы хотим получить. Если нет - решаем причину несоответствия. А так же мы можем написать следующую конструкцию print(type(x)), где мы проверим тип переменной x ( в вашем случае другой переменной). Для чего нужно? А вот например случается беда когда числовая переменная с какой то кстати становится строкой. (как произошло в моей проге Open Clicker). В итоге цифра как бы есть, но не производятся всяческие вычисления. Так как тип переменной - string. В данной ситуации на помощь приходят функции tostring() и tonumber() которые пытаются перевести переменную в стоку и число. Например tonumber("1".."02"). В данном случае две string строки сложатся в одну строку и переведутся в тип число. Как предотвратить ошибки: Учиться программировать. Использовать хороший текстовый редактор с подсветкой синтаксиса (очень помогает при выявлении лишнего или недостающего end). У меня вот стоит Notepad++, поддерживает вкладки что тоже удобно. Да и нумерация строк полезна. Не в коем случае не программируйте в стандартном блокноте или ещё хуже в OpenOS. Это возможно, но крайне не удобно.
  18. В общем я тут во время тестирования написал программку, которая позволяет программировать робота через таблички. Как вам такая идея? И самое главное, какие у вас есть предложения, по тому как расширить вместительность табличек (более 15 символов не вмещается, а это уже мешает роботу передвигаться) А таблички из библиокрафта не хотят работать с роботом. Скрины работы:
  19. Добрый день, любители редстоун схем! Сегодня, вашему вниманию представляется полноценный редстоун контроллер redcontrol (оригинальное название ) Но всё не так скучно как может показаться В программе есть: Возможность подавать обычный редстоун сигнал мощностью 15 Подавать цветной сигнал (16 цветов) мощностью 255 Принимать редстоун и цветной редстоун сигналы и видить их характеристики (цвет и значение) Управлять всеми шестью сторонами редстоун блоков (компов) Управлять всеми блоками редстоуна которые подключены в сеть В программе нет: Возможности задавать свою мощность генерации сигнала, кроме максимального (мне показалось это лишним) Управление: Красная кнопка справа сверху - выход Жёлтые указатели там же в углу - переход на между блоками Цветные кнопки - включение/отключение генерации выбранного сигнала Индикаторы: Буква G - генерация сигнала Цифры - мощность полученного сигнала Дробь в углу - текущий блок / число блоков в системе Скрины: Ссылка на код: http://pastebin.com/A8HHPHPB Рекомендации: Можете использовать как блоки, так и редстоун карты 2 ур. Но не в коем случае не ставьте карту 1 ур. Не ломайте редстоун блок на котором стоит прога - словите ошибку. Словили ошибку - лучше перезагрузите комп (для очистки event.listen) А с вами был qwertyMAN, удачной игры! Обновлено до v1.1 Добавлено: -Работа полностью на event (по идее теперь лагать не должно не у кого) -Исправлен вылет при отключении компонентов. Теперь можно со включенной прогой подключать/отключать компоненты
  20. Итак, сегодня ночью я извлёк свою лопату, и воскресил давно забытую тему - битвы роботов! Если кто-то помнит прошлую тему - она загнулась из-за неопределёности, сложности и отсутствия некоторой усидчивости её участников. В этот раз всё будет по другому. Я упростил правила и выкинул всё лишнее. И нарисовал няшный логотип. :3 Суть В битве участвуют команды роботов, по N роботов на участника. Количество не важно - сколько наберём участников, столько команд и будет. Участники эвента (игроки) пишут софт для своих роботов. Разрешается использовать как одинаковую программу для всех роботов команды, так и отдельную для каждого. Битва будет происходить на заранее подготовленной арене. Карта будет известна заранее. Координацией игры занимается центральный Сервер. В день Ч роботы строятся на арене, на стартовых позициях. По сигналу Сервера игра начинается и роботам разрешается двигаться. Правила победы и доступные действия зависят от Этапа. Этап 1: Песочница Ориентировочное время проведения самой битвы - зимние праздники. У нас есть месяц на подготовку арены и написания софта. Участники первого раунда: @Totoro, @NightFury, @Quant, @Seryoga, @Fingercomp, @FluttyProger, @astral17, @ALeXeR, @electronic_steve, @LuaGamer, @Nikitat. Оставляйте заявки мне в личку или внизу, в этой теме. Правила Правила первого раунда просты. Все участники играют против всех. Весь раунд будет разбит на матчи, по четыре участника. Каждый участник будет вести команду из 4 роботов. На поле, в случайных местах в полу будут появляться сундуки с монетками. Цель роботов - собирать эти монетки быстрее роботов противника и сбрасывать в воронки на "спавне" своей команды. Кто к концу раунда набирает большее количество монеток - тот победил. Робот может получить дисквалификацию за: Фальстарт. Если начнёт двигаться до сигнала Сервера. Ломание блоков. Если он сломает блок арены/сундук/чужого робота или ещё что-то. В последующих раундах ломание может быть разрешено, но в Песочнице - другая цель. Забагованность и лаги. Если программа случайно или намеренно создаёт жуткие тормоза или просто направлена на вредительские цели =). Тут будет решать админ. Ориентировочное время раунда, от старта до подсчета результатов - 5 минут. Каждые 10 секунд, Сервер будет рассылать сообщение для синхронизации времени. После финального сообщения, раунд считается завершённым и тут же происходит подсчёт монеток в сундуках команд. Монеты, оставшиеся у роботов на момент финиша, учтены не будут. Технические детали По части модов и версий ориентируемся на MC 1.7.10 + OC 1.6 + CX 1.6.1 + OpenPeripheral AIO-7. Генерация монеток на поле будет происходить с помощью командного блока. При генерации, блок пола будет заменён на сундук с монеткой. По истечении времени сундук исчезнет и заменится обратно блоком пола. Чтобы роботы узнали о положении монетки, после генерации центральный сервер будет слать сообщение с координатами монетки по беспроводной сети. Все роботы будут иметь одинаковую конфигурацию и чистую OpenOS 1.6 на борту. Однако разрешается писать разные программы для разных роботов. Арена доступна для скачивания в виде карты: https://dl.dropboxusercontent.com/s/epcz034fsumhsr7/ut-world.zip Подготовка Нам необходимо подготовить к началу эвента несколько мелочей. [ГОТОВО] [2016-12-06] Подготовить арену. Надо построить поле подходящее по размеру для двух-четырёх команд по четыре робота. (Само пространство арены, где будут двигаться роботы сильно загромождать не надо. У нас сейчас упор не на поиск пути.) Оградить его сверху стеклом, чтобы не дать роботам случайно удрать. Расположить информационный монитор, компьютер центрального Сервера. Обустроить места для зрителей. [ГОТОВО] [2016-12-16] Написать софт для Сервера. Сервер должен уметь объявлять начало матча по сети, генерить монеты, рассылать сообщения с их координатами и подсчитывать по завершению матча количество монет в сундуках команд. [НЕ РЕАЛИЗОВАНО] [2016-12-28] Написать проги для голопроекторов и инфо-панелей. Там не всё так сложно: просто рисовать красивенько инфу о матче. [ГОТОВО] Собрать заявки участников. Я полюбому участвую. Обновления [2016-12-01] Ссылка. Арена. Инфа о всех софтверных компонентах. Планы. Архитектура. Гитхаб. Люди и коммуникации. [2016-12-02] Ссылка.В продолжение к предыдущему апдейту. [2016-12-08] Ссылка. Ссылка на карту арены. Изменён состав модов. @astral17 получил доступ к GitHub-репозиториям. Ориентировочная дата завершения написания сервера. Канбан. Планшетов не будет. Гитхаб. [2016-12-14] Ссылка. Написан сервер. Установка сервера. Софт и планы. [2017-01-02] Ссылка. Конфигурация роботов. Процесс настройки перед стартом. Уточнение правил. Сообщения сервера. Изменение даты; время, место. Софт. [2017-01-20] Ссылка.Дата, время, место, распорядок проведения раунда. [2017-01-21]. Ссылка.Итоги и планы. Ну что, посражаемся?
  21. В далеком 93-м, когда программировал на ассемблере под КР580ВМ80А, была программа "Отладчик", которая показывала значение всех регистров, можно было делать точки останова программе.... Возможно ли такое для LUA? Какие есть инструменты, методы, чтобы выявить ошибки кода?
  22. 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
  23. У нас тут новый мини-конкурс. Ну вы наверное знаете. (Если не знаете - забегите к Фингеру в блог, почитайте, и присоединяйтесь к веселью. ) Смысл такой, в двух словах: есть картинка, надо её распарсить и нарисовать ascii-символами в консоль. Можно юзать абсолютно любой язык программирования. При этом надо постараться сделать свой код как можно короче. Ну, в общем читайте точные правила у Фингера. В эту тему можно постить свои решения. Только оформляйте исходники в теги "code". Обсуждаем в чате или в IRC, чтобы не захламлять тему. На задачку даётся неделя времени. Но она лёгкая, так что я посидел вечером и написал, для почину, свой вариант. Язык: Scala 2.11.8 (Java >= 7) Вес (по минимуму): 620 байт Полный код (в читабельном виде): import java.nio.file.{Files, Paths} import java.nio.{ByteBuffer, ByteOrder} object BumpGold extends App { def word(array: Array[Byte], offset: Int) = ByteBuffer.wrap(array, offset, 4).order(ByteOrder.LITTLE_ENDIAN).getInt val array = Files.readAllBytes(Paths.get(args(0))) val offset = word(array, 10) val width = word(array, 18) println( (for(i <- offset until array.length by width*4) yield array.slice(i, i+width*4).map(_ & 0xFF).grouped(4) .foldLeft("")((a, b) => a + ((b(0), b(1), b(2), b(3)) match { case (_, _, _, a) if a <= 0 => " " case (r, g, b, _) if r < 51 && g < 51 && b < 51 => "█" case (r, g, b, _) if r < 102 && g < 102 && b < 102 => "▓" case (r, g, b, _) if r < 154 && g < 154 && b < 154 => "▒" case (r, g, b, _) if r < 205 && g < 205 && b < 205 => "░" case _ => "·" })) ).reverse.mkString("\n") ) } Прогон с тестовой картинкой (16 на 16): Ещё одна картинка: http://i.imgur.com/Hp0EBs7.png Минифицированный код: http://pastebin.com/27fntVdz Кто рискнёт побить мой рекорд?
  24. Привет всем любителям покодить. Только вот как больше месяца назад орден К.А. представил на общее обозрение сборку под названием RoboCraft. Многих она привлекла своими особенными модами. Я лично как технарь довольно таки нейтрально отношусь к этой сборке. Не сказать что она уж совсем полное УГ, но и игровой процесс для меня в ней не сильно затягивает. Про эту сборку Алекс говорил уже довольно таки давно, мотивируя тем что сборка Information Technology скучна и неинтересна. Я бы конечно мог поспорить с этим, но по правилам запрещены дебаты с администрацией (хотя тут скользкий вопрос, если учесть что я сам так-то косвенно отношусь к руководству проекта ). Так вот к чему все я это. Недавно в одной из тем я предложил поднять сборку Information Technology на хост, на котором ранее стояла сборка WitchCraft. Многие тогда поддержали эту идею. Но мы там так за дискутировались, что эту тему даже закрыли и удалили. Поэтому я решил создать специально для этого вопроса новую тему и спросить у Вас геймеры, если ли желающие воскресить и поднять похожую сборку Information Technology на 2 хосте? Конечно прям ту же самую сборку которая была поставить не получится (хост возможно не выдержит ее), да и она наверное многих уже наскучила. @Quant предложил поставить свою сборку (SpaceTech), немного ее модифицируя. Так как необходима легкая и простая сборка, которая бы была и функциональная для кодинга и могла без сбоев работать на сервере и маломощных ПК. Если есть такие желающие, то просьба собраться здесь и обсудить план работы для быстрого развертывания сборки. Если же желающих не будет, то через неделю после создания этой темы ее можно закрывать и отправлять в мусорку.
  25. Всем добрый день. Сегодня пришла такая идея, реализовать в майнкрафте мини-игру по ловле покемонов, без риска быть сбитым на улице машиной играя в pokemon go на смартфоне, ну или избитым бабками в храме гопниками на улице. В чём суть: У нас есть планшет и очки OpenGlasses. На планшете пишется где в радиусе 100 блоков спрятан воображаемый друг. На очках из OpenGlasses это всё отображается как цветной кубоид в мире, ну или если кто в 3D спец, может какую нибудь модельку приделать Пикачухи (одну на всех). Синхронизируется всё по модему, который находится на спавне и генерирует всех покемонов в мире, а точнее их координаты. Ловятся они при помощи команды в чате "#pokemon ya vibirayu tebya grab", которую успешно отлавливает чатбокс и записывает в планшет уникальный одноразовый id. (конечно можно его сообщить другому игроку (передать покемона), но от этого мало пользы)) Далее с этого же планшета можно обменять (продать) покемона на UU. (в это время id покемона сообщается на базу, где UU переводятся игроку и id покемона удаляется из базы данных, дабы не кто не смог с планшета жульничать и продавать много раз) Что думаете по поводу этой идее пишите в комменты. Если кто то хочет приняться за разработку, я буду только рад. P.S. Да, я знаю что есть мод Пиксельмон. Но его никто не будет ставить на сервере, и там нет призов в виде UU.
×
×
  • Создать...