3 초 후에 닫히는 hello world GUI 프로그램 작성


24

규칙 과 굵은 글씨를 읽으십시오 .

윈도우 시스템에 대한 GUI 지원 (텍스트 콘솔 등이 될 수없고 GUI / 툴킷 / 윈도우 여야 함)을 지원하는 한 어떤 언어로든 프로그램을 작성하십시오.

GUI 호환 창이 나타나고이 텍스트를 3 초 동안 표시 하는 한 프로그램은 어떠한 방식 으로든 Hello World (스플래시 이미지, 메뉴 표시 줄, 상태 표시 줄, 제목, 비디오, 메시지 상자, 기타 위젯 등)로 말해야합니다. . 바이트 단위로 계산 된 가장 적은 양의 코드로 이것을 코딩 할 수있는 사람이 케이크를 가져갑니다.


1
여기에 언급 된 내용은 무의미한 주장으로 변질되었습니다. 의견에 대한 자세한 논의는 자제하십시오. 필요한 경우 대신 채팅 을 사용할 수 있습니다 . 모든 의견이 삭제되었습니다.
Doorknob

13
논쟁의 시작점은 중요하지 않습니다. 모든 사용자는 분명히 소음이 있거나 아무데도 갈 수없는 분쟁에 참여하지 않아야합니다.
Doorknob

1
"Hello world"여야합니까, 아니면 "Hello_world"일 수 있습니까?
slebetman

3
또한 정상적으로 종료해야합니까?
slebetman

프로그램 실행 방법을 지정하지 않았습니까? 예를 들어 자체적으로 시작해야합니까, 아니면 이미 실행중인 환경에로드 될 수 있습니까?
Jordon Biondo

답변:


28

유닉스 쉘, 31 자

xmessage -timeout 3 hello world

"OK"버튼이있는 "hello world"메시지

이 프로그램에는 X.Org 의 xmessage (1) 유틸리티 가 필요합니다 . 전통적인 흑백 X Athena 위젯 (Xaw)을 사용합니다.


유감스럽게도 ... 내가 사용 하나를 게시 할 거라고 timeout하고 zenity...하지만 그것은 더 이상이었다
BenjiWiebe

있습니다 @BenjiWiebe zenity에서 N.1 의해 답변을 codegolf.stackexchange.com/a/28451/4065
kernigh

2
당신은 1 바이트를 저장할 수 있습니다 : 제한 시간 3 xmessage의 안녕의 세계
글렌 데르-Pehrson에게

1
@ GlennRanders-Pehrson 내 컴퓨터에는 timeout명령 이 없기 때문에 그렇게 할 수 없습니다 . 다른 사람이 그것을 사용하는 새로운 답변을 게시 할 수 있습니까?
kernigh

23

쉘 및 gedit-27 자

timeout 3 gedit Hello World

Hello World를 단일 문자열로 표시해야하는 경우 28 자입니다.

timeout 3 gedit Hello\ World

timeout유틸리티는 지정된 기간 동안 명령을 실행합니다. 최소 시작 시간을 가정하여 gedit가 3 초 동안 실행되도록합니다.

대신 모든 편집기를 사용할 수 있습니다 gedit. 보다 짧은 이름의 편집기를 사용 gvim하는 경우 길이를 1 자 이상 줄일 수 있습니다.

처음에 user80551 에 의해 생각 된 편집기 사용 .


공간을 탈출, 사용Hello\ World
user80551

1
@ user80551 질문은 "Hello World"가 어떤 식 으로든 표시 되어야하므로 필요하지 않습니다.
asheeshr

기술적으로는 이렇게 할 것입니다Hello <space> <close icon> <Document icon> World
user80551

kate대신 작동 하는지 확인할 수 있습니까 gedit?
user80551

@ user80551 KDE를 설치하지 않았지만 Kate의 man page 로 가면 작동하지 않는 이유가 없습니다.
asheeshr

19

Applescript, 45 바이트 :

종종 Applescript가 더 짧은 답변 중 하나는 아닙니다.

display alert "hello world" giving up after 3

Applescript Editor에 붙여넣고 osascript명령 줄에서 다음을 사용하여 실행 하십시오.

osascript -e 'display alert "hello world" giving up after 3'

여기에 이미지 설명을 입력하십시오


17

HTML + 자바 스크립트, 73 60 자

<script>setTimeout("open('','_self','');close()",3e3)</script>Hello world

Chrome에서는 작동하지만 다른 브라우저로는 이식 할 수 없습니다.

의견의 제안은 다음과 같습니다.

<body onload=open('',name=setTimeout(close,3e3))>Hello world

내가 본 많은 골프입니다. 나는 이것이 108문자에서 아래로 가는 것을 보았다 73. 갑자기 전체 코드가 보입니다.
저스틴

@Quincunx : 처음 몇 번의 반복을 놓쳤습니다. :)
Greg Hewgill

내 코드를 게시하는 데 바빴 기 때문입니다. :-)
Justin Justin

2
<body onload=open('','_self'),setTimeout(close,3e3)>Hello world문자를 몇 개 더 저장하는 것 같습니다.
Ventero

1
user3082537의 편집 제안이 있습니다.<body onload=open('',name=setTimeout(close,3e3))>Hello world
저스틴

16

쉘 스크립트, 31

자격이 있는지 확실하지 않습니다. 필요합니다 notify-send. 적어도 우분투 12.04에서 작동합니다.

notify-send -t 3000 Hello world

스크린 샷


1
아마도 GUI 호환 창이 아니기 때문일 것 입니다. 불행히도 사용 시간 zenity이 훨씬 깁니다.
user80551

-의 gedit와의 34 개 문자 codegolf.stackexchange.com/a/28425/8766
user80551

4
창 장식이없는 창은 여전히 ​​창이라고 생각합니다. Enlightenment의 알림에는 알림을 닫을 수있는 X 버튼도 있지만 다른 창 장식은 없습니다.
kernigh

12

쉘 + gedit / geany, 34

gedit Hello\ World&sleep 3;kill $!

gedit의 Hello World

이것은 명령 실행 시작부터 3 초가 계산되므로 gedit가 즉시 팝업된다고 가정합니다. 보다 짧은 GUI 텍스트 편집기가있는 경우 더 작을 수 있습니다 gedit.

geany 같은 수의 문자에 대해서도 작동합니다. s/gedit/geany/g

geany의 Hello World

편집 : 사용 timeout이 짧습니다. /codegolf//a/28477/8766

EDIT2 : 누구와 함께 작동하는지 확인할 수 있습니까 kate?


meld, 32

정확하게 Hello World필요하지 않은 경우 meld사용할 수 있습니다.

meld Hello World&sleep 3;kill $!

Hello : World-Meld


좋은 생각입니다 gedit. 파일이 없어도이 이름으로 파일을 열려고합니다.
AL

당신이 사용하는 경우 gvim에만 필요합니다 33 문자를
avall

1
@Daniel halt은 더 짧을 것이지만 파괴적인 것이 허용되는지는 모르겠습니다. 또한 루트 권한이 필요하기 때문에 루트 권한이 있다고 가정하거나 sudo더 많은 비용을 지불해야하며 사용자가 비밀번호를 입력해야합니다.
user80551

1
미안해, 나는 유머가 되려고 노력했다. 사용자에게 루트 권한이 있다고 가정했습니다.
Daniel

1
@Daniel 죄송합니다.이 사이트는 코드를 더 짧게 만들기 위해 규칙을 가장 악의적으로 왜곡 한 것을 기반으로합니다.
user80551


6

파이썬 (파이 게임), 87

import pygame.display as d,time
d.set_mode()
d.set_caption('Hello world')
time.sleep(3)

스크린 샷


OSX에서 작동하지 않고 창을 표시하지 않습니다 ...
Harry Beadle

@BritishColour 너무 작아야할까요? 로 크기를 변경 시도[999,999]
user12205

여전히 작동하지 않는 경우에도 창이 나타나지 않습니다 ...
Harry Beadle

@BritishColour 글쎄 그것은 확실히 나를 위해 작동합니다. 여기를 참조 하십시오 . 아마도 배경이나 무언가에 나타 났을까요?
user12205

1
코드가 기본적으로 동일하지만 다른 모듈을 사용하는 방법이 흥미 롭습니다. tkinter더 짧은 것으로 밝혀졌습니다.
저스틴

6

Tcl-32 바이트

쉘이나 자바 스크립트와 같은 일부 제출은 콘솔에 코드를 입력 할 수 있음을 알았습니다. 이 경우 다음과 같이 단축 할 수 있습니다.

wm ti . hello\ world;af 3000 exi

원하는 실행 콘솔에 입력해야합니다 . 의미는 wish인수없이 실행 하여 REPL 콘솔을 제공 한 다음 위의 코드를 입력하십시오. 이것은 tcl이 관대하고 자동 완성 된 명령 / 기능 이름 일 수 있지만 대화식 모드에서만 가능하다는 사실을 이용합니다. 따라서 af실제로 after명령을 예상 하고 exi실행 exit합니다. 사용하고 싶었지만 ex시스템에 ex편집기가 설치되어 있습니다.


원본 제출-36 바이트

wm ti . hello\ world;after 3000 exit

wish대신 사용하여 실행하십시오 tclsh.


5

Mathematica와 52 51 문자

(GUI 호환으로 계산되기를 바랍니다.)

NotebookClose/@{CreateDialog@"Hello world",Pause@3}

Mathematica GUI 골프 코드


4

자바, 136 바이트

class F{public static void main(String[]a)throws Exception{new java.awt.Frame("Hello World").show();Thread.sleep(3000);System.exit(0);}}

메시지 Hello World를 프레임 제목으로 표시합니다 . 몇 3초 후 프로그램이 닫힙니다.

다음과 같습니다 :

여기에 이미지 설명을 입력하십시오

더 크게 드래그하십시오.

여기에 이미지 설명을 입력하십시오


확장 코드 (즉, 읽을 수있는) :

class F {

    public static void main(String[] a) throws Exception {
        new java.awt.Frame("Hello World").show();
        Thread.sleep(3000);
        System.exit(0);
    }

}

다른 캐릭터를 저장 하는 enum대신 사용할 수 있습니다 class.
Riking

@Riking이 작동하지 않습니다.
Justin

정말? 내가 한 번 실제로 사용했다고 맹세 할 수 있었다 ... 댕.
Riking


4

R, 44

x11(ti="Hello World");Sys.sleep(3);dev.off()

여기에 이미지 설명을 입력하십시오



4

Visual FoxPro-23 자

WAIT"hello world"TIME 3

VFP의 Hello World

이것은 VFP가 인쇄 할 문자열 사이에 공백을 두지 않고 (방금 검색 한) 모든 키워드를 최대 4 자까지 줄일 수 있다는 사실을 남용합니다.

언 골프 버전 :

WAIT "hello world" TIMEOUT 3

4

GTK +, 47 45

zenity --info --text=Hello\ World --timeout=3

안녕하세요 세계


이전 버전 (점수 47) :

zenity --info --title="Hello World" --timeout=3

안녕하세요 세계

어떤 이유로 zenity는 모든 업데이트가 완료 됨으로 번역 될 수있는 텍스트를 표시합니다 .


1
추가 정보를 추가하기 위해 모든 업데이트가 완료되었습니다. 내가 영어로 얻는 것입니다.
user12205

1
당신은 변경하여 하나 개의 문자를 줄일 수 있습니다 --title--text
asheeshr

1
당신은 변경할 수 있습니다 "Hello World"Hello\ World
kernigh

감사합니다 AsheeshR과 kernigh, 나는 당신의 도움으로 2 문자가 적습니다.
AL

3

C, 151 자

#include<allegro.h>
main(){textout_ex(screen,font,"Hello World",0,0,7,set_gfx_mode('SAFE',8,8,install_timer(),
allegro_init()));rest(3e3);}END_OF_MAIN()

가장 작은 대답은 아닙니다. 그래도 좋아.


잘 했어. & # 32 & # 32 & # 32 & # 32
Sut Dip

어떻게 컴파일합니까? 'SAFE'하나의 문자가 아닙니다.
heinrich5991

@ heinrich5991 SAFE는 allegro.h에서 단일 문자로 정의 될 수 있습니다.
Adam Davis

@AdamDavis C는 문자 상수의 매크로를 평가합니까?
heinrich5991

1
매크로가 아니라 실제로 다중 문자 상수 표기법으로 4 바이트로 작성된 32 비트 정수이며, 4 바이트 태그 문자열을 작성하는 너무 영리한 방법입니다. Apple은 파일 유형 매직 번호로 한 번 사용했습니다. 오늘날 컴파일러는이를 지원하지만 경고를 표시합니다. 불신자들의 예
Wander Nauta

3

C 번호 101 151

이것은 이미 가장 짧은 대답은 아니지만 (이미 다른 좋은 대답이 더 짧아지기 때문에) codegolf.SE는 내 의견으로는 훨씬 더 많은 C # 기여가 필요합니다!

using t=System.Threading;class P{static void Main(){using(t.Tasks.Task.Run(()=>System.Windows.MessageBox.Show("hello world"))){t.Thread.Sleep(3000);}}}

C # 121

Bob의 답변을 기반으로 하지만 WinForms 대신 WPF를 사용 하는 대안 :

class P{static void Main(){new System.Windows.Window(){Title="hello world"}.Show();System.Threading.Thread.Sleep(3000);}}

네임 스페이스가 짧아 3 자 절약


using문자 수에 선언 을 포함해야합니다 . 또는 그것들을 남겨 둘 수도 있지만 System.Windows.Forms.MessageBox.Show(한 번만 사용하는 경우 약간 적은 문자) 같은 일을해야 합니다. 현재 코드는 컴파일되거나 실행되지 않습니다.
Bob

글쎄, 방금 사용하지 않고 C, C ++, C #, Java 등에서 많은 답변을 볼 수 있기 때문에 필요하지 않다고 가정했습니다. 그래도 편집하겠습니다. BTW, 이것에 대한 명확한 규칙이 있습니까? 올바른 컴파일 설정 및 / 또는 컴파일러로 컴파일하고 실행해야합니다. (예 : 컴파일 타임에 지시문을 사용하여 별개로 해결할 수있는 한 해결)
Num Lock


예를 들어 System.Windows.Forms.dllmsbuild 구성 / 컴파일 명령 줄의 일부 인 에 대한 참조를 추가해야했습니다 . 그러나 일반적인 합의는 전체 프로그램이 요청 될 때 using/ import/ #include/ etc입니다. 코드를 컴파일하고 실행하는 데 필요한 경우, 컴파일러 명령 줄 트릭을 사용하여이를 피하려고합니다.
Bob

나는 그것을 명심할 것이다. 참조 해 주셔서 감사합니다.
Num Lock

3

배치 (24)

msg/time:3 * hello world

Windows 7에서 테스트되었지만 System32 폴더에 MSG.EXE가 있다고 가정하면 모든 NT 기반 버전의 Windows에서 작동합니다.

편집 : 분명히 MSG.EXE는 기본 버전의 Windows에서 기본적으로 사용할 수 없습니다. 예를 들어 Windows 7의 경우 Ultimate 또는 Business 버전에서만 사용할 수 있습니다. 그러나 파일을 System32 폴더로 복사하여 작동시킬 수 있습니다. (또한 적절한 오류 메시지를 받으려면 적절한 MSG.EXE.MUI 파일을 복사해야하지만 내 "스크립트"는 그것들없이 작동합니다.)

이러한 다른 응답의 대부분이 작동하려면 소프트웨어를 설치해야하므로 자격 박탈 자라고 생각하지 않습니다.


현재 디렉토리 time:3에있는 폴더에 이름이 지정된 프로그램을 호출하지 않는 이유는 무엇 msg입니까?
고양이

@cat Windows는을 사용합니다 \.
jimmy23013 2016

@jimmy wow 1 년 전입니다. 나는 방금 모든 플랫폼에서 글을 쓰거나 익숙해졌습니다.
cat

@ jimmy23013 그러나 윈도우 지원 /
MilkyWay90

MilkyWay90 윈도우가 지원 @ /어떤 장소에 있지만,에 cmd, /xxx인수로 해석됩니다.
jimmy23013

2

APL (40)

X.Close⊣⎕DL 3⊣'X'⎕WC'Form' 'Hello World'

39 :X.Close⊣⎕DL⍴⍕'X'⎕WC'Form' 'Hello World'
Adám

2

루아 + LÖVE, 67 바이트

l=love l.window.setTitle"hello world"l.timer.sleep(3)l.event.quit()

여기에 이미지 설명을 입력하십시오



2

펄 5, 47

사용 펄 / Tk의를 :

perl -MTk -e'alarm 3;tkinit-title,"Hello World!";MainLoop'
#     123    45678901234567890123456789012345678901234567

Tk 모듈이 필요한 것 같습니다.
AL

2
예, 물론 당신이해야 할 몇 가지 GUI 툴킷을. tkinit () 때문에 Tk를 선택합니다.
Matthias

44 바이트를 셉니다. -MTk깃발도 세고 있습니까?
slebetman

@ slebetman 예 3 자로 계산하고 게시물에 수를 추가했습니다.
Matthias

1
@ n.1 Tk 모듈의 CPAN 문서에 대한 링크와 함께 제목 아래에 추가했습니다. 펄 코어 모듈은 GUI 모듈이 아니므로 항상 외부 모듈을 설치해야합니다. 죄송합니다. (펄을 자주 사용하고 있기 때문에) 나에게 분명하지만, 다른 언어로 일하는 사람들에게는 놀랍습니다.
Matthias

2

리볼 뷰 (r3gui), 49

view/no-wait[title"hello world"]wait 3 unview/all

Rebol 3의 "hello world"보기

언 골프 드 :

view/no-wait [title "hello world"]
wait 3
unview/all

2

가공, 77

int x=millis();void draw(){text("Hello world",0,9);if(millis()>x+3e3)exit();}

스크린 샷 :

여기에 이미지 설명을 입력하십시오

편집 1 : @ace가 지적한 것처럼 텍스트의 Y 위치는 10 대신 9가 될 수 있습니다.

편집 2 : 3000은 3e3으로 표시되어 한 문자를 면도 할 수 있으며 @ace로도 표시


3
10 대신 Y 위치에 9를 사용하면 나에게 적합합니다.
user12205

코드를 방금 편집했습니다. 감사!
segfaultd

3
방금 문자를 하나 더 저장 하는 3e3대신 사용할 수 있음을 알았습니다3000
user12205

2

bash + ImageMagick (36 바이트)

timeout 3 display label:Hello\ world

Ubuntu 14.04 LTS 및 Fedora 20에서 테스트되었습니다.

더보기 좋지만 10 바이트 더 큼 :

timeout 3 display -size 800 label:Hello\ world

2

CMD / 배치-33 바이트

Windows CMD 터미널이 실행되는 창은 GUI 호환으로 간주됩니다.

start "Hello world" cmd /csleep 3

sleep시스템에 명령 이 없으면 timeoutWindows 7에서 기본값을 사용할 수 있습니다 . 2 바이트 이상.

start "Hello world" cmd /ctimeout 3

"Hello World"라는 제목으로 새 CMD 창을 시작합니다 ( 터미널 자체에는 표시 되지 않지만 터미널이 실행되는 GUI 창의 제목).이 창은 구문 분석 된 모든 명령이 실행 되 자마자 닫힙니다. sleep 3또는 timeout 3완료되었습니다.

창문은 다음과 같습니다-

놈

노트; start위 명령을 실행하는 창이 아니라 새 창에서 지정된 명령을 실행합니다.


cmd "Hello world" cmd /ctimeout 3제목 표시 줄에 Hello world를 3 초 동안 두도록 변경하면 계산되지 않습니다.
Chris Kent

1
새로운 창을 생성하지 않기 때문에 그렇게 생각하지 않습니다. 질문은 GUI 호환 창이 나타나고 (핵심 단어로 나타남) 새 창을 표시해야 함을 나타냅니다. 그래도 좋은 생각입니다.
unclemeat

start "Hello world"당신은 천재입니다.
user8397947

1

파이썬 3, 83 72 바이트

from tkinter import*
f=Tk()
f.wm_title("Hello World")
f.after(3000,exit)

를 사용하여 바이트를 저장하십시오 tkinter.

이전 방법 Label은 프레임 에 a 를 추가했습니다 . 이 방법은 프레임 제목을로 설정합니다 Hello World. 밀리 초가 지난 후 f.after(3000,exit)실행됩니다 .exit()3000


같은 아이디어, 다른 모듈 : turtle더 적은 바이트가 있습니다. = D codegolf.stackexchange.com/a/28548/14506
daviewales

1

코브라-180

use System.Windows.Forms
use System.Threading
class M
    def main
        Thread(ref .w).start
        Thread.sleep(3000)
        Environment.exit(0)
    def w
        MessageBox.show("hello world")

1

루비 [신발 있음] (44 문자)

Shoes.app{para "Hello world";every(3){exit}}

OSX 앱


1

C # 124

최단 거리 :(

class P{static void Main(){new System.Windows.Forms.Form(){Text="Hello World"}.Show();System.Threading.Thread.Sleep(3000);}}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.