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

OpenComputers Простой Screensaver (заставка)

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

Написал простую программу, screensaver (заставка). Она рандомно генерирует изображение из разноцветных пикселей.

P.S Генерируется изображение не сразу
Установка оригинальной версии: 
 
pastebin get jwBzi0DC screensaver

Код: http://pastebin.com/raw/jwBzi0DC

 

Установка модифицированной версии от kotik_prikol: 

 
pastebin get CQrrMmA2 screensaver

Код: http://pastebin.com/CQrrMmA2

 

Улучшения:

+ Добавлен порог генерации, при полном заполнении экрана пиксели больше не генерируется

+ Изменён полный рандом

 

Запуск:

 

screensaver

post-18530-0-49813600-1485688875_thumb.png

post-18530-0-45035300-1485688885_thumb.png

post-18530-0-31486600-1485688896_thumb.png

Изменено пользователем Laine_prikol
  • Like 1

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


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

  1. if input == "c" then

  2.     term.clear()

        while true do

        os.sleep(0)

        local x = math.random(0, 160)

        local y = math.random(0, 80)

        local x1 = x + math.random(0,10)

        local y1 = y + math.random(1,5)

        local x2 = x + math.random(1,8)

        local y2 = y + math.random(2,5)

        gpu.set(x,y, "█")

        gpu.setForeground(0x0033cc)

        gpu.set(x1,y1, "█")

        gpu.setForeground(0x4d79ff)

        gpu.set(x2,y2, "█")

        gpu.set(x2+4,y2+5, " ")

        gpu.setForeground(0x002080)

        gpu.set(x2+2,y2+1, "█")

        gpu.setForeground(0x002699)

        end

    end

    if input == "d" then

        while true do

        os.sleep(0)

        local x = math.random(0, 160)

        local y = math.random(0, 80)

        local x1 = x + math.random(0,10)

        local y1 = y + math.random(1,5)

        local x2 = x + math.random(1,8)

        local y2 = y + math.random(2,5)

        gpu.set(x,y, "█")

        gpu.setForeground(0x33cc33)

        gpu.set(x1,y1, "█")

        gpu.setForeground(0x196619)

        gpu.set(x2,y2, "█")

        gpu.set(x2+4,y2+5, " ")

        gpu.setForeground(0xadebad)

        gpu.set(x2+2,y2+1, "█")

        gpu.setForeground(0x47d147)

     end

 

Вместо этого всего ты мог создать функцию, в которую передавались бы цвета. Это значительно сократит код.

 

  • Like 1

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


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

 

Вижу, уже отступы появились.  :) В Lua обычно используются отступы пробелами, размером в 2 пробела.

 

...

 

Вместо этого всего, можно было залить всё на pastebin, hastebin.

Либо на худой конец выделить важный для контекста кусочек кода не больше 20 строк, и засунуть его в тег 





			
				


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

			
		
  • Like 2

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


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

ой бедааааа.... :unsure:  :smile14:

 

Честно говоря, не понимал и не пойму никогда назначения этих "скринсейверов". Красоты в них особой нет, это даже не "матрица" падающая и не 3D завораживающий танец линий аля Windows 3.11 в начале 90-х, когда все на них часами смотрели и в настройках выбирали :) .

 

Зачем эти кубики "молотить" по экрану?

while true do
		os.sleep(0)
		local x = math.random(0, 160)
		local y = math.random(0, 80)
		local x1 = x + math.random(0,10)
		local y1 = y + math.random(1,5)
		local x2 = x + math.random(1,8)
		local y2 = y + math.random(2,5)
		gpu.set(x,y, "█")
		gpu.setForeground(0x0000FF)
		gpu.set(x1,y1, "▓")
		gpu.setForeground(0x008000)
		gpu.set(x2,y2, "░")
		gpu.set(x2+4,y2+5, " ")
		gpu.setForeground(0x008000)
		gpu.set(x2+2,y2+1, "█")
		gpu.setForeground(0xF00000)
end

А не лучше было бы сделать прожку, которая 5-6 картинок выводит на экран в цикле с паузой 15-30 мин? И красиво, и ресурсы сервера сбережет многократно. Ну никакой мысли не просыпается даже ни у кого, что все эти какашки подобного рода (откровенно говоря, это чистой воды лагопрога) жрут ресурсы не вашего домашнего компа, а ограниченные ресурсы общественного сервера, на котором хотят играть люди без лагов.

 

То новогоднюю елку кто-то сделает из сотен тысяч РэдЛогик лампочек и таймеров, то еще какую-то лаго багулину, то забор вокруг дома из билдкрафт ред-труб. Ну братцы, ну поберегите вы ресурсы сервера и используйте их как-то разумно с пользой.

 

П.С. Увижу у кого-то такой "скринсейвер" на сервере, сразу на компе вместе с экраном (а при рецидиве - вместе с домиком) //set 0 буду применять. В сингле - вопросов нет.

  • Like 2

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


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

 

 

А не лучше было бы сделать прожку, которая 5-6 картинок выводит на экран в цикле с паузой 15-30 мин? И красиво, и ресурсы сервера сбережет многократно.
 

 

Вот кстати, не факт. =) Если сделать PNG-слайдшоу, будет весма и весьма затратнее такой простой пиксельной каши, мне кажется.

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


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

Честно говоря, не понимал и не пойму никогда назначения этих "скринсейверов".

В далекие времена, когда компьютерные экраны являлись слегка модифицированными телевизорами, а программы типа NortonCommander, содержащие в своем интерфейсе множество статичных и ярких элементов, распространялись со скоростью вирусов, скринсейверы реально спасали экраны от преждевременного выгорания люминофора. Просто отключать экраны было плохой идеей, т. к. в те времена не только черный экран, но даже просто неподвижная картинка зачастую означали сбой в работе компьютера.

 

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

 

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

 

П.С. Увижу у кого-то такой "скринсейвер" на сервере, сразу на компе вместе с экраном (а при рецидиве - вместе с домиком) //set 0 буду применять.

А когда Золушка запустила скринсейвер в своей карете, Фея ей тыкву засетила.

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


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

 

 

Вот кстати, не факт. =) Если сделать PNG-слайдшоу, будет весма и весьма затратнее такой простой пиксельной каши, мне кажется.

 

почему не факт?))  На диске в папочке хранятся какие-то  картинки. Прога получает список файлов (имен) и потом в цикле поочередно рисует первую каритнку, потом спит полчаса, потом вторую и так до бесконечности, потом опять начинает первую рисовать. Никто же не говорит о бешеном слайд шоу=)

 

А прога выше по "логике"  работы ничем не отличается от 

вайлеТруДу принт('Lol') end 

:) 

даже выхода из проги не предусмотрено.

 

А анекдоты из сети получать с какого-то любого сервиса и принтить на экранчик раз в 10 минут? Так это же разумнее в миллион раз, и полезнее, чем "молотить" кубиками по экрану бесконечно, создавая какую-то кашу, грязь и лаги.

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


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

Ну, да, я согласен.

С нулевыми слипами - это сейчас просто лагомашина.

 

Анекдоты были бы поприкольнее. Можно мой Баш-принтер модифицировать под это дело =)

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


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

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

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

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

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

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

Войти

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

Войти сейчас

×