ipv2008 0 Опубликовано: 4 августа, 2019 Добрый, господа! Есть некая программа. Как сделать так, чтобы программа выполнялась бесконечное количество раз? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 4 августа, 2019 local gpu = component.gpu gpu.setResolution(ширина, высота) поиграйся со значениями, сия функция изменяет разрешение вывода на монитор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 4 августа, 2019 while true do код программы os.sleep(0) end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
serafim 272 Опубликовано: 4 августа, 2019 (изменено) 9 часов назад, ipv2008 сказал: P.S. Такой еще вопрос, как можно увеличить размер шрифта? Со шрифтами не всё так просто, в OS по умолчанию нет возможности их поменять. Один символ на экране = одной ячейке, размер ячейки можно увеличить добавив ещё мониторов увеличив площадь. Можно воспользоватся сторонними библиотеками и шрифтами https://computercraft.ru/topic/2336-ocbf-—-rastrovye-shrifty-dlya-opencomputers/ Предлагаю более простой вариант отрисовки времени при помощи закрашивания ячеек. Код был взят отсюда https://computercraft.ru/blogs/entry/360-lua-programming-oc-finger-clock-—-stilno-udobno-i-bez-lishney-vyrviglaznosti/ Отсчёт времени большими символами Скрытый текст local seconds = 12000 -- секунд local com = require("component") local gpu = com.gpu local w,h = gpu.getResolution() local nums = {} nums[0] = {"███", "█ █", "█ █", "█ █", "███"} nums[1] = {"██ ", " █ ", " █ ", " █ ", "███"} nums[2] = {"███", " █", "███", "█ ", "███"} nums[3] = {"███", " █", "███", " █", "███"} nums[4] = {"█ █", "█ █", "███", " █", " █"} nums[5] = {"███", "█ ", "███", " █", "███"} nums[6] = {"███", "█ ", "███", "█ █", "███"} nums[7] = {"███", " █", " █", " █", " █"} nums[8] = {"███", "█ █", "███", "█ █", "███"} nums[9] = {"███", "█ █", "███", " █", "███"} local function SplitNumber(num) local n1, n2 if num >= 10 then n1, n2 = tostring(num):match("(%d)(%d)") n1, n2 = tonumber(n1), tonumber(n2) else n1, n2 = 0, num end return n1, n2 end local function DrawNumbers(hh, mm, ss) local n1, n2, n3, n4, n5, n6 n1, n2 = SplitNumber(hh) n3, n4 = SplitNumber(mm) n5, n6 = SplitNumber(ss) for i = 1, 5, 1 do local lineToDraw = nums[n1][i].." "..nums[n2][i].." : ".. nums[n3][i].." "..nums[n4][i].." : "..nums[n5][i].." "..nums[n6][i] gpu.set((w / 3), (h / 3) + i, lineToDraw) end end gpu.fill(1,1,w,h," ") while true do local hh, mm, ss for i = seconds, 1, -1 do mm = math.floor(i / 60) ss = i % 60 hh = math.floor(mm / 60) mm = mm % 60 DrawNumbers(hh, mm, ss) os.sleep(1) end -- выполнить код end отсчёт 1200 секунд Скрытый текст Изменено 4 августа, 2019 пользователем serafim Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ipv2008 Автор вопроса 0 Опубликовано: 4 августа, 2019 (изменено) Спасибо огромное! ) P.S. Такой еще вопрос, как можно увеличить размер шрифта? Суть в том, что у меня идет отсчет таймера (цифры на экране), как сделать их большими? local component = require("component") local sides = require("sides") local rs = component.redstone local term = require("term") local seconds = 3 --секунды while true do term.clear() for i = seconds, 1, -1 do term.write(os.date("%H:%M:%S", i)) os.sleep(1) term.clearLine() end term.clear() print("ПЕРЕЗАГРУГЗКА") rs.setOutput(sides.right, 15) rs.setOutput(sides.right, 0) os.sleep(0) end Изменено 4 августа, 2019 пользователем ipv2008 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ipv2008 Автор вопроса 0 Опубликовано: 4 августа, 2019 Благодарю ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 4 августа, 2019 42 минуты назад, serafim сказал: Со шрифтами не всё так просто, в OS по умолчанию нет возможности их поменять. Один символ на экране = одной ячейке, размер ячейки можно увеличить добавив ещё мониторов увеличив площадь. Можно воспользоватся сторонними библиотеками и шрифтами https://computercraft.ru/topic/2336-ocbf-—-rastrovye-shrifty-dlya-opencomputers/ Предлагаю более простой вариант отрисовки времени при помощи закрашивания ячеек. Код был взят отсюда https://computercraft.ru/blogs/entry/360-lua-programming-oc-finger-clock-—-stilno-udobno-i-bez-lishney-vyrviglaznosti/ Отсчёт времени большими символами Показать содержимое local seconds = 12000 -- секунд local com = require("component") local gpu = com.gpu local w,h = gpu.getResolution() local nums = {} nums[0] = {"███", "█ █", "█ █", "█ █", "███"} nums[1] = {"██ ", " █ ", " █ ", " █ ", "███"} nums[2] = {"███", " █", "███", "█ ", "███"} nums[3] = {"███", " █", "███", " █", "███"} nums[4] = {"█ █", "█ █", "███", " █", " █"} nums[5] = {"███", "█ ", "███", " █", "███"} nums[6] = {"███", "█ ", "███", "█ █", "███"} nums[7] = {"███", " █", " █", " █", " █"} nums[8] = {"███", "█ █", "███", "█ █", "███"} nums[9] = {"███", "█ █", "███", " █", "███"} local function SplitNumber(num) local n1, n2 if num >= 10 then n1, n2 = tostring(num):match("(%d)(%d)") n1, n2 = tonumber(n1), tonumber(n2) else n1, n2 = 0, num end return n1, n2 end local function DrawNumbers(hh, mm, ss) local n1, n2, n3, n4, n5, n6 n1, n2 = SplitNumber(hh) n3, n4 = SplitNumber(mm) n5, n6 = SplitNumber(ss) for i = 1, 5, 1 do local lineToDraw = nums[n1][i].." "..nums[n2][i].." : ".. nums[n3][i].." "..nums[n4][i].." : "..nums[n5][i].." "..nums[n6][i] gpu.set((w / 3), (h / 3) + i, lineToDraw) end end gpu.fill(1,1,w,h," ") while true do local hh, mm, ss for i = seconds, 1, -1 do mm = math.floor(i / 60) ss = i % 60 hh = math.floor(mm / 60) mm = mm % 60 DrawNumbers(hh, mm, ss) os.sleep(1) end -- выполнить код end Разве это проще чем gpu.setResolution()? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ipv2008 Автор вопроса 0 Опубликовано: 4 августа, 2019 (изменено) 1 час назад, serafim сказал: Предлагаю более простой вариант отрисовки времени при помощи закрашивания ячеек. Ого! Вот это вообще СУПЕР. Благодарю, пойду свой таймер переделаю... Изменено 4 августа, 2019 пользователем ipv2008 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
serafim 272 Опубликовано: 4 августа, 2019 4 часа назад, NEO сказал: Разве это проще чем gpu.setResolution()? Таким способом можно увеличить размер экрана, но шрифт останется по прежнему мелким Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 4 августа, 2019 Оба способа хороши. Если пользователю достаточно видеть крупный шрифт, не входя в интерфейс монитора, и при этом хочется снизить нагрузку на сервер, а изучать шрифтовую библиотеку наоборот не хочется, то хорош способ снижения разрешения экрана. А если хочется видеть какие-то особенные красивые шрифты, или хочется видеть их крупными также при входе в интерфейс монитора, то придётся подключить библиотеку. А ещё в таблице символов есть символы двойной ширины, но они не особо крупные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Добрый, господа!
Есть некая программа. Как сделать так, чтобы программа выполнялась бесконечное количество раз?
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах