Cửa sổ xin chào thế giới


22

Tạo một cửa sổ nói thế giới xin chào bên trong và không có gì khác. Bạn không thể có bất kỳ nút ok hoặc hủy bên trong. Nó phải chỉ là một cửa sổ đơn giản nói thế giới xin chào. Tôi không quan tâm đến nội dung của khung cửa sổ hoặc cửa sổ trông như thế nào, nhưng bên trong nó phải nói lời chào thế giới.

Thí dụ:
nhập mô tả hình ảnh ở đây

Mã ngắn nhất sẽ thắng.

EDIT: Tôi xin lỗi Julian Kuhn cửa sổ phải thực sự ở đó, nó có thể không đóng ngay lập tức. Tôi đã không nghĩ về kịch bản này và như vậy đã không giải thích cho điều này.

EDIT 2: Chúng tôi hiện có 3 câu trả lời gắn liền (20 ký tự). Bất kỳ đề xuất của ai nên là người chiến thắng đều được chào đón.


1
Cửa sổ có phải đủ lớn để hiển thị văn bản khi nó bật lên hay không, có yêu cầu người dùng thay đổi kích thước cửa sổ không?
Iszi

Nó không phải đủ lớn để hiển thị văn bản, nó chỉ phải là một cửa sổ, nghĩa là chỉ là vật chứa này có văn bản và không đóng cho đến khi nó được thông báo.
Quillion

Tôi có thể rút ngắn bằng Sven, nhưng với các nút OK và Hủy :(
Teresa e Junior

Có vẻ như có một câu trả lời Bash lúc 19 giờ.
Iszi

2
Tôi có thể thực hiện giải pháp VB 6 với nhãn "Hello World" không? Giải pháp 0 mã?
Cruncher

Câu trả lời:


13

bash 20 19 ký tự

Cảm ơn @manatwork cho không gian vô dụng sau -p!

read -pHello\ World

Trong hành động:

echo 'read -pHello\ World' >/tmp/helloworld.sh
chmod +x /tmp/helloworld.sh

Hơn hai lần nhấp từ trình quản lý tệp:

enter image description here

Và nhìn thấy:

enter image description here

như vỏ mặc định.

19 16

Vì câu hỏi chỉ dành cho Hello WorldKhông có gì khác , cửa sổ phải ở lại nhưng không có gì giống như in văn bản chỉ một lần hoặc lâu hơn, tôi nghĩ rằng yêu cầu này cũng phù hợp!

yes Hello\ World

Chỉ có 16 ký tự.

echo >/tmp/helloworld.sh 'yes Hello\ World'

Với thủ tục tương tự, việc này mang lại:

enter image description here


1
Có vẻ như là Gnome đối với tôi.
Pierre Arlaud

2
Tôi nghĩ phần "chọn chạy trong thiết bị đầu cuối" nên được tính là, ít nhất là 1 byte. Tương tự như các quy tắc về các tùy chọn được chuyển cho người phiên dịch khi chạy một số giải pháp codegolf.
Bakuriu

1
@Bakuriu Tùy thuộc vào cách sử dụng cá nhân, bạn có thể định cấu hình trình quản lý cửa sổ của mình để không hỏi và chạy theo một số vỏ hoặc thiết bị đầu cuối mà bạn chọn ... (Tôi nghĩ đó là mặc định trong MS-Window)
F. Hauri

2
@Bakuriu như cài đặt HQ9+phiên dịch, bổ sung .hq9+như khả năng kịch câm : chạy HQ9+trong một thiết bị đầu cuối cửa sổ. Vì vậy, thách thức có thể được giảm xuống 1 byte. Câu trả lời này dựa trên các câu trả lời trước đó, sử dụng hoặc powershell và chạy HĐH sử dụng loại mẹo này theo mặc định.
F. Hauri

3
@JohannesKuhn Bạn có điên không! Không có quá 2 ° C bên ngoài! Nó quá lạnh!!
F. Hauri

23

Dấu nhắc lệnh Windows, 26

echo Hello World>.hta&.hta

enter image description here


Điều này thật tuyệt. Điểm thưởng cho sinh sản hai cửa sổ?
Gusdor

@Gusdor Ý bạn là gì? Tôi chỉ thấy một cửa sổ sinh sản ở đây.
Iszi

@Iszi Tôi đã đưa ra giả định rằng tệp bó được chạy từ máy tính để bàn, không được gõ. Rất tiếc!
Gusdor

@Gusdor Tôi nghĩ đó là lý do tại sao anh ấy gọi nó là "Dấu nhắc lệnh Windows" thay vì "Batch". Nếu không, nó sẽ thua câu trả lời của Julian.
Iszi

1
@Iszi: Điều này sẽ mở ra một cửa sổ mới, vì vậy không có vấn đề gì nếu lệnh được lặp lại trong một khác biệt
Ry-

15

R, 23

plot(1,m="Hello World")

Điều này mở ra một cửa sổ cốt truyện.


+1. Bạn có thể rút ngắn sub=thành s=nhờ khớp một phần tuy nhiên.
plannapus

@plannapus Cảm ơn, ý kiến ​​hay! Tôi đã sửa đổi mã của tôi.
Sven Hohenstein

Sven, điều này không in "xin chào thế giới bên trong và không có gì khác" :) Tôi đã tham gia vào một thử thách tương tự và nó phải được thực hiện khác đi, xem codegolf.stackexchange.com/a/19807/2800
Tomas

1
@Tomas Thử thách này khác. Từ câu hỏi: " Tôi không quan tâm đến nội dung của khung cửa sổ ".
Sven Hohenstein

Chà, nhưng đây không phải là về khung hình, mà còn là "chỉ mục" nhãn văn bản - trục, các con số, v.v.
Tomas


11

Powershell, 23

'Hello World'>.hta;.hta

enter image description here


Tốt đẹp! Đánh bại giải pháp "thực sự" của tôi và chỉ dài hơn 3 ký tự so với phương thức phím tắt. Mặc dù, người ta cho rằng điều này thực sự không tốt hơn nhiều so với việc chỉ sử dụng Hello Worldmột mình và gọi nó là HTML - vì đó gần như chính xác là những gì bạn đã làm. Bạn vừa sử dụng PowerShell để xây dựng và thực thi nó.
Iszi

11

HTML (loại), 17

data:,Hello World

Dán nó vào thanh địa chỉ trình duyệt của bạn.

Javascript, 25

open("data:,Hello World")

Điều này sử dụng trình duyệt của bạn window.openvà một uri dữ liệu.

Kiểu mime và bộ ký tự mặc định của URI dữ liệu text/plain;charset=US-ASCIIkhi được bỏ qua.

Javascript, 19

eval($("s").text())

Câu hỏi này chỉ hoạt động khi câu trả lời này là câu trả lời hàng đầu (hoặc được chấp nhận) và nó được chạy trên trang stackoverflow NÀY (thông qua bảng điều khiển JavaScript của bạn). :-)

mở ("dữ liệu :, Hello World");


Thủ thuật hài hước. Nhưng thật đáng buồn, nó phụ thuộc vào thứ tự của bài viết, có thể thay đổi.
manatwork

1
Chà, nó sẽ hoạt động miễn là câu trả lời được chấp nhận (và Câu hỏi không có "<s>")
David Murdoch

Lol. Tôi phải nâng cao tinh thần lạc quan của bạn.
manatwork

Bạn có thể giải thích làm thế nào điều này sẽ làm việc xin vui lòng? Tôi đang sử dụng chrome và đã thử chạy nó trên bảng điều khiển, nhưng tôi nhận được Unexpected token ILLEGAL. Bạn có phải là câu trả lời hàng đầu cho việc này để làm việc?
Quillion

Vâng, nó cần phải là câu trả lời hàng đầu cho nó hoạt động. HOẶC Tôi chỉ có thể chỉnh sửa câu hỏi để bao gồm <s>open("data:,Hello World");</s>HTML được yêu cầu , nhưng điều đó có thể gian lận một chút quá nhiều. :-p
David Murdoch

9

Matlab, 30 27 20

title('Hello World')

Cửa sổ lô có được phép không? Nó không có bất kỳ nút nào bên trong.


Vâng, cửa sổ cốt truyện vẫn ổn :) miễn là nó là cửa sổ, tôi không quan tâm
Quillion 26/11/13

hình ('tên', 'Hello World') ngắn hơn
magu_

@magu_ Ý kiến ​​hay. Nhưng tôi cho rằng nó chống lại quy tắc "một cửa sổ nói thế giới xin chào bên trong ".
Sven Hohenstein

1
@SvenHohenstein Hừm, có lẽ. Để nói ít nhất một cái gì đó hữu ích: bạn không cần (1) một cách cần thiết. Làm cho mã nhỏ hơn 3 ký tự.
magu_ 27/11/13

1
Bạn không thực sự cầnfigure;
Torbjørn T.

9

Java, 117 ký tự

import java.awt.*;class C{public static void main(String[]a){new Frame(){{add(new Label("Hello World"));show();}};}}

Với định dạng:

import java.awt.*;

class C {
    public static void main(String[] a) {
        new Frame() {
            {
                add(new Label("Hello World"));
                show();
            }
        };
    }
}

Chúng ta có thể tránh phải khai báo rõ ràng một biến bằng cách sử dụng các khối khởi tạo bên trong một lớp con ẩn danh của Khung. Thật thú vị, bằng cách sử dụng awt, nó cũng giống như nhiều ký tự import java.awt.*;để chỉ đủ điều kiện cả hai tên lớp.


8
Bạn có thể gọi argsbất cứ điều gì bạn muốn; alà đủ.
daniero

@daniero cảm ơn vì lời đề nghị, khá ngớ ngẩn của tôi để bỏ lỡ điều đó :)
swilliams

1
s/class/enum/
Thomas Eding

như @ThomasEding gợi ý thay thế lớp bằng enum tắt một byte
masterX244

@ masterX244 Điều đó sẽ không chính xác về mặt cú pháp trừ khi một dấu chấm phẩy được thêm vào trước khi public static...kết thúc danh sách các hằng số enum ... xem stackoverflow.com/questions/7318011/ . Trong cả hai trường hợp, bạn kết thúc với cùng số lượng ký tự.
swilliams

7

Toán học 29 27 25

Với 1 byte được lưu nhờ vào CatsAreFluffy.

DialogInput@"hello world"

hello world


CreateDialogngắn hơn
alephalpha

Cảm ơn. Tôi nghĩ rằng CreatDialog sẽ chèn một nút OK.
DavidC

DialogInputngắn hơn 1 byte
CalculatorFeline

Vâng, cảm ơn, và các dấu ngoặc nhọn cũng không cần thiết.
DavidC

5

Vỏ, 32

xmessage -buttons '' Hello World

1
Có 1 ký tự ngắn hơn : xterm -e 'read -p Hello\ World'.
manatwork

Của tôi sẽ ngắn hơn nếu tôi không phải -buttons '':(
Hasturkun

@Hasturkun Tôi đồng ý, nhưng tôi phải thêm yêu cầu loại bỏ các nút vì javascript sẽ giành chiến thắng với cảnh báo của họ hoặc một số phím tắt khác như vậy và tôi cảm thấy rằng nó quá bất công và quá đơn giản đối với một số ngôn ngữ khác.
Quillion

@Hasturkun, không có nút giới hạn, xmessage Hello Worldgiải pháp của bạn chỉ có 20 ký tự, nhưng sau đó Windows cmdsẽ đánh bại bạn chỉ với msg * Hello World17 ký tự. Vì vậy, hãy biết ơn những hạn chế. :)
manatwork


5

Python 2/3, 54 ký tự

Viết hoa chữ t trong tkinter để làm cho nó hoạt động trên Python 2.

__import__("tkinter").Label(text="Hello World").pack()

Khi tôi thử mà tôi nhận được : AttributeError: Label instance has no attribute 'show'. Tuy nhiên __import__("Tkinter").Label(text="Hello World").pack()cho tôi hiệu quả mong muốn.
plannapus

@plannapus Thật ra tôi đã sao chép một phiên bản trước đó với lỗi đó, không phải là phiên bản chính xác. Cảm ơn.
Ramowderra Apte

4

Batch Windows, 23

@pause|echo Hello World
  • Mở một cửa sổ màu đen cho thấy Hello World, không có gì khác.
  • Bây giờ các cửa sổ vẫn mở
  • Không có nút trong cửa sổ.

2
Yêu cầu là: tạo một cửa sổ không bắt buộc người quản lý cửa sổ tạo cửa sổ
F. Hauri

4
@ F.Hauri Ok, tôi sẽ xem cách viết trình quản lý cửa sổ. Cho đến khi ai đó đăng bài đó, hãy coi tất cả các bài viết là vi phạm yêu cầu của bạn.
Julian Kuhn

1
Như các trạng thái op, không quan trọng cửa sổ trông như thế nào. Nếu đó là cửa sổ cốt truyện hay cửa sổ vỏ, ai quan tâm?
Julian Kuhn

5
Tôi hoàn toàn đồng ý :) bây giờ điều này là hoàn toàn chấp nhận được vì nó là một cửa sổ và nó nói xin chào thế giới :) tôi đã làm rất tốt
Quillion 26/11/13

1
@JohannesKuhn PowerShell vẫn có thể đánh bại nó. Chỉnh sửa sắp tới.
Iszi


4

ExtJS (Javascript) 44

new Ext.Window({html:'Hello world',}).show()




3

Tự động v3, 32

ToolTip("Hello World")
Sleep(9^9)

Sẽ không MsgBox(0,"","Hello World")ngắn hơn? Đó là 26 ký tự.
Ông Llama

Các yêu cầu là không có nút Ok hoặc Hủy trong cửa sổ. Mã bạn đề nghị có một nút OK. :(
Chris

Ah bóng, tôi đã bỏ lỡ yêu cầu đó.
Ông Llama

3

HTML, 11

Hello World

Ảnh chụp màn hình:

HTML Hello World

Tôi đoán điều này không nên tính, nhưng tôi nghĩ sẽ rất thú vị khi thấy một câu trả lời như vậy ở đây.


3
Tôi đồng ý nó không nên tính. Điều tương tự có thể được thực hiện bằng cách tải một tệp TXT đơn giản trong trình duyệt.
Iszi

Số lượng của bạn bị tắt, đó là 20 ký tự.
jmoreno

2
@Iszi without HTML tags, this is really just getting rendered as a plain text file. I would argue that you can't even call it an html submission without <html> </html>
Cruncher

@Cruncher Google Chrome actually adds an HTML skeleton including a <pre> which contains the file's contents (you can use Chrome dev tools for verifying this behavior).
ComFreek

1
@Cruncher Well, maybe if you're using IE6, but in any modern browser, you can omit the <html> tags, as well as the <body> and <head> tags, and the browser will automatically fill out the "skeleton". For example, try <div style="background:#ff0">Hello</div> in a modern browser, and it will universally render "hello" with a yellow background.
Braden Best

3

PowerShell: 162 124 114 or 20


The Long Way Around

($t=($a='New-Object Windows.Forms')+".Label"|iex).Text='Hello World';($x=iex $a".Form").Controls.Add($t);$x.Show()

Since PowerShell really doesn't have any built-in GUI functionality, I'm having a hard time coming up with anything shorter than this which I feel really fits the original spirit of the challenge. (Or, at least, fits within the parameters several of us have assumed were implied.)

enter image description here

Changes from original:

  • Removed window size definition. Apparently, it's optional and the default is plenty large enough.
  • Incorporated changes provided by SpellingD in comments. Note: The window which spawns will hang - you'll need to kill PowerShell via Task Manager.

Alternative 20-Character Approach

Removing some assumed-implied requirements, we can also meet this challenge a-la Johannes Kuhn with this:

'Hello World';for(){}

Save as a .ps1 file. Make sure the system's ExecutionPolicy allows unsigned scripts. Right-click and select "Run with PowerShell".

enter image description here


Show instead of ShowDialog should do it, right?
It'sNotALie.

Show() does work, but doesn't let you close the window. Which isn't a requirement!
SpellingD

My edit to golf this was rejected, and my code isn't sufficiently different enough to warrant making a new answer, so here's how you could golf this to 114, I guess. ($t=($a='New-Object Windows.Forms')+".Label"|iex).Text='Hello World';($x=iex $a".Form").Controls.Add($t);$x.Show()
SpellingD

@SpellingD Thanks. I've incorporated your changes to the "true" solution, and also added a "cheap method" which currently beats all contenders. (Except, arguably, HQ9+ of course.)
Iszi

3

Factor, 36 code + 23 imports = 59

USING: ui ui.gadgets ; "Hello World" <label> "" open-window

When this is run inside the listener, the imports will be brought in automatically. You only need them to deploy a standalone executable.



2

Groovy, 68 27

Using console.

print"Hello World";for(;;);

Using Frame.

new java.awt.Frame(){{add new java.awt.Label("Hello World")}}.show()

Inspired by @swilliams Java answer.


2

Processing, 37 chars:

void draw(){text("Hello World",0,9);}

Various things used to reduce strokes:

  • Sketch window is spawned by default; no need to manually create it
  • Using draw is shorter than setup (although the text is then redrawn each frame)
  • Uses default size, background, fill, font, and font size
  • You don't actually need all 10 pixels height for the text

2

Bash (36 chars)

xmessage -buttons "" "Hello World!"

Looks like crap, but works as requested.

enter image description here


The rule “inside it must say hello world only” was explicitly added to avoid so simple solutions.
manatwork

ok, fixed this.
klingt.net

Now it's correct, but there is another problem: it became duplicate of Hasturkun's answer.
manatwork

1
Damn, at least i've a screenshot :)
klingt.net

2

Ghostscript 50

0 0 moveto/Courier 20 selectfont(Hello World)show

Could make it 49 by using a 9-point font, but it's a little hard to read.

Can make a smaller window by invoking gs with a geometry argument for an additional 8 chars.

gs -g200x30 hello.ps

2

C#, 72

class P{static int Main(){System.Console.Write("hello world");for(;;);}}

Based on the answer by @Noctis. I would have suggested it as a comment if I had enough Rep.


2

Delphi - 73 62

uses Dialogs;begin MessageDlg('Hello World',mtCustom,[],0)end.

Edit after @manatwork and @Gareth 's suggestions. Which actually brings me to a character count of 62.


How you get that character count? The code you posted has 77 characters and the minimum to which it can me reduced is 64: uses Dialogs;begin MessageDlg('Hello World',mtCustom,[],0)end.
manatwork

1
You need to count newlines as part of your character count. That's why many answers on this site are all on one line.
Gareth

Ah, I didn't know that. I'll edit my answer.
R-D

2

Shell script: 56 character

convert -size 99x9 xc: -draw 'text 0,10 Hello\ World' x:

Sample output:

Hello World


2

Ti84-Basic, 25

ClrHome
Disp "HELLO WORLD

Arduino, 27

Serial.print("Hello World")

Place this in void setup()

Game Maker Language, 40

show_message_ext("Hello World","","","")

I'm pretty sure this is the shortest way without adding any extension packages.


If you would accept an OK button, show_message("Hello World") is 27 characters.
Timtech

Extremely necroing this one, but I have 2 (slight) remarks about your Ti84-Basic one. 1: couldn't you drop the final "? 2: Should you count it in bytes, we have a clear winner here ;)
ɐɔıʇǝɥʇuʎs

@Synthetica Yeah. Forgot that :)
Timtech

Your TI-BASIC answer does not open a window, and it outputs capital rather than lowercase letters.
lirtosiast
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.