Appo
Пользователи-
Публикации
72 -
Зарегистрирован
-
Посещение
-
Победитель дней
8
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Appo
-
Еще 4 игры которые подталкивают вас программировать: From the depths: Lua Space Engineers: C# Kerbal Space Program: C#, C++, Java, Lua, Python, KerboScript Dual Universe: Lua Подробнее: > From the depths [Lua] From The Depths - мультиплеерная песочница, где игроки могут строить свои собственные военные корабли, оружие для них, и воевать с другими игроками! > Space Engineers [C#] Space Engineers (Космические инженеры) - это песочница о конструировании, создании и обслуживании космических объектов. Вы можете создавать пилотировать космические корабли, строить огромные космические станции, добывать ресурсы. > Kerbal Space Program [C#, C++, Java, Lua, Python, KerboScript] Kerbal Space Program - Игра в которой игроки создают и управляют своей собственной космической программой. Постройте космические корабли, управляйте ими и постарайтесь помочь Кербалам выполнить их конечную миссию по покорению космоса. Существует 2 мода на программирование: - kOS (свой язык KerboScript) Скачать Быстрый старт (Видео) - kRPC (C#, C++, Java, Lua, Python) Скачать > Dual Universe [Lua] Dual Universe - Научно-фантастическая игра песочница на тему космической колонизации и освоения других планет. Dual Universe основана на технологии CSSC, при помощи которой можно поддерживать одну вселенную с сотнями тысяч игроков без загрузочных экранов. Игра будет использовать воксельный движок, позволяющий модифицировать все игровое пространство. Финансирование игры частично поступает из Kickstarter. Игра находится в закрытой альфе и активно развивается. Необычная система программирования на Lua показана в офф. ролике . Написанные программы выполняются на компьютере игроков, не нагружая сервер. P.S. > Буду благодарен если вы напишете о других играх (может с модами) в которых есть возможность программировать кря
-
чекни, может поможет бочка - https://www.geogebra.org/3d/q2u2qt98 конус - https://www.geogebra.org/3d/ry8begsr утолщение конуса (наращение высоты и радиуса) вывел через подобие треугольников Пояснения:
-
Download: pastebin get j9kBudRV paint Перед первым запуском сломайте проектор если он у Вас есть Условия: - Наличие Sensor из мода OpenPeripheral и его подключение через адаптер Использование: - Наличие меча в руке ( или любого предмета способного блокировать на ПКМ ) - Поставить блок ПКМ + Shift - Удалить блок ПКМ -- TODO модеры переделайте если не удобно обьяснил, если прочли стерите) Значение кнопок снизу вверх ⯅ - Смена цвета - Установка блока перед глазами - Режим кисти "линия" - Увеличить голограмму - Уменьшить голограмму - Стереть всё - Скрытие кнопок (эта кнопка тоже скроется, но нажать всё равно будет можно) От себя:
-
download pastebin get gZLj7Y7v holo Использование: holo <правило> *** Правила, при которых клетки "рождаются" и "умирают" Если просто ввести holo, тогда запустится правило по умолчанию, тоже самое что и: holo 5 6 7 8 5 - это число при котором клетка "рождается" 6,7,8 - это числа при котором клетка остаётся "жить" (не умирает) Статья с правилами где были обнаружены планеры (смещающиеся, повторяющееся фигура): http://www.complex-systems.com/pdf/16-4-7.pdf Так правило программы выглядит в статье 6,7,8/5 Краткий принцип при правиле 6,7,8/5: *** Для каждой живой клетки, вокруг проверяются ячейки, в 3-х мерном пространстве их 26 шт. и если вокруг клетки 6 или 7 или 8 клеток, она остается жить. Для каждой "пустой" клетки вокруг "живых" проверяется 26 ячеек, и если есть ровно 5 "живых", то эта "пустая" клетка становится "живой" Game of life в 2D Планер
-
- Не работает вставка из буфера обмена в консоль (колёсиком мыши) - Не запускает команды Прочитав пост полностью, оказалось что нужно было инициализатор OS запустить командой /WinOS/init.lua , вбив ручками и запустив, появилось окно что и на скрине ниже, только было всё чёрное, ну я немного потыкал по клаве и нажав enter, отобразился красный текст (часики в углу работают норм)
-
Кто нибудь тестить будет? (построить будку из которой управлять роботом) Или всем продолжать трепаться не основываясь ни на чём?
- 60 ответов
-
- opencomputers
- minecraft
- (и ещё 4 )
-
Кто-нибудь тестил или собирается тестить? Думаю без данных, не опираясь не на что, более сложно прийти к списку благоприятных начальных условий, списку целей игры, списку знаний без которых нельзя в это играть, что и где нужно упрощать/запрещать и т.д. Предлагаю всё же кому-то протестить и отписаться о полученных данных тут (даже если они не удачные), иначе, как по мне, дальнейшее обсуждение бессмысленно.
- 60 ответов
-
- opencomputers
- minecraft
- (и ещё 4 )
-
@@eu_tomat , как ты пришел к такому решению? i=idx x=i%80 i=(i-x)/80 y=i%64 i=(i-y)/64 z=i
-
Если мне нужно будет перебрать массив, как мне вытащить координаты из номера ячейки массива? я придумал иной способ local function r(xx,yy,zz) return zz+yy*256+xx*65536 end -- Получаем 16-ричный код из координат для использования одномерного массива с целью экономии памяти local function toXYZ(id) -- Получаем координаты из 16-го кода local f, g = ("%X"):format(id), "0x" f = string.rep("0",6-#f)..f return tonumber(g..f:sub(1,2)), tonumber(g..f:sub(3,4)), tonumber(g..f:sub(5,6)) end local h = {} h[r(1,2,3)] = "XXX" -- координаты x = 1, y = 2, z = 3 print( h[66051] ) -- Выведет: "XXX" print( toXYZ(66051) ) -- Выведет 1,2,3 Но он не совсем подходит, так как большой размер, а именно = 256*256*256 . в следствии чего, ячейки массива занимают много места в файле. Как сократить размер до 80x64x80 ?
-
Один человек попросил написать программу, предназначенную для отображения моделей в формате .3dm, используемом программой print3d (и подобных ей). Думаю программа достойна публикации pastebin get pTAFxX5K holo Запуск: holo <Файл модели> <Номер блока> скрины Минусы: - максимум 3 цвета (если их больше, в месте не достающего цвета ставится случайный, уже использованный цвет) - модель для 3d принтера должна содержать цвета. а не только одну текстуру Строка содержащая цвет: { 0,0,0,16,16,16,texture = "iron_block", tint = 0x00ee00 }, Строка не содержащая цвет { 0,0,0,16,16,16,texture = "iron_block"}, Но я всё-таки думаю что этот сайт получше будет использовать http://f0x.me/OpenComputers-3D-Designer/ (если не ошибаюсь, автор Крутой)
-
local h = {} function add(x,y,z,f) h[x] = h[x] or {} h[x][y] = h[x][y] or {} h[x][y][z] = f end add(1,2,3,"xxx") print( h[1][2][3] ) --> xxx Есть ли способ делать то же самое, но по короче? И как можно написать эту функцию для добавления значений в разные массивы? (с использованием ооп и без)
-
@@eu_tomat , думаю улучшить всё-таки можно, например ни кто не отменял апгрейд чата из conputronics Претензий у меня нету, я лишь хотел по подробнее узнать о ваших предложениях и обсудить их Вы и так много полезного сказали, я вам благодарен) P.s. Ах да.. и интерес угасает, из за не надобности этого робота ( как оказалось на сервере, где я играю, костыльная защита от грифа роботом из за чего робот не может получать данные об инвентарях) T_T
-
Что именно испортилось? Всё осталось прежним, я лишь добавил возможность сканирования инвентаря робота, вдруг игрок в него захотел положить компоненты. Ставь монитор, кто тебе мешает? Я разве говорил "не ставьте монитор" ? Я сделал и так и так, для удобства, позже попробую сделать отображение на экране через использование биоса Тогда придётся сканировать бд, а потом каждый слот отсеивать на основе данных из бд, куча времени, но реализуемо, хотя я не вижу в этом смысла, если игрок может и одно улучшение инвентаря засунуть, тогда скролить не надо будет. Если вы считаете что это действительно необходимо, пожалуйста упомните об этом еще раз. Как это реализовать? Разве ивенты не будут путатся в очереди? А если я в определенный момент не успею проверить ивент и он проигнорится? При дополнении новыми возможностями не изменяя прежний принцип работы, типо это регресс? окда Спасибо) Не знал..
-
Вновь обновил (ссылка в первом сообщении темы) Теперь сундук над роботом не обязателен, можно во внутренние слоты робота пихать. (При перемещении предметов шифтом в робота, сначала предмет попадёт в его лапки, только потом в инвентарь) Вот такой комп можно собрать, используя EEPROM ( Без запуска OpenOS и без монитора ) Кому интересно как я изменял программу по мере критики, то вот старая версия, а вот еще старее старой
-
Обновил программу, с учётом всей критики ( жду новую ) Старая версия
-
Он не должен их обслуживать, лишь заполняет схему из бд.. Например если реакторов много, а теплообменники не стакаются.. По поводу замечаний и критики, огромное спасибо) Не знал как это по другому делается, делал как умел) Обязательно всё учту и переделаю)
-
Эта прога универсальная. Как на биосе, так и на OpenOS работает
-
Робот выставляет в реактор записанную Вами схему из базы данных используя компоненты из сундука над ним или из внутреннего инвентаря Установка: pastebin get NAuav7sx q Минимальная конфигурация робота: Процесс использования:
-
Вы предлагаете мне сжать код? Если так, то для какой цели? Размер программы 1698 байт. У меня не стояло такой задачи, и я упёрся в функционал.. Ну а вашу тему я посмотрел в первую очередь перед созданием этой программы
-
Делав свой интерпретатор для EEPROM заметил что API computer отличается от его прокси. То есть computer уже поключен. поэтому его прокси не обязательно получать, но если получить, тогда они отличаются. Так вот, вопрос. можно ли из полученных прокси собрать например свой computer.pullSignal() ? или можно ли это как то использовать? Скрин:
-
функция os.sleep() нужна для экстренного остонова в обработчике ошибок (который активируется после запуска программы). Она срабатывает только после получания сообщения exit на порт. Например вы создали программу "123" и засунули туда код: while true do computer.beep(1000,0.2) os.sleep(1) end и если вы запускаете код командой "get run 123" и попадаете в обработчик ошибок, где можно нажать 2 кнопки "q" и "w". Если вы нажмёте "w", тогда например дрон, в данном случае, выйдет из бесконечного цикла. По поводу maxPacketSize(), в интерпретаторе реализована отправка по частям, например изменив переменную limit в интерпретаторе, например на 3, тогда Ваша программа будете передаваться по 3 символа, и собираться в кучку уже в EEPROM того устройства, которому вы послали сигнал. По поводу безопасности я согласен, но "рукопожатий" не достаточно, можно взять устройство со всеми открытыми портами и слушающими эти порты, узнав порт устройства можно просто зафлудить и EEPROM просто не будет успевать сортировать эту дрисню с нормальными сигналами. Для безопасности предлагаю вам посылать программы с бесконечным циклом. Например "while true do drone.move(0,1,0) end". На мой взгляд максимум безопасности я сделал, замазывая порты звёздочками Можно посылать на него любые программы которые когда то уже были написаны для EEPROM. например для дронов, но для роботов не все. Вы можете подключится к роботу и ввести команду " components robot ", для EEPROM, там будет совершенно другое API Так же, удобной возможностью является просмотр доступных компонентов устройств и их методов ( components )
-
Позволяет передавать выполняемый код, с одного устройства на другое. Например можно дрону передать команду drone.move(0,1,0) и он подлетит вверх, но дроном этот интерпретатор не ограничивается Установка: pastebin get EQkw9cL7 dcp Тем, кому интересен биос: Необходимые платы для запуска: - Беспроводная или связанная плата - Интернет плата Использование: Доступные команды в интерпретаторе: help components - Список компонентов components [<device>] - Список методов компонента online - Список онлайн устройств start - Запуск всех устройств = date - Вернуть дату записи EEPROM Доступные команды при запуске программы: dcp help dcp <port> - Запуск консоли dcp new <port> - Запись EEPROM dcp run <name programm> <port> - Запуск программы dcp pastebin <kode pastebin> <port> - Запуск программы c pastebin Некоторые возможности использования: - все компоненты уже подключены, т.е. не обязательно получать прокси компонентов - в интерпретаторе работает знак "=" который пишется перед командой, что бы возвратить какое-то значение (написано жёлтым текстом) - можно запускать программы прямо с компьютера (dcp run) где установлена программа или сразу с pastebin (dcp pastebin) - добавил функцию os.sleep(). Если вы будете использовать ее как основной способ задержки, тогда можно будет экстренно завершать программу в обработчике ошибок (который активируется после запуска программы dcp run) - получение ошибок с запущенных программ, для их удобной отладки (если что, ошибка приходит на порт+1 , т.е. если вы ввели порт 25, то ошибка вернётся на порт 26) - создание стаи из дронов / роботов / планшетов ;D - управление системным блоком (которому даже моник не нужен), что то типо микроконтроллера, только можно будет работать удалённо с периферией: адаптерами, голограммами и т.д.
-
Раз курсор мигает относительно уловленных событий, то нельзя ли сделать мигание относительно времени работы компьютера? computer.uptime()
