Laine_prikol
-
Публикации
155 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Сообщения, опубликованные пользователем Laine_prikol
-
-
Лучше сделал-бы библиотеку чтобы она умела, зашифровать сообщение - чтобы не перехватили.
-
/time set 15000
/gamerule dodaylightcycle false
-
Для начала вполне неплохо, но код опять слишком избыточный. Цвета можно генерировать или хотя-бы предоставить пользователю задавать их вручную и не помешало бы автоматическое масштабирование под разрешение монитора.
Если что-то непонятно, то можно спросить в чате, а по граблям можно ходить всю жизнь.
Выпустил обновление, код сжат
-
1
-
-
Главное, чтобы это были каждый раз новые грабли

Учится никогда не поздно

-
Для начала вполне неплохо, но код опять слишком избыточный. Цвета можно генерировать или хотя-бы предоставить пользователю задавать их вручную и не помешало бы автоматическое масштабирование под разрешение монитора.
Если что-то непонятно, то можно спросить в чате, а по граблям можно ходить всю жизнь.
Там можно добавлять свои цвета и типы заливки. Заливки хранятся в файлах: customFills.cfg и customFills1.cfg, а цвета в: colors1.cfg и colors2.cfg
-
Описание:
Данная программа позволяет рисовать/сохранять/открывать картинки. Поддерживаются: цвета, типы заливки(символами которыми мы будет рисовать). программа использует библиотеку GPIC.
Использование:
Запустить программу можно командой: lainepaint <Название картинки> <ширина картинки> <высота картинки>
Интерфейс программы:
Кнопки находятся вверху экрана: - Сохранить файл с названием который вы написали при запуске [C] - Закрыть программу без сохранения [+] FILL [-] - Изменение типа заливки [+] COLOR [-] - Изменение цвета [O] - Открыть изображение которое вы указали при запуске [N] - Очистка экрана
Скачать:
Скачать программу можно командой: pastebin run 34FYNB4N и просто ждите пока установщик установит всё что нужно для работы программы.
Версия 0.3-r1
Добавлена возможность создавать изображение любого размера
-
1
-
-
Скопировал твой код, возможно у тебя неправильная кодировка. Само число 80 ДОЛЖНО быть, ибо это ширина картинки.

На OpenOS 1.6 всё нормально сохраняется, а на 1.5 почему-то просто число 80 и больше нечего
-
Вместо кучи копипаста с настройкой нот ты мог создать функцию:
function setNote(numNote,key) if keyboard.isKeyDown(key) then os.sleep(0.1) print("Настройка ноты " .. numNote) -- Чтение частоты io.write("Частота: ") note[numNote] = io.read("*number") -- Чтение длительностей io.write("Длительность (в секундах): ") notesec[numNote] = io.read("*number") redrawMenu() end endПопробую добавить в свой код
UPD: с 223 строк сжал до 112
-
В программировании разрешены вложенные циклы. Ты мог спокойно, не копировать для каждой ноты отдельные настройки, а задать их через цикл.
Кроме того, у тебя не типичные отступы. Отступы делаются когда пишешь что-то внутри do ... end или then ... end и в прочих подобных случаях, кроме того, отступы могут складываться. Например идёт цикл, всё что внутри имеет один отступ. Внутри есть этого цикла есть условие if. Всё что внутри будет иметь уже 2 отступа, так как содержимое находится и в условии и в цикле. Для вложенных циклов/условий правило такое же.
Хоть эти отступы и не будут на работу кода влиять, но это важный показатель читаемости кода. А значит с читаемым кодом и ты сможешь проще читать и находить ошибки, и другие программисты смогут это делать.
Следующий момент, это условие if x == true then ... end Тут суть такова, если после if будет любая переменная кроме nil (пустая или не существующая переменная) или false, то цикл выполняться будет. А значит, это выражение можно сократить до if x then .. end
Ещё в твоём случае, тебе проще вместо keyboard.isKeyDown(0x3B) == true использовать обработку событий через local key = {event.pull("key_down")}
Эта функция будет ждать события "key_down" (нажатие клавиши) и когда ты нажмёшь клавишу, в переменную key сохранится пронумерованная таблица, из которой можно получить адрес клавиатуры откуда пришёл сигнал, номер нажатой клавиши, ник игрока нажавший клавишу и прочую нужную инфу.
Такой способ не потребует выставлять задержки, так как функция будет просто ждать пока событие не произойдёт. Да и к тому же код станет намного лучше, как визуально, так и по нагрузке на сервер/комп
Я привык уже к keyboard api. Потом может переделаю, уже убрал кучу переменных сделал большой массив, и убрал ненужные строки кода, и с 278 строк уменьшил до 223
-
Прочитав заголовок, я уже подумал, что ты осуществил мою давнюю идею построить полноценный проигрыватель и редактор музыки. Возможно даже в .abc формате, как я и хотел. Но посмотрев на скрин, всё стало ясно. А я чуть было не поставил тебе лайк за старания... Но это не вся итория...
Далее я посмотрел в код и был шокирован:
currentNote = 0 note1 = 0 note2 = 0 note3 = 0 note4 = 0 note5 = 0 note6 = 0 note7 = 0 note8 = 0 note9 = 0 note10 = 0 note1sec = 0 note2sec = 0 note3sec = 0 note4sec = 0 note5sec = 0 note6sec = 0 note7sec = 0 note8sec = 0 note9sec = 0 note10sec = 0 i = 0 i2 = 0
Получается ты не знаешь и не умеешь пользоваться массивами, которые бы намного упростили бы работу с переменными. И тут я подумал что всё! Меня больше тут нечем удивить, но тут я увидел ЭТО...
os.sleep(0.1) if keyboard.isKeyDown(0x3B) == true then -- f1 os.sleep(0.1) print("Настройка ноты 1") -- Чтение частоты io.write("Частота: ") note1 = io.read("*number") print("Частота установлена на"..note1) -- Чтение длительностей io.write("Длительность (в секундах): ") note1sec = io.read("*number") print("Длительность установлена на"..note1sec) redrawMenu() end os.sleep(0.1) if keyboard.isKeyDown(0x3C) == true then -- f2 os.sleep(0.1) print("Настройка ноты 2") -- Чтение частоты io.write("Частота: ") note2 = io.read("*number") print("Частота установлена на"..note2) -- Чтение длительностей io.write("Длительность (в секундах): ") note2sec = io.read("*number") print("Длительность установлена на"..note2sec) redrawMenu() end if keyboard.isKeyDown(0x3D) == true then -- f3 os.sleep(0.1) print("Настройка ноты 3") -- Чтение частоты io.write("Частота: ") note3 = io.read("*number") print("Частота установлена на"..note3) -- Чтение длительностей io.write("Длительность (в секундах): ") note3sec = io.read("*number") print("Длительность установлена на"..note3sec) redrawMenu() endОтлично написанный код!

В общем. Вместо того, чтобы использовать удобненькие православные циклы, ты использовал копипастинг! Это гениально!
В общем, пора подводить итоги.
Твоя программа занимает примерно 250 строк кода, даёт функционала мало, я бы сказал крайне мало, практически ничего. Нормально выглядящий код занимал бы намного меньше строк кода.
А теперь сравни свой код с этим http://computercraft.ru/topic/1570-oc-redcontrol-udobnoe-upravlenie-redstounom/
Там на 2 строки кода больше, чем в твоём коде, но функционала намного больше. Программа содержит и графический интерфейс и часть кода для отлавливания кликов по экрану и команды реагирование на события. И даже поддержку подключения и отключения компонентов во время работы.
Напомню, это 280 строк кода. Всего-то на 2 больше чем у тебя. Чуешь разницу?
А всё дело в том, что у меня использованы циклы и массивы, а у тебя нет. И это ужасно. Ты обязан их изучить, иначе будешь и дальше так же перерабатывать, писать больше кода с меньшей эффективностью.
1. Тут цикл есть (может я немного не понял тебя)

2. Массивов нет. ты тут прав.
-
Что тебя так тянет некропостить? Вот же эмулятор - уже более года у меня в блоге инструкция по установке висит. Обе версии луа, модемы, OpenOS 1.6 и прочее.
Он у меня не работает, пишит: "Невозможно запустить это приложение на вашем пк"
UPD: Я не ту версию скачал
-
а что должно быть?Точно не число 80, потому-что когда я хочу отобразить картинку которую только что сохранил, нечего не происходит
-
Вылетает. Просто "Прекращена работа программы" и всё!
UPD: Запустил через контекстное меню и заработало! Только вот OpenOS 1.5
При попытке поставить 1.6, падает -
У меня почему-то когда сохраняю в файл, в файле просто число 80 и больше нечего.
if keyboard.isControlDown() == true then os.sleep(0.1) local picture = gpic.new(1, 1, 80, 25) gpic.draw(1, 1, picture) gpic.write(picture,"/home/image.gpic") end
-
Описание:
Сегодня я вам покажу программу Note Sequencer которая позволит создавать мини музыкальные треки. В программе есть 10 цикличных нот которые можно менять, также можно сделать рандом трек. Программа очень простая. По возможности пишите свои предложения что можно добавить (если конечно, смогу)
Установка:
pastebin get PYAySJ27 note (код) (0.1)
pastebin get 4fng04sA note (код) (0.2)
pastebin get 4fng04sA note (код) (0.3)
Запуск:
note
История версий
[0.1] Первый релиз
[0.2] Уменьшен код
[0.3] Оптимизация и уменьшения кода
Версия 0.3
Оптимизация и уменьшения кода
-
3
-
-
Я уже 1 год не могу понять! Как вытащить текст из edit чтобы он записался в переменную?
-
Я бы хотел узнать можно вообще сделать в OpenComputers RAM-Disk. Чтобы если ты без винта мог редактировать файлы и переставлять дискеты. Например, у меня есть дискета с OpenOs и я хочу без винта попробовать переставить дискету со своей программой и нечего не выходит, OpenOS просто крашится. или создать робота без жёсткого диска, но при этом был нормальный OpenOS
-
Похоже на php devel studio)
Да ну нет... Похоже на редактор форм в NetBeans или visual studio. Потому что в PHP DS есть ещё готовые события. Типа, показать диалог, загрузить форму и т.д
-
Где-то я уже видел на форуме такой же интерфейс и функционал.
Неужели плагиат???
Вот это? Так это тоже моя программа. И старая версия работала напрямую с редстоун картой
-
-
Как вытащить из переменной количество букв которые мне нужны например:
text = "teext" t = количество букв t в переменной text e = количество букв e в переменной text
Ну и так далее...
-
Во-во уже нормальный дизайн, хоть уже на клавиши пианино похожи.
-
Он наверное даже в гугле не смог написать "Клавиатура пианино". Он говорил что типо ему лень... и всё такое...Не так. На пианино две клавиши Ля никак не могут находиться рядом. Или я не понял вопроса.
-
local internet = require("internet")os.execute("pastebin get JK7hfdmb OpenPiano")
os.execute("pastebin get iKzRve2g lib/forms.lua")
--Вроде так
Вообще-то вместо local internet = require internet надо local os = require("os")

Браузер html для OC
в Разное
Опубликовано: · Изменено пользователем Laine_prikol
Я давно уже хотел сделать простой браузер html, но знаний и времени не хватало, и вот сейчас я вам представляю pre-alpha версию своего "браузера html". Он может открывать простые странички (странички которые весят больше 4 кб) и отображать текст. Пока не поддерживает форматирование, и большинство тегов. Но чтобы получить небольшую информацию в тестовом виде можно.
Пример отображение страничек:
Установка и запуск:
Скачать можно командой: pastebin get jNPDqSkn htmlbrowse.lua
Запустить: htmlbrowse <ссылка обязательно с http:// или https://>