Fenêtre Hello World


22

Créez une fenêtre qui dit bonjour au monde à l'intérieur et rien d'autre. Vous ne pouvez pas avoir de boutons OK ou Annuler à l'intérieur. Ce doit être juste une simple fenêtre qui dit bonjour au monde. Je ne me soucie pas du contenu du cadre de la fenêtre ou de l'apparence de la fenêtre, mais à l'intérieur, il ne doit dire que bonjour au monde.

Exemple:
enter image description here

Le code le plus court gagne.

EDIT: Je suis désolé Johannes Kuhn la fenêtre doit rester là, elle peut ne pas se fermer tout de suite. Je n'ai pas pensé à ce scénario et en tant que tel, je n'en ai pas tenu compte.

EDIT 2: Nous avons actuellement 3 réponses liées (20 caractères). Toute suggestion concernant le gagnant devrait être la bienvenue.


1
La fenêtre doit-elle être suffisamment grande pour afficher le texte lorsqu'il apparaît, ou est-il acceptable d'exiger que l'utilisateur redimensionne la fenêtre?
Iszi

Il ne doit pas être suffisamment grand pour afficher le texte, il doit simplement être une fenêtre, ce qui signifie simplement être cette chose qui ressemble à un conteneur qui contient du texte et ne se ferme pas jusqu'à ce qu'on le lui dise.
Quillion

Je peux le faire aussi court que celui de Sven, mais avec les boutons OK et Annuler :(
Teresa e Junior

On dirait qu'il y a une réponse Bash à 19 ans maintenant.
Iszi

2
Puis-je faire une solution VB 6 avec une étiquette avec "Hello World"? 0 solution de code?
Cruncher

Réponses:


13

bash 20 19 caractères

Merci @manatwork pour l'espace inutile après -p!

read -pHello\ World

En action:

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

Ensuite, double-cliquez sur depuis le gestionnaire de fichiers:

enter image description here

Et voyez:

enter image description here

Ayant comme shell par défaut.

19 16

Comme la question ne représente que Hello World et rien d'autre , la fenêtre doit rester mais rien de tel que le texte imprimé une seule fois , je pense que cette exigence de correspondance aussi!

yes Hello\ World

Il n'y a que 16 caractères.

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

Avec la même procédure, cela donne:

enter image description here


1
Semble comme GNOME pour moi.
Pierre Arlaud

2
Je pense que la partie "choisissez exécuter dans le terminal" devrait compter comme, au moins , 1 octet. Similaire aux règles sur les options passées aux interprètes lors de l'exécution d'une solution de codegolf.
Bakuriu

1
@Bakuriu Selon les usages personnels, vous pouvez configurer votre gestionnaire de fenêtres pour qu'il ne demande pas et ne fonctionne pas toujours sous un shell ou un terminal de votre choix ... (Je pense que c'est par défaut sous MS-Window)
F. Hauri

2
@Bakuriu aime installer l' HQ9+interprète, ajouter .hq9+comme capacité de mime : s'exécuter HQ9+dans une fenêtre de terminal . Le défi peut donc être ramené à 1 octet. Cette réponse était basée sur les réponses précédentes, en utilisant un batch ou un PowerShell et en exécutant un système d' exploitation qui utilise ce genre de truc par défaut.
F.Hauri

3
@JohannesKuhn Êtes-vous fou! Il ne fait pas plus de 2 ° C extérieur! Il fait trop froid!!
F. Hauri

23

Invite de commandes Windows, 26

echo Hello World>.hta&.hta

enter image description here


C'est génial. Des points bonus pour faire apparaître deux fenêtres?
Gusdor

@Gusdor Que voulez-vous dire? Je ne vois qu'une seule fenêtre générée ici.
Iszi

@Iszi J'ai fait l'hypothèse que le fichier de commandes a été exécuté à partir du bureau, non tapé. Oups!
Gusdor

@Gusdor Je pense que c'est pourquoi il l'a appelé "Invite de commandes Windows" au lieu de "Lot". Sinon, il perdrait de toute façon la réponse de Johannes.
Iszi

1
@Iszi: Cela ouvre une nouvelle fenêtre, donc peu importe que la commande soit répercutée dans une autre…
Ry-

15

R, 23

plot(1,m="Hello World")

Cela ouvre une fenêtre de tracé.


+1. Vous pouvez cependant raccourcir sub=en s=grâce à une correspondance partielle.
plannapus

@plannapus Merci, bonne idée! J'ai modifié mon code.
Sven Hohenstein

Sven, cela n'imprime pas "bonjour le monde à l'intérieur et rien d'autre" :) Je participais à un défi similaire et cela devait être fait différemment, voir codegolf.stackexchange.com/a/19807/2800
Tomas

1
@Tomas Ce défi est différent. De la question: " Je ne me soucie pas du contenu du cadre de la fenêtre ".
Sven Hohenstein

Eh bien, mais il ne s'agit pas du cadre, mais aussi du texte - étiquette d'axe "index", des nombres etc.
Tomas


11

Powershell, 23

'Hello World'>.hta;.hta

enter image description here


Agréable! Beats ma "vraie" solution, et est seulement 3 caractères plus long que la méthode de raccourci. Cependant, on peut soutenir que ce n'est pas vraiment mieux que de l'utiliser Hello Worldseul et de l'appeler HTML - car c'est presque exactement ce que vous avez fait. Vous venez d'utiliser PowerShell pour le créer et l'exécuter.
Iszi

11

HTML (un peu), 17

data:,Hello World

Collez-le dans la barre d'adresse de votre navigateur.

Javascript, 25

open("data:,Hello World")

Cela utilise votre navigateur window.openet un uri de données.

Le type MIME et le jeu de caractères d'un URI de données sont définis par défaut text/plain;charset=US-ASCIIlorsqu'ils sont omis.

Javascript, 19

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

Celui-ci ne fonctionne que lorsque cette réponse est la première réponse (ou acceptée) et qu'elle est exécutée sur CETTE page stackoverflow (via votre console JavaScript). :-)

open ("données:, Hello World");


Astuce drôle. Mais cela dépend malheureusement de l'ordre des messages, qui peut varier.
manatwork

1
Eh bien, cela fonctionnera tant que c'est la réponse acceptée (et que la question n'a pas de "<s>")
David Murdoch

Lol. Je dois voter pour votre optimisme.
manatwork

Pouvez-vous expliquer comment cela fonctionnera s'il vous plaît? J'utilise Chrome et j'ai essayé de l'exécuter sur la console, mais je comprends Unexpected token ILLEGAL. Devez-vous être la meilleure réponse pour que cela fonctionne?
Quillion

Oui, cela doit être la meilleure réponse pour que cela fonctionne. OU je pourrais simplement modifier la question elle-même pour inclure le <s>open("data:,Hello World");</s>code HTML requis , mais cela pourrait être un peu trop tricher. :-p
David Murdoch

9

Matlab, 30 27 20

title('Hello World')

Les fenêtres de parcelle sont-elles autorisées? Il n'a aucun bouton à l'intérieur.


Ouais la fenêtre de l'intrigue va bien :) tant que c'est la fenêtre, je m'en fiche
Quillion

la figure ('nom', 'Hello World') est plus courte
magu_

@magu_ Bonne idée. Mais je suppose que c'est contraire à la règle "une fenêtre qui dit bonjour au monde à l' intérieur ".
Sven Hohenstein

1
@SvenHohenstein Hm, peut-être. Pour dire au moins quelque chose d'utile: vous n'avez pas besoin du (1) nécessairement. Rendre le code 3 caractères plus petit.
magu_

1
Vous n'avez pas vraiment besoinfigure;
Torbjørn T.

9

Java, 117 caractères

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

Avec formatage:

import java.awt.*;

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

Nous pouvons éviter d'avoir à déclarer explicitement une variable en utilisant des blocs d'initialisation à l' intérieur d'une sous-classe anonyme de Frame. Fait intéressant, en utilisant awt, c'est autant de caractères import java.awt.*;que pour qualifier complètement les deux noms de classe.


8
Vous pouvez appeler comme bon argsvous semble; aest suffisant.
daniero

@daniero merci pour la suggestion, assez idiot de ma part de manquer ça :)
swilliams

1
s/class/enum/
Thomas Eding

comme @ThomasEding suggère de remplacer la classe par enum rase un octet
masterX244

@ masterX244 Cela ne sera syntaxiquement correct que si un point-virgule est ajouté avant le public static...pour terminer la liste des constantes d'énumération ... voir stackoverflow.com/questions/7318011/… . Dans les deux cas, vous vous retrouvez avec le même nombre de caractères.
swilliams

7

Mathematica 29 27 25

Avec 1 octet enregistré grâce à CatsAreFluffy.

DialogInput@"hello world"

hello world


CreateDialogest plus court.
alephalpha

Merci. Je pensais que CreateDialog insérerait un bouton OK.
DavidC

DialogInputest 1 octet plus court
CalculatorFeline

Oui, merci, et les accolades sont également inutiles.
DavidC

5

Coquille, 32

xmessage -buttons '' Hello World

1
Il existe un moyen plus court 1 caractère: xterm -e 'read -p Hello\ World'.
manatwork

La mienne aurait été bien plus courte si je n'avais pas eu à -buttons '':(
Hasturkun

@Hasturkun Je suis d'accord, mais j'ai dû ajouter se débarrasser de l'exigence des boutons parce que javascript gagnerait avec leur alerte ou un autre raccourci comme ça, et je pensais que ce serait trop injuste et trop clair, surtout pour certaines autres langues.
Quillion

@Hasturkun, sans la restriction sans bouton, votre xmessage Hello Worldsolution ne compte que 20 caractères, mais Windows cmdvous battrait avec msg * Hello Worldseulement 17 caractères. Soyez donc reconnaissant de la restriction. :)
manatwork


5

Python 2/3, 54 caractères

Mettez en majuscule le t dans tkinter pour le faire fonctionner sur Python 2.

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

lorsque je tente que je reçois: AttributeError: Label instance has no attribute 'show'. __import__("Tkinter").Label(text="Hello World").pack()Me donne cependant l'effet souhaité.
plannapus

@plannapus En fait, j'avais copié une version précédente avec cette erreur, pas la bonne. Merci.
Ramchandra Apte

4

Lot Windows, 23

@pause|echo Hello World
  • Ouvre une fenêtre noire qui montre Hello Worldrien d'autre.
  • Maintenant, les fenêtres restent ouvertes
  • Il n'y a aucun bouton dans la fenêtre.

2
L'exigence est: créer une fenêtre sans forcer le gestionnaire de fenêtres à créer une fenêtre
F. Hauri

4
@ F.Hauri Ok, je vais voir comment écrire un gestionnaire de fenêtres. Jusqu'à ce que quelqu'un poste cela, considérez tous les messages comme une violation de votre exigence.
Johannes Kuhn

1
Comme l'indique l'op, peu importe l'apparence de la fenêtre. S'il s'agit d'une fenêtre de tracé ou d'une fenêtre de coque, qui s'en soucie?
Johannes Kuhn

5
Je suis absolument d'accord :) maintenant c'est tout à fait acceptable car c'est une fenêtre et ça dit bonjour le monde :) bravo j'adore
Quillion

1
@JohannesKuhn PowerShell peut encore le battre. Modifier à venir.
Iszi


4

ExtJS (Javascript) 44

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




3

AutoIt v3, 32

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

Ce ne serait pas MsgBox(0,"","Hello World")plus court? C'est 26 caractères.
M. Llama

Les exigences sont de ne pas avoir de boutons Ok ou Annuler dans la fenêtre. Le code que vous proposez possède un bouton OK. :(
Chris

Ah balles, j'ai raté cette exigence.
M. Llama

3

HTML, 11

Hello World

Capture d'écran:

HTML Hello World

Je suppose que cela ne devrait pas compter, mais je pense qu'il serait intéressant de voir une telle réponse ici.


3
Je suis d'accord que ça ne devrait pas compter. La même chose peut être accomplie en chargeant un simple fichier TXT dans le navigateur.
Iszi

Votre compte est désactivé, c'est 20 caractères.
jmoreno

2
@Iszi sans balises HTML, c'est vraiment juste rendu comme un fichier texte brut. Je dirais que vous ne pouvez même pas appeler cela une soumission html sans <html> </html>
Cruncher

@Cruncher Google Chrome ajoute en fait un squelette HTML dont un <pre>qui contient le contenu du fichier (vous pouvez utiliser les outils de développement Chrome pour vérifier ce comportement).
ComFreek

1
@Cruncher Eh bien, peut - être si vous utilisez IE6, mais dans tous les navigateurs modernes, vous pouvez omettre les <html>balises, ainsi que les <body>et les <head>balises et le navigateur automatiquement remplir le « squelette ». Par exemple, essayez <div style="background:#ff0">Hello</div>dans un navigateur moderne, et il rendra universellement "bonjour" avec un fond jaune.
Braden Best

3

PowerShell: 162 124 114 ou 20


Le long chemin

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

Étant donné que PowerShell n'a vraiment aucune fonctionnalité d'interface graphique intégrée, j'ai du mal à trouver quelque chose de plus court que celui-ci qui, selon moi, correspond vraiment à l'esprit original du défi. (Ou, du moins, correspond aux paramètres que plusieurs d'entre nous ont supposés implicites.)

enter image description here

Changements par rapport à l'original:

  • Suppression de la définition de la taille de la fenêtre. Apparemment, c'est facultatif et la valeur par défaut est suffisamment grande.
  • Modifications incorporées fournies par SpellingD dans les commentaires. Remarque: La fenêtre qui apparaît se bloquera - vous devrez tuer PowerShell via le Gestionnaire des tâches.

Approche alternative à 20 caractères

En supprimant certaines exigences implicites supposées, nous pouvons également relever ce défi à la Johannes Kuhn avec ceci:

'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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.