Pitch Dark (pamięć o Godzinie dla Ziemi)


31

Twój cel jest prosty: program musi całkowicie czarny ekran komputera .

Po uruchomieniu programu ekran musi szybko całkowicie zmienić kolor na czarny i pozostać nim do momentu wyjścia z programu (dowolny klawisz lub Alt + F4, ruch myszy itp.), Po czym wszystko powinno wrócić do normy. Dlatego wyłączanie komputera lub wyłączanie zasilania monitora NIE jest dozwolone . W tym czasie nie powinien być widoczny ani żaden inny niż czarny piksel, nawet migający kursor.

Użytkownik nie powinien wykonywać żadnych przygotowań (przesuwanie myszy poza ekran, odłączanie kabli itp. Lub wprowadzanie danych przez użytkownika po uruchomieniu programu), wystarczy uruchomić program.

Możesz bezpiecznie założyć, że komputer ma podłączony tylko jeden monitor. Zakładamy również standardowy komputer stacjonarny lub notebook, ponieważ robienie tego na określonym urządzeniu bez normalnego monitora byłoby zbyt proste.

Jeśli korzystasz z jakichkolwiek zasobów zewnętrznych (czarny obraz, plik GUI itp.), Ich rozmiar w bajtach jest dodawany do rozmiaru kodu.

Jest OK, jeśli działa tylko na jednej rodzinie systemów operacyjnych, lub jeśli wymaga OpenGL itp., Ale nie jest mile widziane wymaganie bardzo specyficznej konfiguracji sprzętowej.

Kod źródłowy musi być napisany w języku programowania, a nie tylko w pliku konfiguracyjnym, który będzie używany przez inny program (np. Wygaszacz ekranu).


9
To nie zadziała na ekranach z zablokowanymi pikselami ...
Ismael Miguel

21
@ IsmaelMiguel: możesz bezpiecznie założyć ekran w idealnym stanie technicznym. W przeciwnym razie moglibyśmy sprzeciwić się innym pytaniom w stylu „co się stanie, jeśli tranzystor w moim ALU zostanie wypalony, a mój komputer nie będzie w stanie wykonać matematyki zmiennoprzecinkowej?” :)
vsz

5
Ciekawostka: na ekranach, które nie używają CRT ani dynamicznego kontrastu, zużyje to nieco więcej prądu!
Ry-

2
zastosowanie w prawdziwym świecie: astronomia! lists.apple.com/archives/Carbon-dev/2008/May/msg00005.html
Nie że Charles

2
Wszystkie odpowiedzi są automatycznie dyskwalifikowane - jeden z moich monitorów ma piksel, którego czerwona wartość to zawsze 255!
Facet z

Odpowiedzi:


22

Bash, 28 lub 12

Zakładając domyślną instalację Ubuntu 12.04 LTS.

gnome-screensaver-command -a

Automatycznie uruchamia wygaszacz ekranu, który domyślnie jest czarnym ekranem.

Edycja : Jak sugeruje @Glenn Randers-Pehrson, oto jeden z 12 bajtami

/*/*/gn*d -a

Powiedzmy, że może to nie działać, jeśli masz w systemie inny plik, który spełnia tę nazwę /tmp/1/gnd. Ale kogo to obchodzi?


Sprawdź moją inną odpowiedź bash, jeśli nie używasz wygaszacza ekranu Gnome!


1
Taka odpowiedź, która sprawia, że ​​myślisz: „Dlaczego, do diabła, o tym nie pomyślałem?”. :)
Alex Thornton

1
To nie jest tak naprawdę czyszczenie ekranu za pomocą bash.
Darth Egregious

3
„Twój kod źródłowy musi być napisany w języku programowania, a nie tylko pliku konfiguracyjnym, którego będzie używał inny program (np. Wygaszacz ekranu)”.
Hannes Karppila

2
@hannes karppila Nie zmieniłem żadnego pliku konfiguracyjnego, którego używałby jakikolwiek inny program. Uruchomiłem tylko inny program, który robi większość skryptów bash (chyba że napisano w czystym bash)
pastebin.com slash 0mr8spkT

5
@ace, Golfed: / * / * / gn * d zamiast gnome-wygaszacz ekranu-polecenie pozwoli zaoszczędzić około 16 bajtów (pomysł mniip)
Glenn Randers-Pehrson

31

Zestaw (bootloader) Kompilowany 131 znaków / 512 bajtów (faktycznie mniejszy, ale bootsector musi mieć 512 bajtów długości).

Jest to prosty program ładujący. Po uruchomieniu komputera BIOS załaduje go z dysku (dyskietki). Następnie przechodzi w tryb graficzny i po prostu się zawiesza. Gdy użytkownik naciśnie przycisk zasilania, program zakończy się, a komputer przejdzie w tryb, w którym był przed uruchomieniem programu.

Testowane z VirtualBox.

Skompiluje się z nasm:

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

Kod źródłowy:

[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

1
Jak uruchomić na VirtualBox: (kompilacja przy użyciu nasm), nowa maszyna wirtualna, Typ: Inne, wersja: Inne / Nieznane, brak dysku twardego. Następnie przejdź do ustawień maszyny wirtualnej, wybierz Pamięć, kliknij listę prawym przyciskiem myszy i wybierz „Dodaj kontroler dyskietek”. Zainstaluj skompilowany plik img na stacji dyskietek. Zapisz, a następnie możesz go uruchomić. Cieszyć się!
Zach Mertes

Chciałem zrobić to samo co program dos, ale byłeś szybszy. Zasadniczo jedyną rzeczą, jaką pamiętam z asemblera z waaay back :)
Fels

Czy możesz wyjaśnić, jak to działa?
Mega Man

Dlaczego clii sti? Przenosi, aby SSautomatycznie wyłączać przerwania na czas trwania kolejnej instrukcji i AXnie zostanie zmieniony, jeśli przerwanie nastąpi wcześniej MOV SS,AX. A dlaczego nie MOV AX, 0x13zamiast dwóch MOV?
Ruslan

Młodszy ja nie wiedziałem, jak poprawnie napisać kod. Obecny ja prawdopodobnie też nie wie.
Hannes Karppila,


14

Java: 165

Prosta Java, po prostu tworzy pełnoekranową czarną ramkę. Aby wyjść, musisz Alt + Tab z powrotem do konsoli i Ctrl-C, ale wydaje się to dość proste.

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();
    }
}

11

Applesoft] [BASIC (17)

1 HGR2:GET X:TEXT

Nie sądzę, że to w rzeczywistości 17 bajtów ... Myślę, że może być mniej. O ile dobrze pamiętam, Applesoft tokenizował słowa kluczowe, tak aby każde słowo kluczowe było w rzeczywistości jednym bajtem ... więc ten może być znacznie krótszy. W obu przypadkach daje +1.
Beska

11

Bash - 57 26

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

Na laptopie spowoduje to ustawienie jasności podświetlenia ekranu na 0 za pomocą /sys/class/backlight, na tablecie lub telefonie spowoduje ustawienie jasności podświetlenia ekranu na 0 za pomocą/sys/class/leds


2
„I pozostań tak, dopóki program nie zostanie zamknięty (dowolny klawisz lub Alt + F4, ruch myszy itp.), Po czym wszystko powinno wrócić do normy”
Ry-

1
Fn+F6, Fn+<up arrow>i wiele innych kombinacji klawiszy wpada w „dowolny klawisz” i „itd.”, i są to jedne z wielu, które przywracają światło tak, jak było.
Ismael Miguel

1
@minitech Oh. Cóż, naprawione ...
mniip

To w ogóle nie działa dla mnie. Jeśli zrobię "C = / s * / * / * / * / b ess; (A = $ (cat $ C); echo 0; cat; echo $ A) | tee $ C" z monitu bash otrzymuję kota : / s * / * / * / * / b ess: Brak pliku lub katalogu: / s * / * / * / * / b * ess: Brak takiego pliku lub katalogu

@Lembik Zakładam, że nie masz żadnych kontrolerów jasności lub że w obecnych brakuje sterowników. Umysł wklejania find /sys/class/{backlight,leds}/*/?
mniip

8

Wiem, że to jest ale nie mogłem się oprzeć.

Upewnij się tylko, że nie masz otwartych okien przeglądarki (w tym przypadku Chrome);

Uruchom ten PitchBlack.bat ( 31 24 bajtów) :

chrome --kiosk file:///1

Jeśli zostanie umieszczony w tym samym katalogu pliku Chrome.exe , ta partia uruchomi Chrome w trybie kiosku i otworzy plik o nazwie / 1 ( 49 41 34 bajtów) na pełnym ekranie:

<body bgcolor=0 style=cursor:none>

Gotowe!

Całkowita liczba bajtów: 80 72 58
Dzięki @ace :)

Aby wyjść z programu, musisz wybrać klasyczny ALT + F4 ; Tak naprawdę nie musisz się przygotowywać po rozpoczęciu programu (ani wcześniej, musisz tylko umieścić/1 plik wsadowy), więc jest to zgodne z regułami.

Pamiętaj, że jeśli zbliżysz kursor do krawędzi ekranu, może stać się widoczny. Od tego czasu OP nie powiedział, że to niedozwolone

Po uruchomieniu programu ekran musi szybko całkowicie zmienić kolor na czarny i pozostać nim do momentu wyjścia z programu (dowolny klawisz lub Alt + F4, ruch myszy itp.), Po czym wszystko powinno wrócić do normy.

To powinno być w porządku! : P


1
Może coś takiego chrome --kiosk 'data:text/html,<style>body{background:#000;cursor:none;}</style>'może działać bez dodatkowego pliku?
Vi.

Oznacza to, że używając file:shceme nie widać paska adresu URL, ale w data:schemacie jest pasek adresu URL?
Vi.

W moim systemie chromium-browser --kiosk 'data:text/html,<style>body{background:#000;cursor:none;}</style>Chromium zaczyna prawie pełnoekranowy ekran z czarną stroną bez pasków.
Vi.

Testowany na Ubuntu i Chromium 34.0, działa z tym file:///1, że HTML jest zapisany jako /1, a plik HTML może zostać skrócony do<body bgcolor=0 style=cursor:none>
pastebin.com slash 0mr8spkT

1
Myślę, że powinieneś użyć chromew swojej odpowiedzi zamiastchromium
pastebin.com slash 0mr8spkT

7

C # - 211 202 200 196 179 bajtów

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

Ukrywa kursor i pokazuje czarne okno na pełnym ekranie. Można zamknąć za pomocą Alt+F4

Kod bez golfa :

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();
    }
}

Nie muszę przesyłać do FormBorderStyle, ponieważ nie jest to konieczne, jeśli liczba całkowita jest 0.


2
Można wymienić System.Drawing.Color.Black, FormWindowState.Maximized, FormWindowState.Maximizedoraz FormBorderStyle.Nonez odpowiadających im wartości.
Ismael Miguel

@IsmaelMiguel: Dzięki, zaktualizowałem FormWindowState i FormBorderStyle! Nie mogłem zaktualizować koloru, ponieważ to nie jest wyliczenie.
ProgramFOX

Spróbować Color.Black. Powinno działać od razu. Lub BackColor=This.ForeColor, które MOGĄ również działać.
Ismael Miguel

@ IsmaelMiguel: Pierwszy nie działa, ponieważ nie dodałem using System.Drawing;, a drugi nie działa, ponieważ ustawiam wartości zmiennych w nawiasach.
ProgramFOX

Spróbuj using System;wtedy new Windows.Forms.Formi BackColor=Drawing.Color.Black. To MOŻE pracować! I zaoszczędź kilka bajtów.
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);}

Wiele odpowiedzi tutaj nie powoduje, że ekran jest czarny : na ekranie LCD podświetlenie pozostaje włączone i przecieka, pozostawiając ciemnoszary kolor.

Ten krótki fragment faktycznie mówi systemowi Windows, aby wyłączył ekran, tak samo jak robi to zegar bezczynności (uwaga: nie narusza to zasady „braku zasilania”, ponieważ tak naprawdę powoduje tylko przejście monitora w tryb gotowości. Większość monitorów włącz ponownie po wznowieniu wprowadzania danych. Wydaje się również, że reguła ta polega na upewnieniu się, że program może ją ponownie włączyć - patrz poniżej.)

Porusz myszą lub naciśnij klawisz, aby ponownie włączyć ekran.

Monitorowanie wyłączenia zasilania dostosowane z https://stackoverflow.com/a/713519/1030702


„Dlatego wyłączanie komputera lub wyłączanie zasilania monitora NIE jest dozwolone ”.
Ismael Miguel

1
@ IsmaelMiguel Podałem moje uzasadnienie. „do momentu wyjścia z programu (dowolny klawisz lub Alt + F4, ruch myszy itp.), po czym wszystko powinno wrócić do normy. Zamykanie…” - intencja reguły została spełniona. Spowoduje to „ponowne włączenie”. Pomijając intencję, usatysfakcjonuje również dosłowne znaczenie, ponieważ pomimo terminologii Microsoftu, tak naprawdę nie wyłącza go ( poza limitami czasu na projektorach itp.), Powoduje przejście w stan gotowości .
Bob

4

Zgromadzenie Amigi

ASM-One - 228 219 znaków, skompilowano 172 bajty (zoptymalizowano 168 bajtów)

Minęło 20 lat, odkąd ostatni raz kodowałem pojedynczą linię w Amidze, więc bądźcie ze mną. :-)

Amiga była nieco bardziej zaangażowana niż komputer, jeśli chodzi o konfigurację pustego ekranu, więc starałem się pozbyć jak największej ilości konfiguracji i rozerwania. Nie ma wyłączania przerwań ani wielozadaniowości; brak podwójnego WaitTOF; brak zamiany widoku; itp. Nie napisałbym tego nawet na najszybszą i najbrudniejszą wersję demo. Co oznacza to:

  • jest złą praktyką
  • może nie być całkowicie bezpieczny
  • nie zawsze może działać
  • nawet z tymi zastrzeżeniami, prawdopodobnie ma głupie błędy z powodu 20 lat zaniedbanego zgromadzenia.

... chociaż został przetestowany na emulowanych A500 i A1200, z szybką pamięcią lub bez. Kompiluje się do standardowego pliku wykonywalnego. Wyjście z kliknięcia myszą.

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

Mniej golfa:

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

1
Ach, wspomnienia! Kocham to!
RobIII

Tak, to była raczej wymówka dla nostalgicznej podróży niż prawdziwa próba golfa kodowego - montaż Amigi rzadko konkuruje z Perlem lub Pythonem pod względem liczby znaków. Chociaż byłem trochę zaskoczony, nie mógł pokonać C # ani Javy. :)
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()

Dzięki kilku wskazówkom od asa.


Ponieważ ALT + F4 się liczy, wziąłbym również ^ C, więc możesz pominąć wiele bajtów na końcu.
o0 ”.

1
Aby ^ C działało, musisz skupić się na terminalu, aw programie okno gry jest zawsze skoncentrowane ze względu na grę. PEŁNY EKRAN Edycja: Jedną z możliwości byłoby pozostawienie programu bez wyjścia, co wymagałoby spamowania klawiatury do Twój system operacyjny zauważa, że ​​coś jest nie tak.
Harry Beadle

Zamiast tego możesz zapisać niektóre bajty from pygame import*. Nie uważam też za fill((0,0,0))konieczne, ponieważ domyślnym kolorem jest czarny. Następnie możesz scałkowicie usunąć . Myślę też, że nie display.flip()jest to potrzebne. Ponadto użyj jednego miejsca na wcięcie zamiast 4, aby zaoszczędzić więcej miejsca. Wreszcie zamiast FULLSCREENi KEYDOWNmożna użyć ich wartości liczbowych, a mianowicie -1<<31(-2147483648) i 2odpowiednio.
pastebin.com slash 0mr8spkT

4

TI-BASIC, 7 6

Shade(Ymin,Ymax

Działa zarówno na terminalu (ekranie głównym), jak i jako program. Naciśnięcie ONlub większość innych przycisków powoduje powrót do ekranu terminala / ekranu głównego.


Może być o jeden bajt mniejszy (i działa nawet po zmianie okna ekranu wykresu) jako Shade(Ymin,Ymax.
lirtosiast

@ThomasKwa Masz rację, dziękuję za wskazówkę!
Timtech,

3

Commodore 64 (16 bajtów)

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

Minęło ponad 20 lat, odkąd użyłem Turbo Assemblera, więc mogę podać tylko źródło do użycia w monitorze VICE. Złóż to w 032 ° C i save[1] do 033B $. Reseta LOAD"PITCHDARK",8,1. Hit good ol ' Runstop+Restore[2], aby wrócić do normy.

Jak to działa?

Oto prawdziwe źródło:

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 to kernal CLALL lub „zamknąć wszystkie kanały i pliki” wektor. W ramach czyszczenia LOADkomenda BASIC wykonuje polecenie, CLRktóre z kolei wywołujeCLALL . CLALLWektor zastępujemy wskaźnikiem do naszej rutyny bezpośrednio po wektorze. Ustawiamy granicę na czarną i przykrywamy ekran ramką, a następnie dzwonimy RESTORna $ FF8A. Ostatni zastąpiony wektor RESTORma SAVEwartość 0332-0333 USD, co oznacza, że ​​ostatnie 8 bajtów jest niezakłóconych. Następnie wychodzimy za pomocą przywróconego CLALLwektora, aby kontynuowaćLOAD wykonywanie.

Dzięki za to, było fajnie podróżować po linii pamięci, ucząc się, jak zrobić program autorun :)

[1] użyj save, a nie bsave, aby załadować, 1 działa poprawnie
[2] Escape + PageUp w x64, prawdopodobnie.


3

sh / X11 na Arch Linux, 26

b=/b*/*ht;$b =0;read;$b =7

prawdopodobnie możesz ogolić kilka znaków za pomocą aliasu i być może używać -setich obu
ardnew

1
Użyj xbacklight = 0i xbacklight + 7.
bb010g

1
29 bajtów:x=xbacklight;$x +0;read;$x +7
nyuszika7h

@ nyuszika7h: Dzięki! (Mam też 28 lat!)
Ry-

3

Bash, 37 lat

Służy unclutterdo ukrywania wskaźnika myszy i sesji pełnoekranowej w xtermcelu zaciemnienia ekranu. Kursor pojawi się ponownie na chwilę, jeśli go poruszysz, ale jeśli pozostawisz go w spokoju, ekran będzie czarny, dopóki nie naciśniesz Ctrl + C.

Zniknięcie kursora myszy potrwa kilka sekund (o ile go nie przesuniesz). Jeśli to nie jest wystarczająco szybkie, dodaj -grabopcję unclutterdla dodatkowych 6 znaków.

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

OSTRZEŻENIE: spowoduje to unclutteruruchomienie procesu nawet po naciśnięciu klawiszy Ctrl + C, użyj go, killall unclutteraby go zatrzymać.

Wyjaśnienie

unclutter &uruchamia unclutter. The&Jest tak możemy dostać się do następnego polecenia, zamiast czekać na ten jeden wypowiedzenia.

xterm -fullscreen uruchamia XTerm, którego tło jest domyślnie czarne.

Ta -e yes ''opcja powoduje uruchomienie XTerm yes '', przez co drukuje pusty ciąg na zawsze. Służy to do ukrywania kursora terminala, a także zapewnia funkcje Ctrl + C.


W moim systemie ekran staje się całkowicie biały.
Vi.

@Vi. oznacza to, że kolor tła XTerm jest biały.

Możesz skrócić „-fullscreen” do „-fu” i użyć „-bg black”, aby wymusić czarny kolor tła, niezależnie od preferencji użytkownika.
pół-zewnętrzny zewnętrzny

Możesz usunąć spacje wokół, &aby zaoszczędzić 2 bajty.
nyuszika7h

3

Bash, 31 (lub 52)

Na TTY użyj następującego skryptu (zakładając, że domyślne tło TTY jest czarne, co jest prawdą przynajmniej w przypadku Ubuntu 12.04 LTS):

setterm -foreground black
clear

Twój TTY nadal będzie w pełni funkcjonalny nawet po użyciu tego skryptu :)

Jeśli nie jest to dozwolone, użyj następujących (52 bajtów):

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

I naciśnij, Enteraby zakończyć skrypt.

Specjalne podziękowania dla @ nyuszika7h.


1
W drugim przypadku: x='setterm -foreground';$x black;clear;read;$x white(52 bajty).
nyuszika7h

2

Przetwarzanie, 113

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

Próbowałem umieścić powyższy kod na draw (), aby zapisać niektóre bajty, ale to nie zadziałało. Naciśnij klawisze Alt-F4, aby wyjść.


2

ZX Spectrum Basic (29 bajtów)

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

Iteruje po ekranie, kreśląc czarne piksele, które są automatycznie usuwane po zakończeniu programu.

Edycja podstawowa ZX Spectrum używa pojedynczych bajtów jako poleceń i żadnych znaków nowej linii, jeśli licząc wyświetlane znaki, otrzymasz 61 znaków.


2

Lua + LÖVE (50)

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

Obie funkcje powinny przyjmować argument boolowski, ale to działa.


2

QBasic, 9 bajtów

CLS:SLEEP

CLSczyści ekran, SLEEPbez żadnych argumentów wstrzymuje wykonanie do momentu naciśnięcia klawisza.


2

SmileBASIC, 15 bajtów

XSCREEN 4
EXEC.

Naciśnięcie START lub SELECT spowoduje zakończenie programu.

XSCREEN 4ustawia tryb wyświetlania, aby wyświetlać obraz 320 * 480 obejmujący oba ekrany. To powinno wyczyścić wszystko, więc ACLSnie jest wymagane. EXEC.sprawia, że ​​kod się powtarza, ciągle uruchamiając program w gnieździe 0. Nie byłem w stanie tego zrobić, XSCREEN 4EXEC.ponieważ nie mogłeś mieć bezpośrednio numeruE


1

Sinclair BASIC - 28 znaków

BORDER 0:PAPER 0:CLS:PAUSE 0

Cechą Sinclair BASIC było to, że każde słowo kluczowe miało swój własny kod znakowy (zajmujący jeden bajt), więc faktycznie zajmowałoby 13 bajtów łącznie ze spacjami.


Czy to przywraca ekran do normalnego stanu po zakończeniu?
kitcar2000

@ kitcar2000 - Myślę o tym, nie. Prawdopodobnie dodam na końcu „: NOWOŚĆ” jako szybki i brudny reset, który zabiera do 32 znaków / 15 bajtów
Brian

Myślę, że jest to tylko 10 bajtów (12 z :NEW), ponieważ polecenia są pojedynczymi bajtami, a nie zbiorem znaków.
kitcar2000

1

SmileBASIC, 23 bajty

Działa wiecznie, dopóki program nie zostanie wymuszony za pomocą START lub SELECT. To sprawia, że ​​oba ekrany są całkowicie czarne , do tej pory wyłączono 3D (wyłączając w ten sposób diodę LED 3D w o3DS.)

ACLS:XSCREEN 3@L GOTO@L

1

Większość powłok kompatybilnych z POSIX (przynajmniej bashi zsh), 21

Musi być uruchamiany na tty

tput civis;clear;read

Pierwsze polecenie ukrywa kursor, drugie usuwa ekran (duh), a trzecie polecenie odczytuje wiersz tekstu



0

Bash: 48 characters

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

CW because not clear whether it qualifies due to the way it works:

  • The produced black screen is real power saving: it cuts off information sending to display 1.
  • Many computer displays when detect signal loss, will temporarily or periodically show their own notice.

(Note that DP1 is the first connected display. If you have a laptop, its embedded display is eDP1.)




0

Chip-8, 0 bytes

[T]he original Chip-8 interpreter began execution from 0x01FC. The interpreter includes two permanent Chip-8 instructions at this location that are always executed at the start of every programme. The first of these, 0x00E0, clears the display RAM by setting all the bits to zero. The second, 0x004B, calls a machine language routine within the interpreter that switches the VIP’s display on.

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.