Ihr Ziel ist einfach: Das Programm muss den Bildschirm Ihres Computers vollständig schwarz machen .
Nachdem das Programm gestartet wurde, muss der Bildschirm schnell vollständig schwarz werden, und dies muss so lange geschehen, bis das Programm beendet wird (eine beliebige Taste oder Alt + F4, Mausbewegung usw.). Danach sollten die Dinge wieder normal werden. Das Ausschalten des Computers oder das Ausschalten des Monitors ist daher NICHT gestattet . Während dieser Zeit sollte kein einziges nicht schwarzes Pixel sichtbar sein, nicht einmal ein blinkender Cursor.
Der Benutzer sollte keine Vorbereitungen treffen (Bewegen der Maus außerhalb des Bildschirms, Trennen der Kabel usw. oder Benutzereingaben nach dem Start des Programms). Starten Sie einfach das Programm.
Sie können davon ausgehen, dass am Computer nur ein Monitor angeschlossen ist. Wir gehen auch von einem Standard-Desktop- oder Notebook-Computer aus, da dies auf einem bestimmten Gerät ohne einen normalen Monitor zu einfach wäre.
Wenn Sie externe Ressourcen (ein schwarzes Bild, eine GUI-Datei usw.) verwenden, wird deren Größe in Byte zu Ihrer Codegröße hinzugefügt.
Es ist in Ordnung, wenn es nur auf einer Betriebssystemfamilie funktioniert, oder wenn OpenGL usw. erforderlich ist, aber eine sehr spezifische Hardwarekonfiguration erforderlich ist.
Ihr Quellcode muss in einer Programmiersprache geschrieben sein, nicht nur in einer Konfigurationsdatei, die ein anderes Programm (z. B. ein Bildschirmschoner) verwendet.
Antworten:
Bash, 28 oder 12
Vorausgesetzt, die Standardinstallation von Ubuntu 12.04 LTS.
Startet automatisch den Bildschirmschoner, der standardmäßig schwarz ist.
Bearbeiten : Wie von @Glenn Randers-Pehrson vorgeschlagen, hier ist eine mit 12 Bytes
Beachten Sie, dass dies möglicherweise nicht funktioniert, wenn Sie eine andere Datei auf Ihrem System haben, die diesen Namen beispielsweise erfüllt
/tmp/1/gnd
. Aber es ist Code-Golf, wen interessiert das?Schauen Sie sich meine andere Bash-Antwort an, wenn Sie Gnome-Bildschirmschoner nicht verwenden!
quelle
Assembly (Bootloader) 131 Zeichen / 512 Byte kompiliert (tatsächlich kleiner, aber der Bootsektor muss 512 Byte lang sein.)
Es ist ein einfacher Bootloader. Wenn der Computer startet, lädt das BIOS ihn von der Diskette. Dann geht es in den Grafikmodus und bleibt einfach hängen. Wenn der Benutzer den Netzschalter drückt, wird das Programm beendet und der Computer wechselt in den Modus, in dem er sich vor dem Ausführen des Programms befand.
Getestet mit VirtualBox.
Es wird mit nasm kompiliert:
Quellcode:
quelle
cli
undsti
? Aktiviert dieSS
automatische Deaktivierung von Interrupts für die Dauer des nächsten Befehls undAX
wird nicht geändert, wenn zuvor ein Interrupt aufgetreten istMOV SS,AX
. Warum auch nichtMOV AX, 0x13
statt zweiMOV
?QBASIC (31)
quelle
Java: 165
Einfaches Java erzeugt nur einen schwarzen Vollbildrahmen. Zum Beenden müssen Sie Alt + Tab zurück zur Konsole und Strg-C, aber das scheint einfach genug.
quelle
AppleSoft] [BASIC (17)
quelle
Bash - 57
26Bei einem Laptop wird die Helligkeit der Hintergrundbeleuchtung über auf 0 gesetzt. Bei
/sys/class/backlight
einem Tablet oder Telefon wird die Helligkeit der LED-Anzeige über auf 0 gesetzt/sys/class/leds
quelle
Fn+F6
,Fn+<up arrow>
Und viele andere Tastenkombinationen lassen sich in „ eine beliebige Taste“ und „usw.“, und das sind eine der vielen das Licht zurück zu setzen , wie es war.find /sys/class/{backlight,leds}/*/
?Ich weiß, dass dies Codegolf ist, aber ich konnte nicht widerstehen.
Stellen Sie einfach sicher, dass keine Browserfenster geöffnet sind (in diesem Fall Chrome).
Führen Sie
diese PitchBlack.bat (3124 Bytes) aus :Wenn dieser Stapel im selben Verzeichnis wie Ihre Chrome.exe- Datei abgelegt ist, wird Chrome im Kioskmodus ausgeführt und eine Datei mit dem Namen / 1 (
494134 Bytes) im Vollbildmodus geöffnet:Et voilà!
Gesamtanzahl der Bytes:
807258Dank an @ace :)
Um das Programm zu beenden, müssen Sie ein klassisches ALT + F4 wählen . Sie müssen nach dem Start des Programms keine weiteren Vorbereitungen treffen (auch nicht zuvor, Sie müssen nur
/1
die Batch-Datei platzieren), sodass die Regeln eingehalten werden können.Bitte beachten Sie, dass der Cursor möglicherweise sichtbar wird , wenn Sie ihn in Richtung der Bildschirmränder bewegen. Das OP hat nicht gesagt, dass dies nicht erlaubt ist, da
Das sollte also völlig in Ordnung sein! : P
quelle
chrome --kiosk 'data:text/html,<style>body{background:#000;cursor:none;}</style>'
ohne zusätzliche Datei funktionieren?file:
Bedeutet, dass bei Verwendung von shceme keine URL-Leiste sichtbar ist, beidata:
Schema jedoch eine URL-Leiste?chromium-browser --kiosk 'data:text/html,<style>body{background:#000;cursor:none;}</style>
startet Chromium fast im Vollbildmodus mit der schwarzen Seite ohne Balken.file:///1
wenn der HTML-/1
<body bgcolor=0 style=cursor:none>
chrome
in Ihrer Antwort verwenden, anstattchromium
C # -
211202200196179 BytesBlendet den Cursor aus und zeigt ein schwarzes Vollbildfenster an. Kann mit Alt+ geschlossen werdenF4
Code ohne Golf :
Ich muss nicht auf umwandeln
FormBorderStyle
, weil das nicht notwendig ist, wenn die ganze Zahl ist0
.quelle
System.Drawing.Color.Black
,FormWindowState.Maximized
,FormWindowState.Maximized
undFormBorderStyle.None
mit den entsprechenden Werten.Color.Black
. Es sollte sofort funktionieren. OderBackColor=This.ForeColor
welche KÖNNTE auch funktionieren.using System.Drawing;
, und der zweite funktioniert nicht, weil ich die Variablenwerte in Klammern gesetzt habe.using System;
dannnew Windows.Forms.Form
undBackColor=Drawing.Color.Black
. Es könnte funktionieren! Und sparen Sie ein paar Bytes.C #
175171167Bei vielen Antworten wird der Bildschirm nicht schwarz : Auf einem LCD-Bildschirm bleibt die Hintergrundbeleuchtung eingeschaltet und blutet durch, sodass Sie ein dunkelgraues Bild erhalten.
Dieses kleine Snippet weist Windows an, den Bildschirm auszuschalten, genau wie der Inaktivitäts-Timer (Hinweis: Dies verstößt nicht gegen die Regel "Kein Ausschalten", da der Monitor nur in den Standby-Modus versetzt wird. Die meisten Monitore werden dies tun wieder einschalten, wenn die Eingabe wieder aufgenommen wird. Außerdem scheint es die Absicht dieser Regel zu sein, sicherzustellen, dass das Programm sie wieder einschalten kann - siehe unten.)
Bewegen Sie die Maus oder drücken Sie eine Taste, um den Bildschirm wieder einzuschalten.
Überwachen Sie das Ausschalten über https://stackoverflow.com/a/713519/1030702
quelle
Amiga-Versammlung
ASM-One -
228219 Zeichen, 172 Bytes kompiliert (168 Bytes optimiert)Es ist 20 Jahre her, dass ich zuletzt eine einzelne Zeile in der Amiga-Assembly codiert habe. :-)
Der Amiga war in Bezug auf das Einrichten eines leeren Bildschirms etwas aufwändiger als der PC, daher wurde versucht, so viel Setup und Teardown wie möglich zu vermeiden. Es gibt keine Deaktivierung von Interrupts oder Multitasking. kein doppeltes WaitTOF; kein Sichtersatz; usw. Ich hätte dies nicht einmal für die schnellste und schmutzigste Demo geschrieben. Was bedeutet das:
... obwohl es auf emuliertem A500 und A1200 mit oder ohne schnellem Speicher getestet wurde. Kompiliert zu einer Standard-Programmdatei. Mausklick beendet.
Weniger golfen:
quelle
Python / Pygame
19912712592Dank ein paar Tipps von Ass.
quelle
from pygame import*
stattdessen verwenden. Auch halte ich nicht fürfill((0,0,0))
notwendig, da die Standardfarbe Schwarz ist. Dann können Sies
insgesamt entfernen . Ich glaube auch nicht, dassdisplay.flip()
es nötig ist. Wenn Sie anstelle von 4 ein Leerzeichen für den Einzug verwenden, können Sie auch mehr Leerzeichen sparen. Schließlich können Sie anstelle vonFULLSCREEN
undKEYDOWN
deren numerische Werte verwenden, nämlich-1<<31
(-2147483648)2
bzw ..TI-BASIC,
76Funktioniert sowohl im Terminal (Startbildschirm) als auch als Programm. Durch Drücken der
ON
oder der meisten anderen Tasten kehren Sie zum Terminal / Startbildschirm zurück.quelle
Shade(Ymin,Ymax
.Commodore 64 (16 Byte)
Es ist mehr als 20 Jahre her, dass ich Turbo Assembler verwendet habe. Daher kann ich nur die Quelle für den VICE-Monitor bereitstellen. Stellen Sie dies bei $ 032C und
save
[1] bis $ 033B zusammen.Reset
undLOAD"PITCHDARK",8,1
. Hit good ol 'Runstop+Restore
[2], um wieder normal zu werden.Wie funktioniert es?
Hier ist die wahre Quelle:
$ 032C ist der kernige
CLALL
oder "Alle Kanäle und Dateien schließen" -Vektor . Im Rahmen seiner Bereinigung führt der BASIC-LOAD
Befehl einen aus,CLR
der wiederum aufruftCLALL
. Wir ersetzen denCLALL
Vektor durch einen Zeiger auf unsere eigene Routine unmittelbar nach dem Vektor. Wir setzen den Rand auf Schwarz und decken den Bildschirm mit dem Rand ab und rufen dannRESTOR
$ FF8A an. Der letzte durch ersetzte VektorRESTOR
befindet sichSAVE
bei $ 0332-0333, was bedeutet, dass die letzten 8 Bytes ungestört sind. Wir verlassen dann über den wiederhergestelltenCLALL
Vektor, umLOAD
die Ausführung fortzusetzen .Vielen Dank dafür, es hat Spaß gemacht, in die Vergangenheit zu reisen und neu zu lernen, wie man ein Autorun-Programm ausführt :)
[1] benutze save und nicht bsave, damit load with, 1 korrekt funktioniert
[2] Escape + PageUp in x64, wahrscheinlich.
quelle
sh / X11 unter Arch Linux, 26
quelle
-set
für beide verwendenxbacklight = 0
undxbacklight + 7
.x=xbacklight;$x +0;read;$x +7
Bash, 37
Anwendungen mit
unclutter
der Maus und eine Vollbild - Sitzung zu verbergen ,xterm
um schwarz den Bildschirm. Der Cursor wird für einen Moment wieder angezeigt, wenn Sie ihn bewegen. Wenn Sie ihn jedoch in Ruhe lassen, wird der Bildschirm schwarz, bis Sie Strg + C drücken.Es dauert einige Sekunden, bis der Mauszeiger verschwindet (solange Sie ihn nicht bewegen). Wenn dies nicht schnell genug ist, fügen Sie die
-grab
Optionunclutter
für weitere 6 Zeichen hinzu.WARNUNG: Dadurch bleibt der Prozess
unclutter
auch nach dem Drücken von Strg + C aktiv. Verwenden Siekillall unclutter
, um ihn zu stoppen.Erläuterung
unclutter &
startetunclutter
. Das&
ist da, damit wir mit dem nächsten Befehl weitermachen können, anstatt darauf zu warten, dass dieser beendet wird.xterm -fullscreen
Startet XTerm, dessen Hintergrund standardmäßig schwarz ist.Die
-e yes ''
Option bewirkt, dass XTerm ausgeführtyes ''
wird und die leere Zeichenfolge für immer gedruckt wird. Dies dient zum Ausblenden des Terminalcursors und bietet auch die Strg + C-Funktionalität.quelle
&
, um 2 Byte zu sparen.Bash, 31 (oder 52)
Verwenden Sie auf einem TTY das folgende Skript (vorausgesetzt, Ihr Standard-TTY-Hintergrund ist schwarz, was zumindest für Ubuntu 12.04 LTS zutrifft):
Ihr TTY wäre auch nach Verwendung dieses Skripts noch voll funktionsfähig :)
Wenn dies nicht zulässig ist, verwenden Sie Folgendes (52 Byte):
Und drücken Sie, Enterum das Skript zu beenden.
Besonderer Dank geht an @ nyuszika7h.
quelle
x='setterm -foreground';$x black;clear;read;$x white
(52 Bytes).Verarbeitung, 113
Ich habe versucht, den obigen Code auf draw () zu setzen, um ein paar Bytes zu sparen, aber es hat nicht funktioniert. Drücken Sie zum Beenden Alt-F4.
quelle
ZX Spectrum Basic (29 Byte)
Iteriert über den Bildschirm und zeichnet schwarze Pixel auf, die nach Programmende automatisch gelöscht werden.
Die Basisversion des ZX Spectrum verwendet einzelne Bytes als Befehle und keine Zeilenumbrüche. Wenn Sie die angezeigten Zeichen zählen, erhalten Sie 61 Zeichen.
quelle
Lua + LÖVE (50)
Beide Funktionen sollten ein boolesches Argument haben, aber das funktioniert.
quelle
QBasic, 9 Bytes
CLS
Löscht den BildschirmSLEEP
ohne Argumente und hält die Ausführung an, bis eine Taste gedrückt wird.quelle
SmileBASIC, 15 Bytes
Durch Drücken von START oder SELECT wird das Programm beendet.
XSCREEN 4
Stellt den Anzeigemodus so ein, dass ein Bild mit 320 * 480 auf beiden Bildschirmen angezeigt wird. Dies sollte alles löschen, so dass einACLS
nicht erforderlich ist.EXEC.
Lässt den Code wiederholt werden, indem das Programm ständig in Position 0 ausgeführt wird. Das konnte ich nicht,XSCREEN 4EXEC.
da Sie vorher keine Nummer haben könnenE
quelle
Sinclair BASIC - 28 Zeichen
Das Besondere an Sinclair BASIC war, dass jedes Schlüsselwort einen eigenen Zeichencode hat (der ein Byte belegt), sodass dies tatsächlich 13 Byte einschließlich Leerzeichen beansprucht.
quelle
:NEW
) sind, da die Befehle einzelne Bytes sind und keine Ansammlung von Zeichen.SmileBASIC, 23 Bytes
Läuft für immer, bis das Programm mit START oder SELECT gewaltsam beendet wird. Dadurch werden beide Bildschirme vollständig schwarz , wodurch 3D deaktiviert wird (wodurch die 3D-LED auf o3DS ausgeschaltet wird).
quelle
Die meisten POSIX-kompatiblen Shells (mindestens
bash
undzsh
), 21Muss auf einem tty ausgeführt werden
Der erste Befehl blendet den Cursor aus, der zweite Befehl löscht den Bildschirm (duh) und der dritte Befehl liest eine Textzeile
quelle
BASH - 14 Zeichen
pmset sleepnow
macht den Job!(in das Terminal meines Mac eingegeben)
quelle
Bash: 48 Zeichen
CW weil nicht klar ist, ob es sich aufgrund der Funktionsweise qualifiziert:
(Beachten Sie, dass DP1 das erste angeschlossene Display ist. Wenn Sie einen Laptop haben, ist das eingebettete Display eDP1.)
quelle
HTML-Anwendung (.hta), 102 Byte
quelle
TI-80 BASIC, 5 Byte
quelle
Chip-8, 0 Bytes
Quelle: http://laurencescotford.co.uk/?p=75
quelle