Bóng tối (Tưởng nhớ Giờ Trái đất)


31

Mục tiêu của bạn rất đơn giản: chương trình phải biến màn hình máy tính của bạn hoàn toàn màu đen .

Sau khi chương trình được khởi động, màn hình phải nhanh chóng chuyển sang màu đen hoàn toàn và duy trì như vậy cho đến khi chương trình được thoát (bất kỳ phím nào, hoặc alt + F4, di chuyển chuột, v.v.), sau đó mọi thứ sẽ trở lại bình thường. Vì vậy, tắt máy tính hoặc tắt nguồn màn hình là KHÔNG được phép . Không thể nhìn thấy một pixel không phải màu đen trong thời gian này, thậm chí không có con trỏ nhấp nháy.

Người dùng không nên thực hiện bất kỳ sự chuẩn bị nào (di chuyển chuột ra ngoài màn hình, ngắt kết nối cáp, v.v. hoặc đầu vào của người dùng sau khi chương trình bắt đầu), chỉ cần khởi động chương trình.

Bạn có thể giả định rằng máy tính chỉ có một màn hình kèm theo. Chúng tôi cũng giả định một máy tính để bàn hoặc máy tính xách tay tiêu chuẩn, bởi vì thực hiện nó trên một thiết bị cụ thể mà không có màn hình bình thường sẽ quá đơn giản.

Nếu bạn sử dụng bất kỳ tài nguyên bên ngoài nào (hình ảnh màu đen, tệp GUI, v.v.) kích thước của chúng theo byte sẽ được thêm vào kích thước mã của bạn.

Sẽ ổn nếu nó chỉ hoạt động trên một họ hệ điều hành hoặc nếu nó yêu cầu opengl, v.v., nhưng yêu cầu một cấu hình phần cứng rất cụ thể sẽ không được chấp nhận.

Mã nguồn của bạn phải được viết bằng ngôn ngữ lập trình, không chỉ là tệp cấu hình mà một số chương trình khác (như trình bảo vệ màn hình) sẽ sử dụng.


9
Điều đó sẽ không hoạt động trên màn hình với các pixel bị kẹt ...
Ismael Miguel

21
@IsmaelMiguel: bạn có thể giả định một màn hình trong điều kiện làm việc hoàn hảo. Mặt khác, chúng ta có thể phản đối các câu hỏi khác theo kiểu "điều gì xảy ra nếu một bóng bán dẫn trong ALU của tôi bị đốt cháy và máy tính của tôi không thể thực hiện bất kỳ phép toán dấu phẩy động nào?" :)
vsz

5
Sự thật thú vị: trên màn hình không sử dụng CRT cũng không tương phản động, điều này sẽ sử dụng nhiều điện hơn một chút!
Ry-

2
ứng dụng thế giới thực: Thiên văn học! list.apple.com/archives/Carbon-dev/2008/May/msg00005.html
Không phải Charles

2
Tất cả các câu trả lời đều tự động bị loại, một trong những màn hình của tôi có một pixel có giá trị màu đỏ luôn là 255!
Chàng trai với chiếc mũ

Câu trả lời:


22

Bash, 28 hoặc 12

Giả sử cài đặt mặc định của Ubuntu 12.04 LTS.

gnome-screensaver-command -a

Tự động khởi động trình bảo vệ màn hình, đó là một màn hình đen theo mặc định.

Chỉnh sửa : Theo đề xuất của @Glenn Randers-Pehrson, đây là một trong số 12 byte

/*/*/gn*d -a

Lưu ý rằng điều này có thể không hoạt động nếu bạn có một tệp khác trên hệ thống của bạn đáp ứng tên này, nói /tmp/1/gnd. Nhưng đó là môn đánh gôn, ai quan tâm chứ?


Kiểm tra câu trả lời bash khác của tôi nếu bạn không sử dụng trình bảo vệ màn hình Gnome!


1
Loại câu trả lời khiến bạn phải suy nghĩ: 'Tại sao tôi không nghĩ về điều đó?'. :)
Alex Thornton

1
Điều đó không thực sự xóa màn hình bằng bash.
Darth Egregious

3
"Mã nguồn của bạn phải được viết bằng ngôn ngữ lập trình, không chỉ là tệp cấu hình mà một số chương trình khác (như trình bảo vệ màn hình) sẽ sử dụng."
Hannes Karppila

2
@hannes karppila Tôi không thay đổi bất kỳ tập tin cấu hình nào mà bất kỳ chương trình nào khác sẽ sử dụng. Tôi chỉ bắt đầu một chương trình khác, mà hầu hết các tập lệnh bash làm (trừ khi được viết bằng bash thuần túy)
pastebin.com chém 0mr8spkT

5
@ace, Golfed: / * / * / gn * d thay vì gnome-Screensaver-lệnh sẽ tiết kiệm khoảng 16 byte (ý tưởng của mniip)
Glenn Randers-Pehrson

31

Lắp ráp (bộ nạp khởi động) 131 ký tự / 512 byte được biên dịch (thực tế nhỏ hơn, nhưng bộ khởi động phải dài 512 byte.)

Nó là một bộ tải khởi động đơn giản. Khi máy tính khởi động, BIOS sẽ tải nó từ đĩa (đĩa mềm). Sau đó, nó vào chế độ đồ họa và chỉ bị treo. Khi người dùng nhấn nút nguồn, chương trình sẽ kết thúc và máy tính sẽ chuyển sang chế độ trước khi chạy chương trình.

Đã thử nghiệm với VirtualBox.

Nó sẽ biên dịch với nasm:

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

Mã nguồn:

[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
Cách chạy trên VirtualBox: (biên dịch bằng nasm), VM mới, Loại: Khác, phiên bản: Khác / Không xác định, không có ổ cứng. Tiếp theo, đi tới cài đặt của VM, chọn Storage, nhấp chuột phải vào danh sách và chọn "Thêm bộ điều khiển đĩa mềm". Gắn tệp img đã biên dịch vào ổ đĩa mềm. Lưu, và sau đó bạn có thể chạy nó. Thưởng thức!
Zach Mertes

Tôi muốn làm điều tương tự như một chương trình dos, nhưng bạn đã nhanh hơn. Về cơ bản, điều duy nhất tôi nhớ về trình biên dịch từ waaay trở lại :)
Fels

Bạn có thể vui lòng giải thích làm thế nào nó hoạt động?
Mega Man

Tại sao clisti? Di chuyển để SStự động vô hiệu hóa các ngắt trong suốt thời gian của lệnh tiếp theo và AXsẽ không bị thay đổi nếu xảy ra ngắt trước đó MOV SS,AX. Ngoài ra, tại sao không MOV AX, 0x13thay vì hai MOVs?
Ruslan

Trẻ hơn tôi không biết viết mã đúng. Hiện tại tôi có lẽ cũng không biết.
Hannes Karppila


14

Java: 165

Java đơn giản, chỉ cần tạo một khung màu đen toàn màn hình. Để thoát, bạn phải Alt + Tab trở lại bàn điều khiển và Ctrl-C, nhưng điều đó có vẻ đơn giản.

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] [CƠ BẢN (17)

1 HGR2:GET X:TEXT

Tôi không nghĩ rằng đây thực sự là 17 byte ... Tôi nghĩ rằng nó có thể ít hơn. Nếu tôi nhớ chính xác, Applesoft đã mã hóa các từ khóa của nó, để mỗi từ khóa thực sự là một byte ... vì vậy từ khóa này có thể ngắn hơn đáng kể. Đó là +1.
Beska

11

Bash - 57 26

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

Trên máy tính xách tay, điều này sẽ đặt độ sáng của đèn nền màn hình thành 0 thông qua /sys/class/backlight, trên máy tính bảng hoặc điện thoại, điều này sẽ đặt độ sáng của màn hình thành 0 thông qua/sys/class/leds


2
Lựa chọn và duy trì như vậy cho đến khi chương trình được thoát (bất kỳ phím nào, hoặc alt + F4, di chuyển chuột, v.v.), sau đó mọi thứ sẽ quay trở lại bình thường
Ry-

1
Fn+F6, Fn+<up arrow>Và nhiều tổ hợp phím khác rơi vào "phím bất kỳ" và "vv", và đó là một trong rất nhiều để đưa trở lại ánh sáng như nó đã được.
Ismael Miguel

1
@minitech ơi. Chà, đã sửa ...
mniip

Điều này không làm việc cho tôi cả. Nếu tôi thực hiện "C = / s * / * / * / * / b ess; (A = $ (cat $ C); echo 0; cat; echo $ A) | tee $ C" từ dấu nhắc bash tôi nhận được mèo : / s * / * / * / * / b ess: Không có tệp hoặc thư mục tee như vậy: / s * / * / * / * / b * ess: Không có tệp hoặc thư mục như vậy

@Lembik Tôi cho rằng bạn không có bất kỳ bộ điều khiển độ sáng nào hoặc những người có mặt đều thiếu trình điều khiển. Tâm trí quá khứ find /sys/class/{backlight,leds}/*/?
mniip

8

Tôi biết đây là nhưng tôi không thể cưỡng lại.

Chỉ cần đảm bảo rằng bạn không mở bất kỳ cửa sổ trình duyệt nào (trong trường hợp này là Chrome);

Thực hiện điều này PitchBlack.bat ( 31 24 byte) :

chrome --kiosk file:///1

Nếu được đặt trong cùng thư mục tệp Chrome.exe của bạn , lô này sẽ thực thi Chrome ở chế độ kiosk và nó sẽ mở tệp có tên / 1 ( 49 41 34 byte) trong toàn màn hình:

<body bgcolor=0 style=cursor:none>

Et voilà!

Tổng số byte: 80 72 58
Cảm ơn @ace :)

Để thoát khỏi chương trình, bạn phải sử dụng ALT + F4 cổ điển ; Bạn thực sự không phải thực hiện bất kỳ sự chuẩn bị nào sau khi chương trình bắt đầu (trước đó, bạn chỉ phải đặt /1và tệp bó), vì vậy nó ổn với các quy tắc.

Xin lưu ý rằng nếu bạn đưa con trỏ về phía viền màn hình, nó có thể hiển thị. OP đã không nói điều này là không được phép, vì

Sau khi chương trình được khởi động, màn hình phải nhanh chóng chuyển sang màu đen hoàn toàn và duy trì như vậy cho đến khi chương trình được thoát (bất kỳ phím nào, hoặc alt + F4, di chuyển chuột , v.v.), sau đó mọi thứ sẽ trở lại bình thường.

Vì vậy, điều này nên hoàn toàn ok! : P


1
Có lẽ một cái gì đó như chrome --kiosk 'data:text/html,<style>body{background:#000;cursor:none;}</style>'có thể làm việc mà không cần tập tin bổ sung?
Vi.

Có nghĩa là khi sử dụng file:shceme bạn không thấy thanh URL nào hiển thị, nhưng với data:lược đồ có thanh URL không?
Vi.

Trên hệ thống của tôi chromium-browser --kiosk 'data:text/html,<style>body{background:#000;cursor:none;}</style>bắt đầu Chromium gần như toàn màn hình với trang đen mà không có bất kỳ thanh nào.
Vi.

Đã thử nghiệm trên Ubuntu và Chromium 34.0, nó hoạt động với file:///1nếu html được lưu dưới dạng /1và tệp html có thể được rút ngắn thành<body bgcolor=0 style=cursor:none>
pastebin.com chém 0mr8spkT

1
Tôi nghĩ bạn nên sử dụng chrometrong câu trả lời của mình chứ không phảichromium
pastebin.com chém 0mr8spkT

7

C # - 211 202 200 196 179 byte

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

Ẩn con trỏ và hiển thị cửa sổ toàn màn hình màu đen. Có thể được đóng bằng Alt+F4

Mã không chơi gôn :

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

Tôi không cần phải sử dụng FormBorderStyle, vì điều đó là không cần thiết nếu số nguyên là 0.


2
Bạn có thể thay thế System.Drawing.Color.Black, FormWindowState.Maximized, FormWindowState.MaximizedFormBorderStyle.Nonevới giá trị tương ứng của họ.
Ismael Miguel

@IsmaelMiguel: Cảm ơn, tôi đã cập nhật FormWindowState và FormBorderStyle! Tôi không thể cập nhật Màu, vì đó không phải là enum.
Chương trìnhFOX

Hãy thử Color.Black. Nó nên hoạt động ngay lập tức. Hoặc BackColor=This.ForeColor, MIGHT làm việc quá.
Ismael Miguel

@IsmaelMiguel: Cái đầu tiên không hoạt động vì tôi không thêm using System.Drawing;và cái thứ hai không hoạt động vì tôi đặt các giá trị biến trong ngoặc.
Chương trìnhFOX

Hãy thử và using System;sau đó . Nó MIGHT làm việc! Và lưu một vài byte. new Windows.Forms.FormBackColor=Drawing.Color.Black
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);}

Rất nhiều câu trả lời ở đây không thực sự làm cho màn hình tối đen : trên màn hình LCD, đèn nền vẫn sáng và chảy qua, để lại cho bạn một màu xám đen.

Đoạn nhỏ này thực sự nói với Windows để tắt màn hình, giống như những gì bộ đếm thời gian không hoạt động thực hiện (Lưu ý:. Này không vi phạm "không tắt nguồn" quy tắc bởi vì nó thực sự chỉ làm cho màn hình đi vào chế độ chờ Hầu hết các màn hình sẽ bật lại khi đầu vào được nối lại. Ngoài ra, ý định của quy tắc đó dường như là để đảm bảo chương trình có thể bật lại - xem bên dưới.)

Di chuyển chuột hoặc nhấn một phím để bật lại màn hình.

Theo dõi tắt nguồn được điều chỉnh từ https://stackoverflow.com/a/713519/1030702


"Vì vậy, tắt máy tính hoặc tắt nguồn màn hình là KHÔNG được phép ."
Ismael Miguel

1
@IsmaelMiguel Tôi đã cung cấp lời biện minh của mình. "cho đến khi chương trình được thoát (bất kỳ phím nào, hoặc alt + F4, di chuyển chuột, v.v.), sau đó mọi thứ sẽ trở lại bình thường. Vì vậy, tắt ..." - ý định của quy tắc đã được thỏa mãn. Điều này sẽ "bật lại". Bỏ qua ý định, nó cũng làm bão hòa nghĩa đen , vì, mặc dù thuật ngữ của Microsoft, điều này không thực sự tắt nó ( hết thời gian trên máy chiếu, v.v., sang một bên), nó đặt nó ở chế độ chờ .
Bob

4

Lắp ráp Amiga

ASM-One - 228 219 ký tự, được biên dịch 172 byte (tối ưu hóa 168 byte)

Đã 20 năm kể từ lần cuối tôi mã hóa một dòng duy nhất trong hội đồng Amiga, vì vậy hãy đồng ý với tôi. :-)

Amiga có liên quan nhiều hơn một chút so với PC về việc thiết lập một màn hình trống, vì vậy đã cố gắng loại bỏ càng nhiều thiết lập và phá hỏng càng tốt. Không có vô hiệu hóa các ngắt hoặc đa nhiệm; không gấp đôi WaitTOF; không xem thay thế; vv Tôi thậm chí sẽ không viết điều này cho bản demo nhanh nhất và bẩn nhất. Có nghĩa là thế này:

  • là thực hành xấu
  • có thể không hoàn toàn an toàn
  • có thể không luôn luôn làm việc
  • ngay cả với những từ chối đó, có lẽ có những sai lầm ngu ngốc do 20 năm lắp ráp bị bỏ quên.

... mặc dù nó đã được thử nghiệm trên A500 và A1200 giả lập, có hoặc không có bộ nhớ nhanh. Biên dịch thành một tiêu chuẩn thực thi. Chuột nhấp chuột thoát.

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

Ít chơi gôn hơn:

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
Aaaah, những kỷ niệm! Yêu nó!
RobIII

Vâng, đây là một cái cớ cho một chuyến đi hoài cổ hơn là một nỗ lực thực sự trong môn đánh gôn - Amiga sẽ hiếm khi cạnh tranh với Perl hoặc Python về mặt số lượng nhân vật. Mặc dù tôi hơi ngạc nhiên khi nó không thể đánh bại C # hoặc Java. :)
JimmiTh

4

Con trăn / Pygame 199 127 125 92

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

Nhờ một số lời khuyên từ ace.


Vì ALT + F4 được tính, tôi cũng sẽ tính ^ C, vì vậy bạn có thể bỏ qua rất nhiều byte ở cuối.
o0 '.

1
Để ^ C hoạt động, bạn cần tập trung vào thiết bị đầu cuối và trong chương trình, cửa sổ pygame luôn được tập trung do pygame.FULLSCREEN Chỉnh sửa: Một cách khác là rời khỏi chương trình mà không có lối ra, sẽ yêu cầu spam bàn phím cho đến khi Hệ điều hành của bạn thông báo có gì đó không đúng.
Harry Beadle

Bạn có thể lưu một số byte bằng cách sử dụng from pygame import*thay thế. Ngoài ra, tôi không nghĩ fill((0,0,0))là cần thiết vì màu mặc định là màu đen. Sau đó, bạn có thể loại bỏ shoàn toàn. Tôi cũng không nghĩ display.flip()là cần thiết. Ngoài ra, sử dụng một không gian để thụt lề thay vì 4 có thể giúp bạn tiết kiệm nhiều không gian hơn. Cuối cùng, thay vì FULLSCREENKEYDOWN, bạn có thể sử dụng các giá trị số của chúng, cụ thể là -1<<31(-2147483648) và 2tương ứng.
pastebin.com chém 0mr8spkT

4

TI-CƠ BẢN, 7 6

Shade(Ymin,Ymax

Hoạt động cả trong thiết bị đầu cuối (màn hình chính) hoặc như một chương trình. Nhấn ONhoặc hầu hết các nút khác sẽ trở về màn hình đầu cuối / màn hình chính.


Có thể nhỏ hơn một byte (và hoạt động ngay cả khi cửa sổ màn hình đồ thị bị thay đổi) như Shade(Ymin,Ymax.
lirtosiast

@ThomasKwa Bạn nói đúng, cảm ơn vì tiền boa!
Timtech

3

Hàng hóa 64 (16 byte)

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

Đã hơn 20 năm kể từ khi tôi sử dụng Turbo Assembler, vì vậy tôi chỉ có thể cung cấp nguồn để sử dụng trong màn hình của VICE. Lắp ráp cái này ở $ 032C và save[1] đến $ 033B. ResetLOAD"PITCHDARK",8,1. Đánh tốt ol ' Runstop+Restore[2] để trở lại bình thường.

Làm thế nào nó hoạt động?

Đây là nguồn thực sự:

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 là vectơ kernal CLALL hoặc "Đóng tất cả các kênh và tệp". Là một phần của việc dọn dẹp, LOADlệnh BASIC thực hiện CLRlần lượt các lệnh gọi CLALL. Chúng ta thay thế CLALLvectơ bằng một con trỏ đến thói quen của chúng ta ngay sau vectơ. Chúng tôi đặt đường viền thành màu đen và che màn hình bằng đường viền, sau đó gọi RESTOR$ FF8A. Vectơ cuối cùng được thay thế RESTORSAVEở mức $ 032-0333, có nghĩa là 8 byte cuối cùng không bị xáo trộn. Sau đó chúng ta thoát qua CLALLvectơ được khôi phục để tiếp tục LOADthực thi.

Cảm ơn vì điều này, đó là chuyến đi thú vị xuống làn nhớ, học lại cách thực hiện chương trình tự chạy :)

[1] sử dụng lưu và không bsave để tải với, 1 hoạt động chính xác
[2] Escape + PageUp trong x64, có thể.


3

sh / X11 trên Arch Linux, 26

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

bạn có thể có thể cạo một vài ký tự bằng bí danh và có thể sử dụng -setcho cả hai
ardew

1
Sử dụng xbacklight = 0xbacklight + 7.
bb010g

1
29 byte:x=xbacklight;$x +0;read;$x +7
nyuszika7h

@ nyuszika7h: Cảm ơn! (Đã nhận được đến 28, quá!)
Ry-

3

Bash, 37

Sử dụng unclutterđể ẩn con trỏ chuột và phiên toàn màn hình xtermđể làm đen màn hình. Con trỏ sẽ xuất hiện lại trong giây lát nếu bạn di chuyển nó, nhưng nếu bạn để nó một mình, màn hình sẽ có màu đen cho đến khi bạn nhấn Ctrl + C.

Sẽ mất vài giây để con trỏ chuột biến mất (miễn là bạn không di chuyển nó). Nếu điều này không đủ nhanh, hãy thêm -grabtùy chọn để uncluttercó thêm 6 ký tự.

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

CẢNH BÁO: điều này sẽ để lại một quá trình unclutterchạy ngay cả sau khi bạn nhấn Ctrl + C, sử dụng killall unclutterđể dừng nó.

Giải trình

unclutter &ra mắt unclutter. Có &ở đó để chúng ta có thể tiếp tục với lệnh tiếp theo thay vì chờ lệnh này kết thúc.

xterm -fullscreen khởi chạy XTerm, có nền màu đen theo mặc định.

Các -e yes ''tùy chọn gây XTerm để chạy yes '', do đó in chuỗi rỗng mãi mãi. Điều này phục vụ để ẩn con trỏ đầu cuối và cũng cung cấp chức năng Ctrl + C.


Màn hình hoàn toàn trắng trong hệ thống của tôi.
Vi.

@Vi. điều đó có nghĩa là màu nền XTerm của bạn là màu trắng.

Bạn có thể viết tắt "-fullscreen" thành "-fu" và sử dụng "-bg black" để buộc màu nền đen bất kể sở thích của người dùng.
bán ngoài

Bạn có thể xóa khoảng trắng xung quanh &để lưu 2 byte.
nyuszika7h

3

Bash, 31 (hoặc 52)

Trên TTY, hãy sử dụng tập lệnh sau (giả sử nền TTY mặc định của bạn là màu đen, điều này đúng với ít nhất là cho Ubuntu 12.04 LTS):

setterm -foreground black
clear

TTY của bạn vẫn sẽ hoạt động đầy đủ ngay cả sau khi sử dụng tập lệnh này :)

Nếu điều này không được phép, hãy sử dụng (52 byte) sau:

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

Và nhấn Enterđể chấm dứt kịch bản.

Đặc biệt cảm ơn @ nyuszika7h.


1
Đối với trường hợp thứ hai: x='setterm -foreground';$x black;clear;read;$x white(52 byte).
nyuszika7h

2

Chế biến, 113

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

Tôi đã thử đặt mã ở trên vào draw () để lưu một số byte, nhưng nó không hoạt động. Nhấn Alt-F4 để thoát.


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

Lặp lại trên màn hình, vẽ các pixel đen sẽ tự động bị xóa khi chương trình kết thúc.

Phiên bản cơ bản của ZX Spectrum sử dụng các byte đơn làm lệnh và không có dòng mới, nếu đếm các ký tự được hiển thị, bạn nhận được 61 ký tự.


2

Lua + LVE (50)

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

Cả hai hàm được cho là có một đối số boolean, nhưng điều này hoạt động.


2

QBasic, 9 byte

CLS:SLEEP

CLSxóa màn hình, SLEEPkhông có bất kỳ đối số nào giữ thực thi cho đến khi nhấn phím.


2

SmileBASIC, 15 byte

XSCREEN 4
EXEC.

Nhấn START hoặc SELECT sẽ kết thúc chương trình.

XSCREEN 4đặt chế độ hiển thị để hiển thị hình ảnh 320 * 480 bao trùm cả hai màn hình. Điều này sẽ xóa tất cả mọi thứ, vì vậy ACLSkhông cần thiết. EXEC.làm cho mã lặp lại bằng cách liên tục chạy chương trình trong khe 0. Tôi không thể làm được XSCREEN 4EXEC.vì bạn không thể có số trực tiếp trước đóE


1

BASlair BASIC - 28 ký tự

BORDER 0:PAPER 0:CLS:PAUSE 0

Điều thú vị về Sinclair BASIC là mỗi từ khóa có mã ký tự riêng (chiếm một byte), do đó, điều này thực sự sẽ chiếm 13 byte bao gồm cả khoảng trắng.


Điều này có đưa màn hình trở lại bình thường sau khi kết thúc không?
kitcar2000

@ kitcar2000 - Suy nghĩ về nó, không. Cuối cùng tôi có thể thêm ": MỚI" dưới dạng thiết lập lại nhanh và bẩn, lấy tối đa 32 ký tự / 15 byte
Brian

Tôi nghĩ rằng nó chỉ có 10 byte (12 với :NEW) vì các lệnh là các byte đơn hơn là một tập hợp các ký tự.
kitcar2000

1

SmileBASIC, 23 byte

Chạy mãi cho đến khi chương trình bị hủy bằng BẮT ĐẦU hoặc CHỌN. Điều này làm cho cả hai màn hình hoàn toàn đen , đi xa để vô hiệu hóa 3D (do đó tắt đèn LED 3D trên o3DS.)

ACLS:XSCREEN 3@L GOTO@L

1

Hầu hết các vỏ tương thích POSIX (ít nhất bashzsh), 21

Cần phải chạy trên một tty

tput civis;clear;read

Lệnh đầu tiên ẩn con trỏ, lệnh thứ hai xóa màn hình (duh) và lệnh thứ ba đọc một dòng văn bản



0

Bash: 48 ký tự

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

CW vì không rõ liệu nó có đủ điều kiện do cách thức hoạt động hay không:

  • Màn hình đen được sản xuất là tiết kiệm năng lượng thực sự: nó cắt thông tin gửi đến màn hình 1.
  • Nhiều máy tính hiển thị khi phát hiện mất tín hiệu, sẽ tạm thời hoặc định kỳ hiển thị thông báo của riêng họ.

(Lưu ý rằng DP1 là màn hình được kết nối đầu tiên . Nếu bạn có máy tính xách tay, màn hình nhúng của nó là eDP1.)




0

Chip-8, 0 byte

[T] ông phiên dịch Chip-8 ban đầu đã bắt đầu thực hiện từ 0x01FC. Trình thông dịch bao gồm hai hướng dẫn Chip-8 vĩnh viễn tại vị trí này luôn được thực thi khi bắt đầu mọi chương trình. Đầu tiên trong số này, 0x00E0, xóa RAM hiển thị bằng cách đặt tất cả các bit về 0. Thứ hai, 0x004B, gọi một thói quen ngôn ngữ máy trong trình thông dịch bật màn hình của VIP.

Nguồn: http://laurencescotford.co.uk/?p=75

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.