AndreySHAP 38 Опубликовано: 20 марта, 2016 Привет всем! Я новичок в OpenComputers поэтому почитав вики я решил накодить свою 1ую простенькую прогу. Программу назвал MineInfo Данная программа признана для того чтобы выводить информацию о компьютере. На самом деле эта программа не нуждается в обьяснениях. Все очень понятно эта программа работает на local computer = require("computer") Первая строчка - Время работы (в секундах) Вторая строчка - Максимум энергии которая может хранить сеть (к которой подключен компьютер) Третья строчка - Всего памяти в компьютере Четвертая строчка - Свободная память в компьютере Как же установить эту программу Особенно эта команда подойдет для новичков которые не знают как качать проги с пастебина))) ВНИМАНИЕ! В компе должна быть интернет карта!!! Вот команда: pastebin get -f XTRtYUab /bin/info Потом просто пишем info и получаем информацию о системе) Примечание: Если вы хотите поменять команду info на другую переходим в директорию bin и пишем mv -f info {здесь пишем нужную команду} 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant 442 Опубликовано: 20 марта, 2016 Ещё можно вроде mv bin/info (имя) или сразу pastebin get XTRtYUab bin/(имя) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SDV 784 Опубликовано: 20 марта, 2016 Я новичок в OpenComputers Молодец, для начинающего программера ты очень силен в ЯП. Главное не останавливайся и продолжай создавать программы. Нам нужны выдающиеся кодеры! И чтобы ты шагнул на ступень выше в программинге, я хочу показать как можно твою программу улучшить. local computer = require("computer") local term = require("term") local os = require("os") while true do print("Добро пожаловать в MineInfo!\n") print("Время работы компьютера: "..computer.uptime().." сек.") print("Максимум энергии в сети:"..computer.maxEnergy()) print("Всего памяти: "..computer.totalMemory()) print("Свободной памяти осталось: "..computer.freeMemory().." байт") print("\n(c)AndreySHAP") os.sleep(1) term.clear() end Думаю все итак понятно что изменилось. Для новичков поясню - мы добавили библиотеки term и os. Первая в частности у нас отвечает за очистку экрана (term.clear()) Вторая создает прерывание в бесконечном цикле (while) каждую секунду (os.sleep(1)). Затем вновь в цикл и тем самым получается программа, которая автоматически показывает информацию о системе (не надо программу заново перезапускать). Хм, но конечно от такого "прикольного" цикла ясно дело, что будет забита оперативная память Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
newbie 1 971 Опубликовано: 20 марта, 2016 и os. local os = require("os") а это зачем? 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 20 марта, 2016 (изменено) Хм, но конечно от такого "прикольного" цикла ясно дело, что будет забита оперативная память Нет. И чтобы ты шагнул на ступень выше в программинге, я хочу показать как можно твою программу улучшить. ухудшить* Изменено 20 марта, 2016 пользователем LeshaInc 4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SDV 784 Опубликовано: 20 марта, 2016 О Нет.ухудшить* Окей. Предложи ты что-то лучше, профи в С :-D А то у тебя все прожки других хреновы и не по фен-шую xD а это зачем? А есть альтернатива притормозить цикл? Поделись этим новым способом xD Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 20 марта, 2016 ООкей. Предложи ты что-то лучше, профи в С :-D А то у тебя все прожки других хреновы и не по фен-шую xD А есть альтернатива притормозить цикл? Поделись этим новым способом xD Зачем создавать цикл (из которого даже выйти нельзя), для программы которая, показывает инфу? Это все равно что в цикле $ uptime. Зачем? Какому человеку понадобится просмотр аптайма (причем в секундах), и памяти (причем в байтах)? Все что хочет пользователь, это аккуратный вывод. $ info uptime: 1d 2:01:32 memory: 123 KiB / 2048 KiB energy: 4096 Ну а если пользователь хочет мониторить эту информацию, ключик -m который бы в цикле показывал эту инфу. $ info -m ------ uptime: ... ... ------ uptime: ... ... ------ uptime: ... ... ^C $ _ 4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Seryoga 184 Опубликовано: 20 марта, 2016 (изменено) Можно скакнуть ещё дальше:вывод командой info без -m сделать такой же, как предложил LeshaincЕсли указать info -m, то консоль продолжит свою работу, но сверху появится обновляемая инфа, то есть программа info запустится в фоне.Далее можно сделать программку, которая будет запускать процессы и приложения, при этом сочетания клавиш alt + shift + t будет сворачивать приложение, alt + t будет переключаться между запущенными программами, ctrl + alt + d будет запускать приложение, в которой будет содержаться инфа о компе, о запущенных приложениях и тп. Изменено 20 марта, 2016 пользователем Seryoga Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
newbie 1 971 Опубликовано: 20 марта, 2016 А есть альтернатива притормозить цикл? Поделись этим новым способом xD зачем делать require("os") вот в чем был мой вопрос. Я просто не понял зачем вообще этот цикл, запустил ты его, твой комп тупо его выполняет, пока принудительно не закроешь прогу, и выводит в целом одни и те же сообщения :О Как бы одно дело автор темы просто слепил мониторилку, чтоб ты не заходил в луа и по очереди юзал все команды чтоб узнать, что да как. А просто запустил этот info или как его там обзовут, мониторилка прошла - получил инфу на экран и дальше занимаешься своими делами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davial 1 972 Опубликовано: 21 марта, 2016 (изменено) Зачем создавать цикл (из которого даже выйти нельзя), для программы которая, показывает инфу? Это все равно что в цикле $ uptime. Зачем? Какому человеку понадобится просмотр аптайма (причем в секундах), и памяти (причем в байтах)? Все что хочет пользователь, это аккуратный вывод. $ info uptime: 1d 2:01:32 memory: 123 KiB / 2048 KiB energy: 4096Ну а если пользователь хочет мониторить эту информацию, ключик -mкоторый бы в цикле показывал эту инфу. $ info -m ------ uptime: ... ... ------ uptime: ... ... ------ uptime: ... ... ^C $ _ Может, чтобы не постоянно в цикле, а определённое время. Или по удержанию определённой клавиши. Изменено 21 марта, 2016 пользователем davial Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 21 марта, 2016 Молодец, для начинающего программера ты очень силен в ЯП. Серьёзно? Для новичков поясню - мы добавили библиотеки term и os. Команда os.cleep() работает, даже если не подключать библиотеку os. Так что это было лишним. Вторая создает прерывание в бесконечном цикле (while) каждую секунду (os.sleep(1)). Будь моя воля, я бы заменил os.cleep(1) на msg = {event.pull(1,"key_down")} и прикрутил бы управление, например выход из программы на какую либо клавишу if msg[4] then return (или break) end Хм, но конечно от такого "прикольного" цикла ясно дело, что будет забита оперативная память Интересно, с чего ты так решил. Там ведь кроме подключения библиотек, не куда больше не записывается информация. и выводит в целом одни и те же сообщения Полностью согласен. В данном случае цикл не оправдан. Если бы инфа была важной и постоянно менялась, цикл имел бы смысл. Ну вот например я в игре Cube принтил читерную инфу о том как я далеко от выхода. Ну и кроме этого прочую инфу, вот скрин: Но даже там я не использовал цикл с задержкой в 1 секунду. Там была пошаговость. Прога ждёт пока ты нажмёшь клавишу и запускаются все процессы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
AndreySHAP Автор темы 38 Опубликовано: 25 марта, 2016 зачем делать require("os") вот в чем был мой вопрос. Я просто не понял зачем вообще этот цикл, запустил ты его, твой комп тупо его выполняет, пока принудительно не закроешь прогу, и выводит в целом одни и те же сообщения :О Как бы одно дело автор темы просто слепил мониторилку, чтоб ты не заходил в луа и по очереди юзал все команды чтоб узнать, что да как. А просто запустил этот info или как его там обзовут, мониторилка прошла - получил инфу на экран и дальше занимаешься своими делами. Когда лоханулся добавив стандартную библиотеку Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 29 марта, 2016 Когда лоханулся добавив стандартную библиотекуА это с какой стороны посмотреть. Может быть, os при ее редких вызовах и не стоит добавлять, тем более в такой простой программе. Но зато имеет смысл вынести из глобального окружения часто используемую библиотеку, даже если она стандартная. Можно и так: local math = require("math")но лучше так: local math = mathПричем, один раз выполненный require может и не внести ощутимой нагрузки, но повторяющиеся в цикле обращения к глобальному окружению увеличат постоянную нагрузку процентов на 10-20. По крайней мере, у меня были такие данные тестов. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
AndreySHAP Автор темы 38 Опубликовано: 8 сентября, 2018 Через 3 года это пересматривать еще смешнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 8 сентября, 2018 Через 3 года это пересматривать еще смешнее. Давай теперь запости что-нибудь из твоего нового кода. Чтобы заценить прогресс. =) 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах