Janela Olá, mundo


22

Crie uma janela que diga olá mundo por dentro e nada mais. Você não pode ter nenhum botão ok ou cancelar dentro. Deve ser apenas uma janela simples que diz olá mundo. Não me importo com o conteúdo da moldura da janela ou com a aparência da janela, mas por dentro ela deve dizer olá apenas mundo.

Exemplo:
insira a descrição da imagem aqui

O menor código vence.

Edição: desculpe Johannes Kuhn a janela tem que realmente ficar lá, pode não fechar imediatamente. Eu não pensei nesse cenário e, como tal, não foi responsável por isso.

EDIT 2: Atualmente, temos 3 respostas empatadas (20 caracteres). Todas as sugestões de quem deve ser o vencedor são bem-vindas.


1
A janela precisa ser grande o suficiente para exibir o texto quando ela aparecer ou é aceitável exigir que o usuário redimensione a janela?
Iszi

Ele não precisa ser grande o suficiente para exibir o texto, apenas precisa ser uma janela, ou seja, esse objeto com aparência de contêiner que possui texto e não fecha até que seja solicitado.
Quillion

Eu posso torná-lo tão curto quanto o de Sven, mas com os botões OK e Cancelar :(
Teresa e Junior

Parece que agora há uma resposta do Bash aos 19 anos.
Iszi 27/11

2
Posso fazer uma solução VB 6 com um rótulo com "Hello World"? 0 solução de código?
Cruncher

Respostas:


13

bater 20 19 caracteres

Obrigado @manatwork pelo espaço inútil depois -p!

read -pHello\ World

Em ação:

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

Em seguida, clique duas vezes no gerenciador de arquivos:

insira a descrição da imagem aqui

E veja:

insira a descrição da imagem aqui

Tendo como shell padrão.

19 16

Como a pergunta representa apenas Olá Mundo e Nada mais , a janela precisa permanecer, mas nada como imprimir texto apenas uma ou mais vezes, acho que esse requisito de correspondência também!

yes Hello\ World

Existem apenas 16 caracteres.

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

Com o mesmo procedimento, isso fornece:

insira a descrição da imagem aqui


1
Parece o GNOME para mim.
Pierre Arlaud

2
Eu acho que a parte "escolher executar no terminal" deve contar como, no mínimo , 1 byte. Semelhante às regras sobre opções passadas para intérpretes ao executar alguma solução de codegolf.
28513 Bakuriu

1
@Bakuriu Dependendo usos pessoais, você pode configurar você gerenciador de janelas para não pedir e executar sempre sob algum shell ou terminal de sua escolha ... (acho padrão, ele está sob MS-Window)
F. Hauri

2
O @Bakuriu gosta de instalar o HQ9+intérprete, adicionando .hq9+como capacidade mime : rodar HQ9+nas janelas de um terminal . Portanto, o desafio pode ser reduzido para 1 byte. Esta resposta foi baseada em respostas anteriores, usando lote ou PowerShell e executando um sistema operacional que usa esse tipo de truque por padrão.
28513 Haitian F.Huri

3
@JohannesKuhn Você está louco! Não existe mais do que 2 ° C no exterior! Está frio demais!!
F. Hauri

23

Prompt de Comando do Windows, 26

echo Hello World>.hta&.hta

insira a descrição da imagem aqui


Isso é incrível. Pontos de bônus por gerar duas janelas?
Gusdor #

@Gusdor Como assim? Eu só vejo uma janela gerada aqui.
Iszi 27/11

@Iszi Assumi que o arquivo em lotes era executado na área de trabalho, não digitado. Ops!
Gusdor #

@ Gusdor Acho que foi por isso que ele chamou de "Prompt de Comando do Windows" em vez de "Lote". Caso contrário, perderia para a resposta de Johannes de qualquer maneira.
Iszi 27/11

1
@Iszi: Isso abre uma nova janela, então não importa se o comando está ecoado em outra…
Ry-

15

R, 23

plot(1,m="Hello World")

Isso abre uma janela de plotagem.


+1. No entanto, você pode reduzir sub=para s=a correspondência parcial.
plannapus

@ plannapus Obrigado, boa ideia! Eu modifiquei meu código.
Sven Hohenstein

Sven, isso não imprime "olá mundo por dentro e nada mais" :) Eu estava participando de um desafio semelhante e tinha que ser feito de maneira diferente, consulte codegolf.stackexchange.com/a/19807/2800
Tomas

1
@ Tomas Este desafio é diferente. Da pergunta: " Eu não ligo para o conteúdo da moldura da janela ".
Sven Hohenstein

Bem, mas isso não é sobre o quadro, mas também o texto - eixo "index" rótulo, os números etc ..
Tomas


11

Powershell, 23

'Hello World'>.hta;.hta

insira a descrição da imagem aqui


Agradável! Supera minha solução "real" e tem apenas 3 caracteres a mais que o método de atalho. No entanto, é discutível que isso não seja realmente muito melhor do que usar Hello Worldsozinho e chamá-lo de HTML - já que foi quase exatamente isso que você fez. Você acabou de usar o PowerShell para criar e executá-lo.
Iszi

11

HTML (tipo), 17

data:,Hello World

Cole isso na barra de endereço do seu navegador.

Javascript, 25

open("data:,Hello World")

Isso usa o navegador window.opene um uri de dados.

O tipo mime e o conjunto de caracteres de URIs de dados são padrão text/plain;charset=US-ASCIIquando omitidos.

Javascript, 19

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

Este funciona apenas quando esta resposta é a resposta superior (ou aceita) e é executada na página ESTA stackoverflow (através do seu console JavaScript). :-)

aberto ("dados:, Olá Mundo");


Truque engraçado. Mas, infelizmente, isso depende da ordem das postagens, que podem variar.
manatwork

1
Bem, ele vai trabalhar, desde que ele é a resposta aceita (e faz a pergunta não tem uma "<s>")
David Murdoch

Ri muito. Eu tenho que votar pelo seu otimismo.
manatwork

Você pode explicar como isso funcionará, por favor? Estou usando o chrome e tentei executá-lo no console, mas entendi Unexpected token ILLEGAL. Você tem que ser a melhor resposta para que isso funcione?
Quillion 27/11

Sim, ele precisa ser a melhor resposta para funcionar. Ou eu poderia apenas editar a pergunta em si para incluir o <s>open("data:,Hello World");</s>HTML necessário , mas isso pode estar enganando um pouco demais. :-p
David Murdoch

9

Matlab, 30 27 20

title('Hello World')

As janelas de plotagem são permitidas? Não possui nenhum botão dentro.


Sim janela do enredo é bom :) contanto que seja janela, eu não me importo #
Quillion

a figura ('nome', 'Olá Mundo') é menor
magu_ 27/11/2013

@magu_ Boa ideia. Mas suponho que seja contra a regra "uma janela que diz olá mundo por dentro ".
Sven Hohenstein #

1
@SvenHohenstein Hm, talvez. Para dizer pelo menos algo útil: você não precisa do (1) necessariamente. Tornando o código 3 caracteres menor.
Magu_ 27/11/2013

1
Na verdade, você não precisafigure;
Torbjørn T. 27/11

9

Java, 117 caracteres

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

Com formatação:

import java.awt.*;

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

Podemos evitar ter que declarar explicitamente uma variável usando blocos inicializadores dentro de uma subclasse anônima de Frame. Curiosamente, usando awt, são apenas tantos caracteres import java.awt.*;quanto qualificar apenas os dois nomes de classe.


8
Você pode ligar para argso que quiser; aé suficiente.
Daniero # 26/13

@daniero obrigado pela sugestão, muito bobo de me perder isso :)
swilliams

1
s/class/enum/
Thomas Eding

como @ThomasEding dicas substituindo a classe por barbas enum fora de um byte
masterX244

@ masterX244 Isso não estará sintaticamente correto, a menos que um ponto-e-vírgula seja adicionado antes do public static...final da lista de constantes de enum ... consulte stackoverflow.com/questions/7318011/… . Em ambos os casos, você acaba com o mesmo número de caracteres.
precisa

7

Mathematica 29 27 25

Com 1 byte salvo graças ao CatsAreFluffy.

DialogInput@"hello world"

hello world


CreateDialogé mais curto.
alephalpha

Obrigado. Eu pensei que CreateDialog iria inserir um botão OK.
DavidC

DialogInputé 1 byte mais curto
CalculatorFeline

Sim, obrigado, e o aparelho também não é necessário.
DavidC

5

Shell, 32

xmessage -buttons '' Hello World

1
Há uma maneira um caráter mais curto: xterm -e 'read -p Hello\ World'.
manatwork

Mina teria sido muito menor se eu não tivesse que -buttons '':(
Hasturkun

@Hasturkun, eu concordo, mas tive que adicionar se livrar do requisito dos botões, porque o javascript venceria com seu alerta ou algum outro atalho como esse, e achei que seria muito injusto e claro demais, especialmente para alguns outros idiomas.
Quillion 26/11/2013

@Hasturkun, sem a restrição de não botão, sua xmessage Hello Worldsolução conta apenas 20 caracteres, mas o Windows cmdo venceu com msg * Hello Worldapenas 17 caracteres. Portanto, seja grato pela restrição. :)
manatwork


5

Python 2/3, 54 caracteres

Capitalize o t no tkinter para que ele funcione no 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.