Перейти к публикации
Форум - ComputerCraft

Рекомендованные сообщения

Привет всем!

:)  :)  :)

Я новичок в OpenComputers поэтому почитав вики я решил накодить свою 1ую простенькую прогу.

Программу назвал MineInfo

Данная программа признана для того чтобы выводить информацию о компьютере.

На самом деле эта программа не нуждается в обьяснениях.

Все очень понятно эта программа работает на 

local computer = require("computer")

Первая строчка - Время работы (в секундах)

Вторая строчка - Максимум энергии которая может хранить сеть (к которой подключен компьютер)

Третья строчка - Всего памяти в компьютере

Четвертая строчка - Свободная память в компьютере

post-17877-0-84413800-1458488253_thumb.p

Как же установить эту программу :blink:  :blink:  :blink:

Особенно эта команда подойдет для новичков которые не знают как качать проги с пастебина)))

ВНИМАНИЕ! В компе должна быть интернет карта!!!

Вот команда: pastebin get -f XTRtYUab /bin/info

Потом просто пишем info и получаем информацию о системе)

 

Примечание: Если вы хотите поменять команду info на другую переходим в директорию bin и пишем mv -f info {здесь пишем нужную команду}

post-17877-0-84413800-1458488253_thumb.png

  • Like 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ещё можно вроде mv bin/info (имя)

или сразу pastebin get XTRtYUab bin/(имя)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Я новичок в OpenComputers

Молодец, для начинающего программера ты очень силен в ЯП. :smile9:

Главное не останавливайся и продолжай создавать программы.

Нам нужны выдающиеся кодеры! :D

 

И чтобы ты шагнул на ступень выше в программинге, я хочу показать как можно твою программу улучшить.

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)).

Затем вновь в цикл и тем самым получается программа, которая автоматически показывает информацию о системе (не надо программу заново перезапускать).

 

Хм, но конечно от такого "прикольного" цикла ясно дело, что будет забита оперативная память :smile3:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

и os.
 

 

local os = require("os")

а это зачем? 

  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, но конечно от такого "прикольного" цикла ясно дело, что будет забита оперативная память :smile3:

 

Нет.

 

 

И чтобы ты шагнул на ступень выше в программинге, я хочу показать как можно твою программу улучшить.

 

ухудшить*

Изменено пользователем LeshaInc
  • Like 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

О

 

Нет.

ухудшить*

Окей. Предложи ты что-то лучше, профи в С :-D

А то у тебя все прожки других хреновы и не по фен-шую xD

 

 

а это зачем?

А есть альтернатива притормозить цикл?

Поделись этим новым способом xD

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
О

Окей. Предложи ты что-то лучше, профи в С :-D

А то у тебя все прожки других хреновы и не по фен-шую xD

А есть альтернатива притормозить цикл?

Поделись этим новым способом xD

 

Зачем создавать цикл (из которого даже выйти нельзя), для программы которая, показывает инфу? Это все равно что в цикле $ uptime. Зачем? Какому человеку понадобится просмотр аптайма (причем в секундах), и памяти (причем в байтах)? Все что хочет пользователь, это аккуратный вывод.

$ info
uptime: 1d 2:01:32
memory: 123 KiB / 2048 KiB
energy: 4096

Ну а если пользователь хочет мониторить эту информацию, ключик -m

который бы в цикле показывал эту инфу.

$ info -m
------
uptime: ...
...
------
uptime: ...
...
------
uptime: ...
...
^C
$ _
  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно скакнуть ещё дальше:
вывод командой info без -m сделать такой же, как предложил Leshainc
Если указать info -m, то консоль продолжит свою работу, но сверху появится обновляемая инфа, то есть программа info запустится в фоне.
Далее можно сделать программку, которая будет запускать процессы и приложения, при этом сочетания клавиш alt + shift + t будет сворачивать приложение, alt + t будет переключаться между запущенными программами, ctrl + alt + d будет запускать приложение, в которой будет содержаться инфа о компе, о запущенных приложениях и тп.

Изменено пользователем Seryoga

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

А есть альтернатива притормозить цикл? Поделись этим новым способом xD
 

зачем делать require("os") вот в чем был мой вопрос. Я просто не понял зачем вообще этот цикл, запустил ты его, твой комп тупо его выполняет, пока принудительно не закроешь прогу, и выводит в целом одни и те же сообщения :О Как бы одно дело автор темы просто слепил мониторилку, чтоб ты не заходил в луа и по очереди юзал все команды чтоб узнать, что да как. А просто запустил этот info или как его там обзовут, мониторилка прошла - получил инфу на экран и дальше занимаешься своими делами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Зачем создавать цикл (из которого даже выйти нельзя), для программы которая, показывает инфу? Это все равно что в цикле $ uptime. Зачем? Какому человеку понадобится просмотр аптайма (причем в секундах), и памяти (причем в байтах)? Все что хочет пользователь, это аккуратный вывод.

$ info
uptime: 1d 2:01:32
memory: 123 KiB / 2048 KiB
energy: 4096
Ну а если пользователь хочет мониторить эту информацию, ключик -m

который бы в цикле показывал эту инфу.

$ info -m
------
uptime: ...
...
------
uptime: ...
...
------
uptime: ...
...
^C
$ _ 

 

 

Может, чтобы не постоянно в цикле, а определённое время. Или по удержанию определённой клавиши.

Изменено пользователем davial

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Молодец, для начинающего программера ты очень силен в ЯП.

Серьёзно?

 

 

Для новичков поясню - мы добавили библиотеки 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 принтил читерную инфу о том как я далеко от выхода. Ну и кроме этого прочую инфу, вот скрин:

 

j3esoHh.png

 

Но даже там я не использовал цикл с задержкой в 1 секунду. Там была пошаговость. Прога ждёт пока ты нажмёшь клавишу и запускаются все процессы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

зачем делать require("os") вот в чем был мой вопрос. Я просто не понял зачем вообще этот цикл, запустил ты его, твой комп тупо его выполняет, пока принудительно не закроешь прогу, и выводит в целом одни и те же сообщения :О Как бы одно дело автор темы просто слепил мониторилку, чтоб ты не заходил в луа и по очереди юзал все команды чтоб узнать, что да как. А просто запустил этот info или как его там обзовут, мониторилка прошла - получил инфу на экран и дальше занимаешься своими делами.

 

Когда лоханулся добавив стандартную библиотеку :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда лоханулся добавив стандартную библиотеку

А это с какой стороны посмотреть. Может быть, os при ее редких вызовах и не стоит добавлять, тем более в такой простой программе. Но зато имеет смысл вынести из глобального окружения часто используемую библиотеку, даже если она стандартная. Можно и так:

local math = require("math")
но лучше так:

local math = math
Причем, один раз выполненный require может и не внести ощутимой нагрузки, но повторяющиеся в цикле обращения к глобальному окружению увеличат постоянную нагрузку процентов на 10-20. По крайней мере, у меня были такие данные тестов.
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Через 3 года это пересматривать еще смешнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Через 3 года это пересматривать еще смешнее.

 

Давай теперь запости что-нибудь из твоего нового кода. Чтобы заценить прогресс. =)

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×