Ваша цель проста: программа должна сделать экран вашего компьютера полностью черным .
После запуска программы экран должен быстро стать полностью черным и оставаться таковым до выхода из программы (любая клавиша или Alt + F4, движение мыши и т. Д.), После чего все должно вернуться в нормальное состояние. Поэтому выключение компьютера или выключение монитора НЕ допускается . За это время не должен быть виден ни один не черный пиксель, даже мигающий курсор.
Пользователь не должен делать никаких подготовительных действий (перемещение мыши за пределы экрана, отсоединение кабелей и т. Д. Или ввод данных пользователем после запуска программы), просто запустите программу.
Вы можете с уверенностью предположить, что к компьютеру подключен только один монитор. Мы также предполагаем стандартный настольный компьютер или ноутбук, потому что делать это на определенном устройстве без обычного монитора было бы слишком просто.
Если вы используете какие-либо внешние ресурсы (черное изображение, файл графического интерфейса и т. Д.), Их размер в байтах добавляется к размеру вашего кода.
Это нормально, если он работает только на одном семействе ОС, или если он требует opengl и т. Д., Но требует очень специфической конфигурации оборудования.
Ваш исходный код должен быть написан на языке программирования, а не просто в файле конфигурации, который будет использовать какая-либо другая программа (например, заставка).
Ответы:
Баш, 28 или 12
Предполагается установка по умолчанию Ubuntu 12.04 LTS.
Автоматически запускается заставка, которая по умолчанию является черным экраном.
Редактировать : как предложено @Glenn Randers-Pehrson, вот один с 12 байтами
Обратите внимание, что это может не сработать, если у вас есть другой файл в вашей системе, скажем, с таким именем
/tmp/1/gnd
. Но кого это волнует?Проверьте мой другой ответ Bash, если вы не используете заставку Gnome!
источник
Сборка (загрузчик) 131 скомпилированный символ / 512 байт (на самом деле меньше, но загрузочный сектор должен иметь длину 512 байт.)
Это простой загрузчик. Когда компьютер запускается, BIOS загрузит его с диска (дискеты). Затем он входит в графический режим и просто зависает. Когда пользователь нажимает кнопку питания, программа завершается, и компьютер переходит в режим, в котором находился до запуска программы.
Протестировано с VirtualBox.
Это будет компилироваться с Nasm:
Исходный код:
источник
cli
аsti
? Перемещается дляSS
автоматического отключения прерываний на время следующей инструкции иAX
не будет изменено, если прерывание произойдет раньшеMOV SS,AX
. Кроме того, почему бы неMOV AX, 0x13
вместо двухMOV
с?QBASIC (31)
источник
Ява: 165
Простая Java, просто создает полноэкранную черную рамку. Чтобы выйти, вы должны нажать Alt + Tab обратно в консоль и Ctrl-C, но это кажется достаточно простым.
источник
Applesoft] [бейсик (17)
источник
Баш - 57
26На ноутбуке это будет устанавливать яркость подсветки экрана на 0 через
/sys/class/backlight
, на планшете или телефоне это будет устанавливать яркость светодиодного экрана на 0 через/sys/class/leds
источник
Fn+F6
,Fn+<up arrow>
И многие другие комбинации ключевых попадают в «любой ключ» и « и т.д.», и те один из многих , чтобы положить свет обратно , как это было.find /sys/class/{backlight,leds}/*/
?Я знаю, что это код-гольф, но я не удержался.
Просто убедитесь, что у вас нет открытых окон браузера (в данном случае Chrome);
Выполните этот PitchBlack.bat (
3124 байта) :Если этот файл находится в той же папке, что и файл Chrome.exe , этот пакет запустит Chrome в режиме киоска и откроет файл с именем / 1 (
494134 байта) в полноэкранном режиме:И вуаля!
Общее количество байт:
807258Благодаря @ace :)
Для выхода из программы необходимо перейти на классический ALT + F4 ; На самом деле вам не нужно выполнять какую-либо подготовку после запуска программы (как и раньше, вам просто нужно разместить
/1
и пакетный файл), так что все в порядке с правилами.Обратите внимание, что если вы наведите курсор на границы экрана, он может стать видимым. ОП не сказал, что это не разрешено, так как
Так что это должно быть совершенно нормально! :П
источник
chrome --kiosk 'data:text/html,<style>body{background:#000;cursor:none;}</style>'
может работать без дополнительного файла?file:
shceme вы не видите URL-панель, но соdata:
схемой есть URL-панель?chromium-browser --kiosk 'data:text/html,<style>body{background:#000;cursor:none;}</style>
запускается почти полноэкранный Chromium с черной страницей без каких-либо полос.file:///1
если html сохранен как/1
, а html файл может быть сокращен до<body bgcolor=0 style=cursor:none>
chrome
в своем ответе, а неchromium
C # -
211202200196179 байтСкрывает курсор и показывает полноэкранное черное окно. Может быть закрыт с Alt+F4
Негольфированный код :
Мне не нужно
FormBorderStyle
приводить, потому что это не обязательно, если целое число0
.источник
System.Drawing.Color.Black
,FormWindowState.Maximized
,FormWindowState.Maximized
иFormBorderStyle.None
с их соответствующими значениями.Color.Black
. Это должно работать сразу. ИлиBackColor=This.ForeColor
, которые тоже могут работать.using System.Drawing;
, а второй не работает, потому что я устанавливаю значения переменных в скобках.using System;
тогдаnew Windows.Forms.Form
иBackColor=Drawing.Color.Black
. Это МОЖЕТ работать! И сохранить несколько байтов.C #
175171167Многие ответы здесь на самом деле не делают экран черным : на ЖК-экране подсветка остается включенной и просвечивает, оставляя вас с темно-серым.
Этот небольшой фрагмент на самом деле говорит Windows отключить экран, так же как и таймер неактивности (Примечание: это не нарушает правило «без отключения питания», потому что на самом деле монитор просто переходит в режим ожидания. Большинство мониторов включите снова при возобновлении ввода. Кроме того, похоже, что это правило предназначено для того, чтобы программа могла включить его снова - см. ниже.)
Переместите мышь или нажмите клавишу, чтобы снова включить экран.
Отключение монитора адаптировано с https://stackoverflow.com/a/713519/1030702
источник
Амига в сборе
ASM-One -
228219 символов, скомпилировано 172 байта (оптимизировано 168 байтов)Прошло 20 лет с тех пор, как я последний раз кодировал одну строку в сборке Amiga, так что терпите меня. :-)
Amiga была немного более сложной, чем ПК, с точки зрения настройки пустого экрана, поэтому постаралась избавиться от как можно большего количества настроек и разрывов. Там нет отключения прерываний или многозадачности; нет двойного WaitTOF; нет просмотра замены; и т.д. Я бы даже не написал это для самой быстрой и самой грязной демонстрации. Что означает это:
... хотя он был протестирован на эмулированных A500 и A1200, с быстрой памятью или без нее. Компилируется в стандартный исполняемый файл. Выход из щелчка мыши.
Менее гольф:
источник
Python / Pygame
19912712592Спасибо несколько советов от туза.
источник
from pygame import*
вместо этого. Кроме того, я не думаю, чтоfill((0,0,0))
это необходимо, поскольку по умолчанию используется черный цвет. Тогда вы можете удалить вs
целом. Я не думаю, чтоdisplay.flip()
нужно тоже. Кроме того, использование одного пробела для отступа вместо 4 может сэкономить больше места. Наконец, вместоFULLSCREEN
иKEYDOWN
, вы можете использовать их числовые значения, а именно-1<<31
(-2147483648) и2
соответственно.TI-BASIC,
76Работает как в терминале (домашний экран), так и в качестве программы. Нажатие
ON
или большинство других кнопок возвращает к терминалу / домашнему экрану.источник
Shade(Ymin,Ymax
.Commodore 64 (16 байт)
С тех пор, как я использовал Turbo Assembler, прошло более 20 лет, поэтому я могу предоставить источник информации только для монитора VICE. Соберите это по $ 032C и от
save
[1] до $ 033B.Reset
иLOAD"PITCHDARK",8,1
. Хит добрыйRunstop+Restore
[2], чтобы вернуться к нормальной жизни.Как это работает?
Вот истинный источник:
032C - это ядро
CLALL
или вектор «Закрыть все каналы и файлы». В рамках своей очистки команда BASICLOAD
выполняет команду,CLR
которая в свою очередь вызываетCLALL
. Мы заменяемCLALL
вектор указателем на нашу собственную подпрограмму сразу после вектора. Мы устанавливаем границу черного цвета и покрываем экран рамкой, а затем вызываемRESTOR
$ FF8A. Последний вектор замененRESTOR
этоSAVE
на $ 0332-0333 , что означает , что последние 8 байт без помех. Затем мы выходим через восстановленныйCLALL
вектор, чтобы продолжитьLOAD
выполнение.Спасибо за это, это было забавное путешествие вниз по переулку памяти, переучивание, как сделать программу автозапуска :)
[1] используйте save, а не bsave, чтобы загрузить с, 1 работает правильно
[2] Escape + PageUp в x64, вероятно.
источник
Ш / Х11 на Arch Linux, 26
источник
-set
для обоихxbacklight = 0
иxbacklight + 7
.x=xbacklight;$x +0;read;$x +7
Баш, 37
Используется,
unclutter
чтобы скрыть указатель мыши и полноэкранный сеанс,xterm
чтобы затемнить экран. Курсор появится на мгновение, если вы переместите его, но если вы оставите его в покое, экран будет черным, пока вы не нажмете Ctrl + C.Курсор мыши исчезнет через несколько секунд (если вы не двигаете его). Если это не достаточно быстро, добавьте
-grab
опциюunclutter
для дополнительных 6 символов.ПРЕДУПРЕЖДЕНИЕ: это оставит процесс
unclutter
запуска даже после нажатия Ctrl + C, используйтеkillall unclutter
для его остановки.объяснение
unclutter &
катераunclutter
. Он&
есть, поэтому мы можем продолжить выполнение следующей команды вместо того, чтобы ждать завершения этой команды.xterm -fullscreen
запускает XTerm, чей фон по умолчанию черный.-e yes ''
Опция заставляет XTerm для запускаyes ''
, в результате чего печати пустой строки навсегда. Это позволяет скрыть курсор терминала, а также предоставляет функциональные возможности Ctrl + C.источник
&
чтобы сохранить 2 байта.Баш, 31 (или 52)
На TTY используйте следующий сценарий (при условии, что фон TTY по умолчанию черный, что верно по крайней мере для Ubuntu 12.04 LTS):
Ваш TTY будет по-прежнему полностью функциональным даже после использования этого скрипта :)
Если это не разрешено, используйте следующее (52 байта):
И нажмите, Enterчтобы завершить сценарий.
Отдельное спасибо @ nyuszika7h.
источник
x='setterm -foreground';$x black;clear;read;$x white
(52 байта).Обработка, 113
Я попытался поместить приведенный выше код в draw (), чтобы сохранить несколько байтов, но это не сработало. Нажмите Alt-F4, чтобы выйти.
источник
ZX Spectrum Basic (29 байт)
Итерирует по экрану, рисуя черные пиксели, которые автоматически очищаются при завершении программы.
Базовая редакция ZX Spectrum использует одиночные байты в качестве команд и никаких новых строк, если при подсчете отображаемых символов вы получите 61 символ.
источник
Lua + LÖVE (50)
Обе функции должны принимать логический аргумент, но это работает.
источник
QBasic, 9 байтов
CLS
очищает экран,SLEEP
без каких-либо аргументов задерживает выполнение до нажатия клавиши.источник
SmileBASIC, 15 байт
Нажатие START или SELECT завершит программу.
XSCREEN 4
устанавливает режим отображения для отображения изображения 320 * 480, охватывающего оба экрана. Это должно очистить все, поэтомуACLS
не требуется.EXEC.
заставляет код повторяться, постоянно запуская программу в слот 0. Я не смог этого сделать,XSCREEN 4EXEC.
потому что у вас не может быть номера непосредственно раньшеE
источник
Синклер Бейсик - 28 символов
Особенность Sinclair BASIC заключалась в том, что каждое ключевое слово имело свой собственный символьный код (занимающий один байт), поэтому на самом деле это занимало бы 13 байтов, включая пробелы.
источник
:NEW
), поскольку команды представляют собой отдельные байты, а не набор символов.SmileBASIC, 23 байта
Работает вечно, пока программа не будет принудительно уничтожена с помощью START или SELECT. Это делает оба экрана полностью черными , что приводит к отключению 3D (таким образом, отключая 3D-светодиод на o3DS.)
источник
Большинство POSIX-совместимых оболочек (как минимум
bash
иzsh
), 21Должен быть запущен на tty
Первая команда скрывает курсор, вторая команда очищает экран (дух), а третья команда читает строку текста
источник
BASH - 14 символов
pmset sleepnow
делает работу!(напечатано в Терминале моего Mac)
источник
Баш: 48 символов
CW, потому что не ясно, соответствует ли он требованиям из-за того, как он работает:
(Обратите внимание, что DP1 является первым подключенным дисплеем. Если у вас есть ноутбук, его встроенный дисплей - eDP1.)
источник
Приложение HTML (.hta), 102 байта
источник
TI-80 BASIC, 5 байтов
источник
Чип-8, 0 байт
Источник: http://laurencescotford.co.uk/?p=75
источник