Лидеры
Популярный контент
Показан контент с высокой репутацией 13.06.2020 в Сообщения
-
2 баллаДобрый день, надеюсь не забыли обо мне! А я пришёл вам новую программу показать Давайте разбираться... Пример работы: симуляция магнитного поля между двумя полюсами Описание: Программа написана на языке программирования lua и работает на движке love2d Визуализация использует GLSL шейдеры версии 3 Для хранения работ используются отдельные файлы с шейдерами, чтобы не трогать весь код программы Кнопки внизу экрана скрываются до наведения на них мышкой Кнопки хранятся как объект со своими функциями и свойствами внутри. И вкладываются в массив инструментария Пример работы: волны искажений Возможности: Навигация и/или зуммирование на колесо мыши Несколько типов анимации. (на кнопку включается анимация движения волн, остальные типы пишутся в шейдерах) Сохранение кадра Сохранение анимации Настройка "шага волны" и скорости течения времени кнопками (обязательно необходимо для построения кадра) Видеообзор: Готовые gif анимации: Рисунок электромагнитных полей: Волновые искажения: Цветные иллюзии: Иллюзия в том, что кружков (кроме двойного) нет. На этих участках случайно совпадают цвета Прочее: Обычные рисунки: Эксперименты над волнами: История версий: Кто-то тут может сказать: "а где ссылка на программу?" А её и не будет пока не реализую нормальную систему сохранений. Почему тогда я выкладываю недоработку? Потому что мне нужно рассказать о проекте для резюме. Это моя лучшая программа и я её люблю. Оттягивать нет смысла, первая версия разрабатывалась ещё полтора года назад. А значит до релиза четвёртой ждать ещё неизвестно сколько. Так что спасибо за внимание! Если вдруг кому-то тема визуализации так же интересна как и мне - пишите в ЛС. Было бы интересно обсудить.
-
2 балла
-
1 баллНакодил для себя монитор реактора из Extreme Reactors с поддержкой МЭ системы и хранилища из EnderIO Прога с простым интерфейсом и крупным текстом, без всяких графических штучек, текст легко читается с экрана с большого расстояния Что умеет: Вывод имени реактора (Если несколько реакторов то делаете несколько таких мониторов, и по имени реакторы будет проще найти) Расчет времени работы на остатке топлива (Если включена поддержка МЭ то расчет ведется с учетом йеллоурита в МЭ системе) Режим хранения (В этом режиме программа будет поддерживать ВЫКЛЮЧЕННОЕ состояние реактора) Время последнего включения реактора Вывод мощности реактора, вывод остатка топлива в МЭ и в самом реакторе, вывод запаса энергии в батарее EnderIO Поддержание нужного уровня заряда батареи реактора Что не умеет (Но возможно будет добавлено): Не поддерживается несколько экранов Не поддерживаются несколько реакторов Не поддерживаются турбины Нет управления по модему Проблемы: На 1.12.2 накопитель из EnderIO не считывается адаптером как мультиблочное хранилище, поэтому выводится информация только об одном блоке накопителя (На 1.7.10 все работает) Конфиг: reactor_Control = true, -- Разрешить управление реактором reactor_Storage_Mode = false, -- Режим хранения реактора, программа всегда будет поддерживать ВЫКЛЮЧЕННОЕ состояние ME_Storage_Support = false, -- Поддержка внешнего хранилища (Расчет остатка времени работы с учетом топлива в хранилище, и вывод топлива в хранилище на экран) EIO_Capacitor_Support = false, -- Поддержка EnderIO (Вывод запаса энергии на экран) reactor_Percent_Off = 100, -- Процент заполнения батареи реактора при котором он автоматически выключится reactor_Percent_Hysteresis = 5, -- Гистерезис заполнения батареи реактора reactor_Name = 'Nexus-6', -- Имя реактора Установка (Версия для Extreme Reactors): wget https://raw.githubusercontent.com/whoisnotthere/Extreme-Reactors-Display/refs/heads/main/reactor.lua /home/reactor_Display.lua Страница на GitHub
-
1 баллПервый пост. Ну все же хоть что то. Хочу показать свою небольшую поделку по теме инфраструктуры. Посмотреть и скачать ее можно тут: pastebin run mn7W46KJ Задача программы проста. Вывод значений энергетических ячеек из thermal expansion и заполненность резервуаров из immersive engineering. Автоматическое включение двигатель если средний объем ячеек стал ниже заданного значение и заряд до 100%. Среднее значение по кол во ячейкам подключенным к адаптеру. Делал все через огромные table с id которые потом становятся объеками (эффективно ли это по памяти?) Задача оказалась не так сложна как я думал и больше я завис на графике... Потыкав несколько готовых либ понял что ничего не понял (как это обычно бывает) и решил нарисовать свою графику. Единственное что не понял как запускать event отдельно и реагировать на него поэтому сделал пока вот так: Надеюсь вы подскажите как это лучше решить. Буду благодарен. Ну и скриншотики
-
1 баллПервый опыт компиляции и правок OpenComputers Задача: Собрать мод OpenComputers, проверить его работоспособность в игре, внести небольшие правки в мод и также проверить их работоспособность в игре. Мой путь к решению: Первая страница поисковой выдачи по фразе «opencomputers build mod» не показала ничего интересного для меня. Зато фраза «opencomputers build from source» быстро привела меня на страницу https://ocdoc.cil.li/tutorial:debug_1.7.10 Команды инструкции несколько отличаются от тех, что я применял раньше. Поэтому я задал себе два вопроса: Чем отличается вызов gradlew от gradle? Чем отличается setupDecompWorkspace от setupCIWorkspace? На первый вопрос я ответил неправильно. Из найденной информации я понял, что обёртка gradlew используется для того, чтобы не морочить себе голову отдельной установкой Gradle и всё необходимое устанавливать через скрипт. Но у меня же уже установлен Gradle! Поэтому проще использовать именно его. Ещё не понимая, в чём грабли, я в хаотическом порядке побежал по коммитам, дойдя чуть ли не до начала репозитория. Но gradle упорно выдавал ошибку даже при запуске без параметров: $ gradle ... A problem occurred evaluating root project 'OpenComputers'. > Failed to apply plugin [id 'forge'] > Could not create task of type 'ReobfTask'. Поиск по фразе «gradle Could not create task of type ReobfTask» не дал ничего вразумительного кроме того, что может быть неправильной версия не то Gradle, не то Forge, не то Minecraft, не то JDK. Так я ходил по граблям около двух часов, пытаясь что-то изменить в конфигах Gradle и переходя от коммита к коммиту. Почувствовав усталость, я решил, что зашёл в тупик, и чтобы выйти из него, мне следует взять перерыв, и отдохнув, найти новую точку для приложения усилий. Так я и сделал. Отдохнув, я ещё раз почитал об отличии gradlew от gradle, вспомнил, что встреченная мной ошибка может быть вызвана неправильной версией Gradle, и сразу осознал упущенный мной нюанс: gradlew – не просто обёртка, и позволяет не просто обойтись без установки gradle, а без установки требуемой версии gradle. Проверяю предположение: $ gradle -version Gradle 2.10 $ ./gradlew -version Gradle 5.6.4 Так и есть! Вывод: Для ускорения продвижения в изучении в первый раз следует максимально чётко следовать инструкциям. А уже имея эталонный рабочий вариант, можно смело экспериментировать. Зная, в чём именно я совершил отклонение, можно быстрее находить и причину неудачи тоже. Я быстро отработал ту часть инструкции, которая не касалась использования IDE, нашёл файл свежесобранного мода, переместил его в каталог с остальными модами и запустил игру: $ git clone https://github.com/MightyPirates/OpenComputers.git $ cd OpenComputers $ ./gradlew setupDecompWorkspace $ ./gradlew build $ find . -name OpenComputers*.jar ./libs/OpenComputers-LuaJ.jar ./libs/OpenComputers-JNLua.jar ./build/libs/OpenComputers-MC1.7.10-1.7.5+f73dd9e-dev.jar ./build/libs/OpenComputers-MC1.7.10-1.7.5+f73dd9e-javadoc.jar ./build/libs/OpenComputers-MC1.7.10-1.7.5+f73dd9e-api.jar ./build/libs/OpenComputers-MC1.7.10-1.7.5+f73dd9e-sources.jar $ mv build/libs/OpenComputers-MC1.7.10-1.7.5+???????-universal.jar ~/.minecraft/mods/OpenComputers-MC1.7.10-1.7.5+test-universal.jar Работает! Отвечая на второй вопрос и вникая в нюансы Gradle, я узнал, что его задачи зависят друг от друга. И если я верно понял, то для сборки мода достаточно лишь скачать репозиторий и запустить сборку мода. Необходимые для этого этапа подзадачи будут выполнены автоматически. Проверяю: Для чистоты эксперимента удаляю папку с модом и пользовательскую папку Gradle: $ rm -rf OpenComputers $ rm -r ~/.gradle И получаю собранный мод минимумом команд: $ git clone https://github.com/MightyPirates/OpenComputers.git $ cd OpenComputers $ ./gradlew build Остаётся лишь перенести мод в каталог с другими модами: $ mv build/libs/OpenComputers-MC1.7.10-1.7.5+???????-universal.jar ~/.minecraft/mods/OpenComputers-MC1.7.10-1.7.5+test-universal.jar С компиляцией и сборкой я разобрался. Теперь пора что-нибудь изменить в моде. Чтобы не выдумывать задачу, я вспоминаю исходную цель. В OpenComputers мне не нравится механика управления нагрузкой от пользовательских скриптов. Что я об этом знаю? Во время длительных вычислений я могу получить ошибку «too long without yielding». Попробую найти эту строку в исходниках: $ grep -ir 'too long without yielding' src/main/resources/assets/opencomputers/lua/machine.lua:local tooLongWithoutYielding = setmetatable({}, { __tostring = function() return "too long without yielding" end}) Удача! Это файл на Lua, и мне сейчас, возможно, не потребуется вникать в Scala. Открываю этот файл первым подвернувшимся под руку редактором: $ nano src/main/resources/assets/opencomputers/lua/machine.lua Ищу, как используется переменная tooLongWithoutYielding. Ошибка с таким исключением генерируется лишь в одном месте, в функции checkDeadline() по результатам проверки computer.realTime() > deadline. Ищу, где и как используется переменная deadline. Стараясь не вникать в детали кода, я нахожу участок, который с наибольшей вероятностью задаёт время, в течение которого пользовательский скрипт может работать без уступки времени: deadline = computer.realTime() + system.timeout(). Лучших вариантов я не вижу, поэтому правлю эту строку. Проверяю выполненные изменения: $ git diff --- a/src/main/resources/assets/opencomputers/lua/machine.lua +++ b/src/main/resources/assets/opencomputers/lua/machine.lua @@ -1486,7 +1486,7 @@ local function main() ... - deadline = computer.realTime() + system.timeout() + deadline = computer.realTime() + 10 --system.timeout() По уже отработанной схеме компилирую мод, переношу его в папку с модами и запускаю игру. Для проверки внесённых в мод изменений я запускаю тестовый скрипт: # lua lua > clock=os.clock t_=clock() pcall(function() while true do end end) t=clock() print(t-t_) 5.000662049 Вроде бы ничего не изменилось. Но я перезагружаю тестовый компик и снова запускаю скрипт. Получаю результат: 9.999750501 Сработало! Подобного поведения можно добиться и банальной правкой конфига, но моя цель заключалась в достижении того же эффекта правкой исходников мода. Результат: Я смог скомпилировать мод OpenComputers, осознал пользу обёртки gradlew, нашёл минимальный набор команд для компиляции, а также внёс работоспособное изменение в мод. Ближайшие планы: Во время решения этой задачи я снова уклонился от использования IDE. Но сейчас я начал серьёзно колебаться, выбирая между двумя направлениями: приступить к поиску оптимального алгоритма управления нагрузкой, или же всё таки освоить работу с IDE хотя бы на базовом уровне.
-
1 баллКакие требования клана требуют перенастройки? Если шрифт не меняется, то нужны всего 10 картинок для 10 цифр. Далее на скриншоте ищем все цифры с их позициями. Имея значения цифр и их позиции на скриншоте, вычисляем составленные из цифр числа с их позициями на скриншоте. По значению числа определяем нужное действие. И если галочки-крестики всегда находятся на одинаковом смещении от чисел, то и позиции кликов тоже вычисляем, просто добавляя смещение. При изменении требований клана достаточно изменить одно число, задающее порог вхождения. Или о какой рутине идёт речь? Выше уже предлагалось использовать библиотеку OpenCV. Также существуют описания удачных попыток научить ботов видеть "именно числа". Например: Python + OpenCV + Keras: делаем распознавалку текста за полчаса.
-
1 баллПервый раз вижу витчери, но Фингер заинтриговал. Хочу вызывать себе котеек!
-
0 балловЖаль, что нет кода. В давние времена, когда я интересовался темой процедурной генерации графики, вдохновлялся этим сайтом http://arbuz.uz/x_vernisag.html
-
0 балловВсем привет! Я не решил останавливаться в создании квестов и сделал новую карту на прохождение. Сюжет карты таков: Вы тупенький баклажанчик и через неделю у вас ЕГЭ. Вы ничего не учили весь год и приняли решение - взломать FTP-сервер школы, получить задания ЕГЭ, найти решения и преодолеть этот экзамен. Во время учебного процесса вы заметили как ваш учитель физики входил на школьный FTP, а так как у вашего учителя склероз (Не в обиду учителям физики), она сохранила его в файле, но сохранила не просто так, а ещё и зашифровала одной из "формул" физики и чтобы не забыть "формулу" которой она его зашифровала, она оставила себе подсказку в другом файле. Ваша задача написать вирус и украсть все файлы с папки /home и отправить по беспроводному модему все файлы себе на компьютер, благо вы живёте напротив школы. После того как вы украли все файлы, вы должны расшифровать пароль и войти на FTP-сервер школы, чтобы украсть ЕГЭ. На вашем компьютере уже установлен FTP клиент. Команда: ftp. Дальше разберётесь Вы рассказали своему другу, что хотите провернуть этот план, он хочет тоже задания ЕГЭ и если вы возьмёте его в долю, то он вам расскажет первый символ пароля от FTP, так как он сидит за первой партой и у него зрение как у орла - он вас не обманывает. Первый символ пароля как он уверяет может помочь полностью расшифровать пароль. А вот и ВКонтакте вашего друга: *Клик*. Прежде чем написать ему, подумайте нужно ли это вам. Правила карты (На вашу совесть, чтобы было интересно): Запрещается использовать компьютеры, кроме своего. Взаимодействовать с школьным компьютером можно только через дисковод. Запрещается просмотр исходников серверов и файлов. Запрещается ломать блоки. (Карта в режиме приключения, но читы включены) Строения на карте: 1. Школа 2. Домик кулхацкера. Подсказки, вопросы по прохождению вы можете попросить у меня во ВКонтакте: *Клик* Ссылка на сборку: *Клик* Ссылка на портативную сборку: *Клик* (Версия Forge 1.7.10) Удачи во взломе! P.S. Не пишите в комментариях подсказки к карте . Если вы хотите видеть больше таких квестов, предлагайте идеи сюжета и в целом инфраструктуру карты. И ещё хотелось бы узнать ваше мнение, стоит ли выкладывать квест вместе с майнкрафтом или стоит просто закинуть модов и карту в архив?
Эта таблица лидеров рассчитана в Москва/GMT+03:00
