Merhaba dünya penceresi


22

İçinde merhaba dünyası olan başka bir şey olmayan bir pencere yarat. İçinde herhangi bir tamam veya iptal düğmesine sahip olamazsınız. Merhaba dünya diyen sadece düz bir pencere olmalı. Pencere çerçevesinin içeriğini veya pencerenin nasıl göründüğünü umursamıyorum, ama içinde sadece merhaba dünyası olmalı.

Örnek:
enter image description here

En kısa kod kazanır.

EDIT: Üzgünüm Johannes Kuhn, pencerenin gerçekten orada kalması gerekiyor, hemen kapanmayabilir. Bu senaryoyu düşünmedim ve bunun için böyle bir şey yoktu.

2 EDIT: Şu anda 3 bağlı cevap (20 karakter) var. Kazanan olması gereken herhangi bir öneri açığız.


1
Pencerenin açıldığında metni gösterecek kadar büyük olması gerekiyor mu, yoksa kullanıcının pencereyi yeniden boyutlandırmasını istemek tamam mı?
Iszi

Metni görüntülemek için yeterince büyük olmak zorunda değildir, sadece bir pencere olması gerekir, yani metne sahip olan ve söylenene kadar kapanmayan bu kapsayıcı görünümlü şey olabilir.
Quillion

Sven'inki kadar kısa yapabilirim ama Tamam ve İptal düğmeleriyle :(
Teresa e Junior

19'da Bash'in cevabı var gibi görünüyor.
Iszi

2
"Hello World" etiketli bir VB 6 çözümü yapabilir miyim? 0 kod çözümü?
Cruncher

Yanıtlar:


13

bash 20 19 karakter

Sonra işe yaramaz alan için @ Manatwork teşekkürler -p!

read -pHello\ World

Eylemde:

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

Dosya yöneticisinden çift tıklamak:

enter image description here

Ve bakın:

enter image description here

Varsayılan kabuk olarak sahip olmak .

19 16

Soru yalnızca Merhaba Dünya ve Başka Hiçbir Şey anlamına gelmediği için , pencerenin kalması gerekmekle birlikte bir kez ya da daha fazla basılı metin gibi bir şey kalmamalı , sanırım bu eşleşme şartı da var!

yes Hello\ World

Sadece 16 karakter var.

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

Aynı prosedür ile bu verir:

enter image description here


1
Bana GNOME gibi geldi.
Pierre Arlaud

2
"Terminalde çalışmayı seç" bölümünün en azından 1 bayt olarak sayılması gerektiğini düşünüyorum . Seçeneklerle ilgili kurallara benzer şekilde, bazı kod çözücü çözümlerini çalıştırırken tercümanlara iletildi.
Bakuriu

1
@Bakuriu Kişisel kullanımlara bağlı olarak, pencere yöneticisini , istediğin bir kabuğun veya terminalin altında soracak ve kaçmayacak şekilde
ayarlayabilirsin

2
@Bakuriu yükleme gibi HQ9+ekleyerek, tercüman .hq9+olarak mim kapasite çalışan: HQ9+Bir de Terminal pencereleri. Böylece meydan okuma 1 bayta bırakılabilir. Bu cevap kullanarak, önceki cevaplar dayanıyordu toplu veya powershell ve çalışan OS varsayılan olarak hile bu tür kullanır.
F. Hauri, 28:13

3
@JohannesKuhn Sen delirdin mi? 2 ° C'den fazla dış yüzey yoktur! Çok soğuk!!
F. Hauri

23

Windows Komut İstemi, 26

echo Hello World>.hta&.hta

enter image description here


Bu harika. İki pencerenin doğumu için bonus puan?
Gusdor

@Gusdor Ne demek istiyorsun? Burada sadece bir tane doğmuş pencere görüyorum.
Iszi

@Iszi Toplu iş dosyasının masaüstünden çalıştırıldığını, yazılmadığını varsaydım. Tüh!
Gusdor

@Gusdor Sanırım bu yüzden "Batch" yerine "Windows Komut İstemi" olarak adlandırdı. Aksi takdirde, Johannes'in cevabını yine de kaybederdi.
Iszi

1
@Iszi: Bu yeni bir pencere açar, bu yüzden komutun farklı bir şekilde yankılanması
farketmez

15

R, 23

plot(1,m="Hello World")

Bu bir komplo penceresi açar.


+1. Sen kısaltabilir sub=içine s=ancak kısmi eşleşme sayesinde.
plannapus

@plannapus Teşekkürler, iyi fikir! Kodumu değiştirdim.
Sven Hohenstein

Sven, bu "iç dünyadaki merhaba dünyası ve başka hiçbir şey" yazmıyor :) :) Benzer bir mücadeleye katıldım ve farklı şekilde yapılması gerekiyordu, bkz. Codegolf.stackexchange.com/a/19807/2800
Tomas

1
@ Toms Bu meydan okuma farklı. Sorudan: " Pencere çerçevesinin içeriğini umursamıyorum ".
Sven Hohenstein

Eksen etiket "endeks", sayılar vb .. - İyi ama bu metin çerçevesinde ilgili değil, aynı zamanda
Tomas


11

Powershell, 23

'Hello World'>.hta;.hta

enter image description here


Güzel! "Gerçek" çözümümü yener ve kısayol yönteminden yalnızca 3 karakter daha uzundur. Yine de, bunun yalnızca Hello Worldtek başına kullanmaktan ve HTML olarak adlandırmaktan çok daha iyi olmadığı tartışılabilir - çünkü neredeyse yaptığınız tam olarak buydu. Bunu oluşturmak ve yürütmek için PowerShell'i kullandınız.
Iszi

11

HTML (tür), 17

data:,Hello World

Bunu tarayıcınızın adres çubuğuna yapıştırın.

Javascript, 25

open("data:,Hello World")

Bu, tarayıcınızı kullanır window.open ve bir veri uri kullanır.

Bir Veri URI'sinin mime tipi ve karakter kümesi varsayılan text/plain;charset=US-ASCIIolduğunda atlandı.

Javascript, 19

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

Bu, yalnızca bu cevap en üst (veya kabul edilen) cevap olduğunda ve BU Yığın akışı sayfasında (JavaScript konsolunuz aracılığıyla) çalıştırıldığında çalışır. :-)

açık ("veri:, Merhaba Dünya");


Komik numara Ancak ne yazık ki, değişkenlik gösterebilecek postaların sıralamasına bağlıdır.
Manatwork

1
Kabul edilen bir cevap olduğu sürece işe yarayacaktır (ve Sorunun bir "<s>" değeri yoktur)
David Murdoch

Lol. İyimserliğin için oy vermem gerekiyor.
Manatwork

Bunun nasıl işe yarayacağını açıklayabilir misiniz? Krom kullanıyorum ve konsolda çalıştırmayı denedim, ancak anladım Unexpected token ILLEGAL. Bunun çalışması için en iyi cevap olmak zorunda mısın?
Quillion

Evet, çalışması için en iyi cevap olması gerekiyor. VEYA soruyu yalnızca gerekli <s>open("data:,Hello World");</s>HTML'yi içerecek şekilde düzenleyebilirim , ancak bu biraz fazla aldatma olabilir. :-p
David Murdoch

9

Matlab, 30 27 20

title('Hello World')

Arsa pencerelerine izin veriliyor mu? İçinde herhangi bir düğme yok.


Evet arsa pencere iyi :) pencere olduğu sürece, umrumda değil
Quillion

şekil ('name', 'Hello World') daha kısadır
magu_

@magu_ İyi fikir. Ama sanırım bu, " içeride merhaba dünya yazan bir pencere" kuralına aykırı .
Sven Hohenstein

1
@SvenHohenstein Hm, belki. En azından yararlı bir şey söylemek için: (1) mutlaka gerekmez. Kodu 3 karakterden daha küçük yapmak.
magu_

1
Gerçekten gerek yokfigure;
Torbjørn T.

9

Java, 117 karakter

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

Biçimlendirme ile:

import java.awt.*;

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

Adsız bir Frame alt sınıfı içindeki başlatıcı blokları kullanarak bir değişkeni açıkça bildirmek zorunda kalmaktan kaçınabiliriz . İlginçtir ki, awt kullanarak, import java.awt.*;her iki sınıf adını da tam olarak nitelemek için olduğu kadar karakterdir .


8
Ne istersen arayabilirsin args; ayeterli.
daniero

@daniero öneri için teşekkür ederim, çok özlüyorum beni özlüyorum :)
swilliams

1
s/class/enum/
Thomas Eding,

@ThomasEding gibi sınıf enum bir
tıraşı

@ masterX244 public static...Enum sabitleri listesinden önce bir noktalı virgül eklenmemişse, bu sözdizimsel olarak doğru olmaz ... bkz. stackoverflow.com/questions/7318011/… . Her iki durumda da aynı sayıda karaktere sahip olursunuz.
swilliams

7

Mathematica 29 27 25

CatsAreFluffy sayesinde 1 bayt kurtarıldı.

DialogInput@"hello world"

hello world


CreateDialog is shorter.
alephalpha

Thanks. I thought CreateDialog would insert an OK button.
DavidC

DialogInput is 1 byte shorter
CalculatorFeline

Yes, thanks, and the curly braces are also unnecessary.
DavidC

5

Shell, 32

xmessage -buttons '' Hello World

1
There is a 1 character shorter way: xterm -e 'read -p Hello\ World'.
manatwork

Mine would have been way shorter if I didn't have to -buttons '' :(
Hasturkun

@Hasturkun I agree, but I had to add get rid of the buttons requirement because javascript would win with their alert or some other shortcut like that, and I felt that it would be too unfair and too plain especially to some other languages.
Quillion

@Hasturkun, without the no button restriction your xmessage Hello World solution counts only 20 characters, but then Windows cmd would beat you with msg * Hello World of just 17 characters. So be grateful for the restriction. :)
manatwork


5

Python 2/3, 54 characters

Capitalize the t in tkinter to make it work on Python 2.

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

when I try that i get: AttributeError: Label instance has no attribute 'show'. However __import__("Tkinter").Label(text="Hello World").pack() gives me the desired effect.
plannapus

@plannapus Actually I had copied a previous version with that error, not the correct one. Thanks.
Ramchandra Apte

4

Windows Batch, 23

@pause|echo Hello World
  • Opens a black window that shows Hello World, nothing else.
  • Now the windows stays open
  • There are no buttons in the window.

2
Requirement is: create a window not force window manager to create a window
F. Hauri

4
@F.Hauri Ok, I'll look how to write a window manager. Until someone post that, consider all posts as violation of your requirement.
Johannes Kuhn

1
As the op states, it doesn't matter how the window looks. If it is a plot window or a shell window, who cares?
Johannes Kuhn

5
I absolutely agree :) now this is absolutely acceptable because it is a window and it does say hello world :) well done I love it
Quillion

1
@JohannesKuhn PowerShell can still beat it. Edit coming up.
Iszi


4

ExtJS (Javascript) 44

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




3

AutoIt v3, 32

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

Wouldn't MsgBox(0,"","Hello World") be shorter? It's 26 characters.
Mr. Llama

The requirements are to have no Ok or Cancel buttons within the window. The code you suggest has an OK button. :(
Chris

Ah balls, I missed that requirement.
Mr. Llama

3

HTML, 11

Hello World

Screenshot:

HTML Hello World

I guess this shouldn't count, but I think it would be interesting to see such an answer here.


3
I agree it shouldn't count. The same can be accomplished by loading a simple TXT file in the browser.
Iszi

Your count is off, that's 20 characters.
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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.