Pitch Dark (Earth Hour Erinnerung)

31

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.

vsz
quelle
9
Das funktioniert nicht auf Bildschirmen mit festsitzenden Pixeln ...
Ismael Miguel
21
@IsmaelMiguel: Sie können sicher einen Bildschirm in einwandfreiem Zustand annehmen. Andernfalls könnten wir andere Fragen im Stil von "Was ist, wenn ein Transistor in meiner ALU durchgebrannt ist und mein Computer keine Gleitkomma-Mathematik ausführen kann?" :)
vsz
5
Eine lustige Tatsache: Auf Bildschirmen, die weder CRT noch dynamischen Kontrast verwenden, wird etwas mehr Strom verbraucht!
Ry
2
reale Anwendung: Astronomie! lists.apple.com/archives/Carbon-dev/2008/May/msg00005.html
Nicht dass Charles
2
Alle Antworten werden automatisch disqualifiziert - einer meiner Monitore hat ein Pixel, dessen roter Wert immer 255 ist!
Der Kerl mit dem Hut

Antworten:

22

Bash, 28 oder 12

Vorausgesetzt, die Standardinstallation von Ubuntu 12.04 LTS.

gnome-screensaver-command -a

Startet automatisch den Bildschirmschoner, der standardmäßig schwarz ist.

Bearbeiten : Wie von @Glenn Randers-Pehrson vorgeschlagen, hier ist eine mit 12 Bytes

/*/*/gn*d -a

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!

pastebin.com Schrägstrich 0mr8spkT
quelle
1
Die Art der Antwort, die Sie denken lässt: "Warum um alles in der Welt habe ich nicht daran gedacht?". :)
Alex Thornton
1
Das klärt den Bildschirm nicht wirklich mit bash.
Darth Egregious
3
"Ihr Quellcode muss in einer Programmiersprache geschrieben sein, nicht nur in einer Konfigurationsdatei, die ein anderes Programm (z. B. ein Bildschirmschoner) verwendet."
Hannes Karppila
2
@hannes karppila Ich habe keine Konfigurationsdatei geändert, die von einem anderen Programm verwendet wird. Ich habe nur ein anderes Programm gestartet , was die meisten Bash-Skripte tun (es sei denn, es wurde in reiner Bash geschrieben)
pastebin.com slash 0mr8spkT
5
@ace, Golfed: / * / * / gn * d anstelle von gnome-screensaver-command spart etwa 16 bytes (idee von mniip)
Glenn Randers-Pehrson
31

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:

nasm -f bin file.asm -o start.img

Quellcode:

[BITS 16]
[ORG 0x7C00]
cli
mov AX,0x0
mov SS,AX
mov SP,0x9000
sti
mov AH,0x0
mov AL,0x13
int 0x10
times 510 - ($-$$) db 0
dw 0xAA55
Hannes Karppila
quelle
1
Wie man auf VirtualBox läuft: (Kompilieren mit nasm), neue VM, Typ: Andere, Version: Andere / Unbekannt, keine Festplatte. Gehen Sie als nächstes zu den Einstellungen der VM, wählen Sie Speicher, klicken Sie mit der rechten Maustaste in die Liste und wählen Sie "Add Floppy Controller". Hängen Sie die kompilierte IMG-Datei in das Diskettenlaufwerk ein. Speichern Sie, und Sie können es dann ausführen. Genießen!
Zach Mertes
Ich wollte das Gleiche tun wie ein Dos-Programm, aber Sie waren schneller. Grundsätzlich ist das Einzige, woran ich mich von Assembler aus zurückerinnere :)
Fels
Können Sie bitte erklären, wie es funktioniert?
Mega Man
Warum das cliund sti? Aktiviert die SSautomatische Deaktivierung von Interrupts für die Dauer des nächsten Befehls und AXwird nicht geändert, wenn zuvor ein Interrupt aufgetreten ist MOV SS,AX. Warum auch nicht MOV AX, 0x13statt zwei MOV?
Ruslan
Das jüngere ich wusste nicht, wie man richtig Code schreibt. Derzeit weiß ich es wahrscheinlich auch nicht.
Hannes Karppila
15

QBASIC (31)

SCREEN 7
WHILE INKEY$=""
WEND
Darth Egregious
quelle
14
@TheGuywithTheHat Ich habe endlich eine Verwendung für meine Windows 3.1 vm gefunden.
Darth Egregious
3
Wow zu sehen, dass WEND Erinnerungen zurückbrachte
Claudiu
@ user973810 Du meinst QB64 .
Nyuszika7h
14

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.

import java.awt.*;class B{public static void main(String[]a){Frame f=new Frame();f.setExtendedState(6);f.setUndecorated(1>0);f.setBackground(Color.BLACK);f.show();}}

// line breaks below

import java.awt.*;
class B{
    public static void main(String[]a){
        Frame f=new Frame();
        f.setExtendedState(6);
        f.setUndecorated(1>0);
        f.setBackground(Color.BLACK);
        f.show();
    }
}
Geobits
quelle
11

AppleSoft] [BASIC (17)

1 HGR2:GET X:TEXT
Geoff Reedy
quelle
Ich glaube nicht, dass dies tatsächlich 17 Bytes sind ... Ich denke, es könnte weniger sein. Wenn ich mich richtig erinnere, hat Applesoft seine Schlüsselwörter mit einem Token versehen, sodass jedes Schlüsselwort tatsächlich aus einem Byte bestand. Daher ist dieses möglicherweise erheblich kürzer. Es ist so oder so +1.
Beska
11

Bash - 57 26

C=/s*/*/*/*/b*ess;(A=$(cat $C);echo 0;cat;echo $A)|tee $C

Bei einem Laptop wird die Helligkeit der Hintergrundbeleuchtung über auf 0 gesetzt. Bei /sys/class/backlighteinem Tablet oder Telefon wird die Helligkeit der LED-Anzeige über auf 0 gesetzt/sys/class/leds

mniip
quelle
2
"Und bleiben Sie so, bis das Programm beendet wird (eine beliebige Taste oder Alt + F4, Mausbewegung usw.), wonach die Dinge wieder normal werden sollten"
Ry-
1
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.
Ismael Miguel
1
@minitech Oh. Nun, behoben ...
Mniip
Bei mir funktioniert das überhaupt nicht. Wenn ich "C = / s * / * / * / * / bess; (A = $ (cat $ C); echo 0; cat; echo $ A) | tee $ C" tue, erhalte ich cat : / s * / * / * / * / b ess: Keine solche Datei oder Verzeichnis tee: / s * / * / * / * / b * ess: Keine solche Datei oder Verzeichnis
@Lembik Ich würde davon ausgehen, dass du keine Helligkeitsregler hast oder denen Treiber fehlen. Lust auf Pastebinning find /sys/class/{backlight,leds}/*/?
8.
8

Ich weiß, dass dies 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 ( 31 24 Bytes) aus :

chrome --kiosk file:///1

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 ( 49 41 34 Bytes) im Vollbildmodus geöffnet:

<body bgcolor=0 style=cursor:none>

Et voilà!

Gesamtanzahl der Bytes: 80 72 58
Dank 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 /1die 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

Nachdem das Programm gestartet wurde, muss der Bildschirm schnell vollständig schwarz werden und dies so lange tun, bis das Programm beendet wird (eine beliebige Taste oder Alt + F4, Mausbewegung usw.). Danach sollten die Dinge wieder normal werden.

Das sollte also völlig in Ordnung sein! : P

Vereos
quelle
1
Vielleicht kann sowas chrome --kiosk 'data:text/html,<style>body{background:#000;cursor:none;}</style>'ohne zusätzliche Datei funktionieren?
Vi.
file:Bedeutet, dass bei Verwendung von shceme keine URL-Leiste sichtbar ist, bei data:Schema jedoch eine URL-Leiste?
Vi.
Auf meinem System chromium-browser --kiosk 'data:text/html,<style>body{background:#000;cursor:none;}</style>startet Chromium fast im Vollbildmodus mit der schwarzen Seite ohne Balken.
Vi.
Getestet auf Ubuntu und Chromium 34.0, funktioniert es mit, file:///1wenn der HTML- /1<body bgcolor=0 style=cursor:none>
Code
1
Ich denke, Sie sollten chromein Ihrer Antwort verwenden, anstattchromium
pastebin.com Schrägstrich 0mr8spkT
7

C # - 211 202 200 196 179 Bytes

using System.Windows.Forms;class A{static void Main(){Cursor.Hide();new Form{BackColor=System.Drawing.Color.Black,WindowState=(FormWindowState)2,FormBorderStyle=0}.ShowDialog();}}

Blendet den Cursor aus und zeigt ein schwarzes Vollbildfenster an. Kann mit Alt+ geschlossen werdenF4

Code ohne Golf :

using System.Windows.Forms;
class A
{
    static void Main()
    {
        Cursor.Hide();
        new Form
        {
            BackColor = System.Drawing.Color.Black,
            WindowState = (FormWindowState)2, // FormWindowState.Maximized
            FormBorderStyle = 0 // FormBorderStyle.None
        }.ShowDialog();
    }
}

Ich muss nicht auf umwandeln FormBorderStyle, weil das nicht notwendig ist, wenn die ganze Zahl ist 0.

ProgramFOX
quelle
2
Sie können ersetzen System.Drawing.Color.Black, FormWindowState.Maximized, FormWindowState.Maximizedund FormBorderStyle.Nonemit den entsprechenden Werten.
Ismael Miguel
@IsmaelMiguel: Danke, ich habe den FormWindowState und den FormBorderStyle aktualisiert! Ich konnte die Farbe nicht aktualisieren, da dies keine Aufzählung ist.
ProgramFOX
Versuchen Sie es Color.Black. Es sollte sofort funktionieren. Oder BackColor=This.ForeColorwelche KÖNNTE auch funktionieren.
Ismael Miguel
@IsmaelMiguel: Der erste funktioniert nicht, weil ich nichts hinzugefügt habe using System.Drawing;, und der zweite funktioniert nicht, weil ich die Variablenwerte in Klammern gesetzt habe.
ProgramFOX
Versuchen Sie es using System;dann new Windows.Forms.Formund BackColor=Drawing.Color.Black. Es könnte funktionieren! Und sparen Sie ein paar Bytes.
Ismael Miguel
5

C # 175 171 167

class P{static void Main(){SendMessage(65535,274,61808,2);}[System.Runtime.InteropServices.DllImport("user32")]static extern int SendMessage(int a,int b,int c,int d);}

Bei 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

Bob
quelle
"Das Ausschalten des Computers oder das Ausschalten des Monitors ist NICHT gestattet ."
Ismael Miguel
1
@IsmaelMiguel Ich habe meine Rechtfertigung geliefert. "bis das Programm beendet wird (beliebige Taste oder Alt + F4, Mausbewegung usw.), danach sollten die Dinge wieder normal werden. Also wird geschlossen ..." - die Absicht der Regel wurde erfüllt. Dies wird "wieder einschalten". Abgesehen von der Absicht wird auch die wörtliche Bedeutung übersättigt , da dies trotz der Terminologie von Microsoft nicht wirklich ausschaltet (Timeouts bei Projektoren usw. beiseite), sondern in den Standby-Modus versetzt .
Bob
4

Amiga-Versammlung

ASM-One - 228 219 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:

  • ist schlechte Praxis
  • kann nicht ganz sicher sein
  • funktioniert möglicherweise nicht immer
  • Selbst mit diesen Haftungsausschlussklauseln hat wahrscheinlich dumme Fehler aufgrund von 20 Jahren vernachlässigter Montage.

... obwohl es auf emuliertem A500 und A1200 mit oder ohne schnellem Speicher getestet wurde. Kompiliert zu einer Standard-Programmdatei. Mausklick beendet.

l=$dff080
 move.l 4,a6
 lea g,a1
 jsr -408(a6)
 move.l d0,a1
 move.l 38(a1),d4
 jsr -412(a6)
 move.l #c,l
w:btst #6,$bfe001
 bne w
 move.l d4,l
 rts
g:dc.b "graphics.library",0
 SECTION d,DATA_C
c:dc 256,512,384,0,-1,-2

Weniger golfen:

COP1LC equ $dff080

    move.l  $4, a6          ; ExecBase
    lea     gfxname, a1
    jsr     -408(a6)        ; OpenLibrary (old, hence no need for clearing d0)
    move.l  d0, a1
    move.l  38(a1), d4      ; store copper list
    jsr     -414(a6)        ; CloseLibrary
                            ; Yeah, if I had a penny for the times I saw that left out
                            ; but I just... can't...

    move.l  #copper,COP1LC  ; write copper list

wait:
    btst    #6, $bfe001     ; Check mouse click
    bne     wait

    move.l  d4, COP1LC      ; restore copper list
    rts

gfxname:
    dc.b    "graphics.library", 0

    SECTION data, DATA_C
copper:
    dc.w $0100, $0200       ; disable bitplanes
    dc.w $0180, $0000       ; color 0 = black
    dc.w $ffff, $fffe       ; end
JimmiTh
quelle
1
Aaaah, die Erinnerungen! Liebe es!
RobIII
Ja, dies war eher eine Ausrede für eine Nostalgie-Reise als ein echter Versuch, Code-Golf zu spielen - Amiga-Assembler werden in Bezug auf die Anzahl der Charaktere selten mit Perl oder Python konkurrieren. Obwohl ich ein bisschen überrascht war, konnte es C # oder Java nicht schlagen. :)
JimmiTh
4

Python / Pygame 199 127 125 92

from pygame import*;display.set_mode((9,9),-1<<31);mouse.set_visible(0)
while 1:event.pump()

Dank ein paar Tipps von Ass.

Harry Beadle
quelle
Da ALT + F4 zählt, würde ich auch ^ C zählen, so dass Sie am Ende viele Bytes überspringen können.
o0 '.
1
Damit ^ C funktioniert, muss der Fokus auf dem Terminal liegen, und im Programm ist das Pygame-Fenster aufgrund von Pygame immer fokussiert.FULLSCREEN Edit: Eine Alternative wäre, das Programm ohne Exit zu verlassen, was das Spammen der Tastatur bis erfordern würde Ihr Betriebssystem bemerkt, dass etwas nicht stimmt.
Harry Beadle
Sie können einige Bytes speichern, indem Sie from pygame import*stattdessen verwenden. Auch halte ich nicht für fill((0,0,0))notwendig, da die Standardfarbe Schwarz ist. Dann können Sie sinsgesamt entfernen . Ich glaube auch nicht, dass display.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 von FULLSCREENund KEYDOWNderen numerische Werte verwenden, nämlich -1<<31(-2147483648) 2bzw ..
pastebin.com Schrägstrich 0mr8spkT
4

TI-BASIC, 7 6

Shade(Ymin,Ymax

Funktioniert sowohl im Terminal (Startbildschirm) als auch als Programm. Durch Drücken der ONoder der meisten anderen Tasten kehren Sie zum Terminal / Startbildschirm zurück.

Timtech
quelle
Kann ein Byte kleiner sein (und auch dann funktionieren, wenn das Grafikfenster geändert wird) als Shade(Ymin,Ymax.
Lirtosiast
@ThomasKwa Du hast Recht, danke für den Tipp!
Timtech
3

Commodore 64 (16 Byte)

ROL $A903
BRK
STA $D020
STA $D011
JSR $FF8A
JMP ($032C)

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. Resetund LOAD"PITCHDARK",8,1. Hit good ol ' Runstop+Restore[2], um wieder normal zu werden.

Wie funktioniert es?

Hier ist die wahre Quelle:

032C 2E 03      .BY 2E 03
032E A9 00      LDA #$00
0330 8D 20 D0   STA $D020   ; set border color  
0333 8D 11 D0   STA $D011   ; set VIC blanking mode
0336 20 15 FD   JSR $FF8A   ; reset the vectors we trampled
0339 6C 2C 03   JMP ($032C) ; call the real CLALL

$ 032C ist der kernige CLALL oder "Alle Kanäle und Dateien schließen" -Vektor . Im Rahmen seiner Bereinigung führt der BASIC- LOADBefehl einen aus, CLRder wiederum aufruft CLALL. Wir ersetzen den CLALLVektor 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 dann RESTOR$ FF8A an. Der letzte durch ersetzte Vektor RESTORbefindet sich SAVEbei $ 0332-0333, was bedeutet, dass die letzten 8 Bytes ungestört sind. Wir verlassen dann über den wiederhergestellten CLALLVektor, um LOADdie 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.

Die Aale haben Augen
quelle
3

sh / X11 unter Arch Linux, 26

b=/b*/*ht;$b =0;read;$b =7
Ry-
quelle
Sie können wahrscheinlich ein paar Zeichen mit einem Alias ​​rasieren und möglicherweise -setfür beide verwenden
zwar
1
Verwenden Sie xbacklight = 0und xbacklight + 7.
bb010g
1
29 Bytes:x=xbacklight;$x +0;read;$x +7
nyuszika7h
@ nyuszika7h: Danke! (
Habe
3

Bash, 37

Anwendungen mit unclutterder Maus und eine Vollbild - Sitzung zu verbergen , xtermum 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 -grabOption unclutterfür weitere 6 Zeichen hinzu.

unclutter&xterm -fu -bg black -e yes ''

WARNUNG: Dadurch bleibt der Prozess unclutterauch nach dem Drücken von Strg + C aktiv. Verwenden Sie killall unclutter, um ihn zu stoppen.

Erläuterung

unclutter &startet unclutter. 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ührt yes ''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
In meinem System wird der Bildschirm komplett weiß.
Vi.
@Vi. Das bedeutet, dass Ihre XTerm-Hintergrundfarbe weiß ist.
Sie können "-fullscreen" mit "-fu" abkürzen und "-bg black" verwenden, um die schwarze Hintergrundfarbe unabhängig von den Benutzereinstellungen zu erzwingen.
Semi-Extrinsic
Sie können die Leerzeichen entfernen &, um 2 Byte zu sparen.
nyuszika7h
3

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):

setterm -foreground black
clear

Ihr TTY wäre auch nach Verwendung dieses Skripts noch voll funktionsfähig :)

Wenn dies nicht zulässig ist, verwenden Sie Folgendes (52 Byte):

x='setterm -foreground'
$x black
clear
read
$x white

Und drücken Sie, Enterum das Skript zu beenden.

Besonderer Dank geht an @ nyuszika7h.

pastebin.com Schrägstrich 0mr8spkT
quelle
1
Für den zweiten Fall: x='setterm -foreground';$x black;clear;read;$x white(52 Bytes).
nyuszika7h
2

Verarbeitung, 113

void setup(){noCursor();size(displayWidth, displayHeight);background(0);}boolean sketchFullScreen(){return true;}

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.

segfaultd
quelle
2

ZX Spectrum Basic (29 Byte)

1 FOR x=0 TO 255
2 FOR y=0 TO 175
3 PLOT x,y
4 NEXT y
5 NEXT x

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.

kitcar2000
quelle
2

Lua + LÖVE (50)

love.mouse.setVisible()love.window.setFullscreen""

Beide Funktionen sollten ein boolesches Argument haben, aber das funktioniert.

Seeker14491
quelle
2

QBasic, 9 Bytes

CLS:SLEEP

CLSLöscht den Bildschirm SLEEPohne Argumente und hält die Ausführung an, bis eine Taste gedrückt wird.

steenbergh
quelle
2

SmileBASIC, 15 Bytes

XSCREEN 4
EXEC.

Durch Drücken von START oder SELECT wird das Programm beendet.

XSCREEN 4Stellt den Anzeigemodus so ein, dass ein Bild mit 320 * 480 auf beiden Bildschirmen angezeigt wird. Dies sollte alles löschen, so dass ein ACLSnicht 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

12Me21
quelle
1

Sinclair BASIC - 28 Zeichen

BORDER 0:PAPER 0:CLS:PAUSE 0

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.

Brian
quelle
Wird der Bildschirm nach Abschluss des Vorgangs wieder normal angezeigt?
kitcar2000
@ kitcar2000 - Nachdenken, nein. Ich würde wahrscheinlich ": NEW" am Ende als schnelles und unsauberes Zurücksetzen hinzufügen und es auf 32 Zeichen / 15 Bytes bringen
Brian,
Ich denke, dass es nur 10 Bytes (12 mit :NEW) sind, da die Befehle einzelne Bytes sind und keine Ansammlung von Zeichen.
kitcar2000
1

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).

ACLS:XSCREEN 3@L GOTO@L
Schnecke_
quelle
1

Die meisten POSIX-kompatiblen Shells (mindestens bashund zsh), 21

Muss auf einem tty ausgeführt werden

tput civis;clear;read

Der erste Befehl blendet den Cursor aus, der zweite Befehl löscht den Bildschirm (duh) und der dritte Befehl liest eine Textzeile

da ist farfetchd
quelle
0

BASH - 14 Zeichen

pmset sleepnow macht den Job!

(in das Terminal meines Mac eingegeben)

Max Chuquimia
quelle
Sie sollten das Betriebssystem und / oder andere Voraussetzungen in Ihrer Antwort angeben.
pastebin.com Schrägstrich 0mr8spkT
@ace Antwort bearbeitet :)
Max Chuquimia
Schläft der Monitor nicht aus?
o0 '.
0

Bash: 48 Zeichen

eval xrandr\ --output\ DP1\ --{off,auto}\;read\;

CW weil nicht klar ist, ob es sich aufgrund der Funktionsweise qualifiziert:

  • Der erzeugte schwarze Bildschirm ist eine echte Stromersparnis: Er unterbricht das Senden von Informationen an das Display 1.
  • Viele Computeranzeigen zeigen bei Erkennung eines Signalverlusts vorübergehend oder regelmäßig ihre eigene Meldung an.

(Beachten Sie, dass DP1 das erste angeschlossene Display ist. Wenn Sie einen Laptop haben, ist das eingebettete Display eDP1.)

Mann bei der Arbeit
quelle
0

HTML-Anwendung (.hta), 102 Byte

<HTA:APPLICATION CAPTION=no innerborder=0 border=dialog scroll=0 windowstate=maximize><body bgcolor=0>
user2428118
quelle
0

TI-80 BASIC, 5 Byte

ZOOM OUT
ZOOM OUT
GRIDON
12Me21
quelle
0

Chip-8, 0 Bytes

[D] Der ursprüngliche Chip-8-Interpreter hat die Ausführung ab 0x01FC begonnen. Der Interpreter enthält an dieser Stelle zwei permanente Chip-8-Anweisungen, die immer zu Beginn eines jeden Programms ausgeführt werden. Das erste von diesen, 0x00E0, löscht den Anzeige-RAM, indem alle Bits auf Null gesetzt werden. Das zweite 0x004B ruft eine Maschinensprachenroutine innerhalb des Interpreters auf, die das VIP-Display einschaltet.

Quelle: http://laurencescotford.co.uk/?p=75

12Me21
quelle