Ciao finestra del mondo


22

Crea una finestra che dice ciao mondo dentro e nient'altro. Non puoi avere alcun pulsante ok o annulla all'interno. Deve essere solo una semplice finestra che dice ciao mondo. Non mi interessa il contenuto della cornice della finestra o l'aspetto della finestra, ma al suo interno devo dire solo ciao mondo.

Esempio:
inserisci qui la descrizione dell'immagine

Il codice più corto vince.

EDIT: Mi dispiace Johannes Kuhn la finestra deve effettivamente rimanere lì, potrebbe non chiudersi immediatamente. Non ho pensato a questo scenario e come tale non ne ho tenuto conto.

EDIT 2: Al momento abbiamo 3 risposte legate (20 caratteri). Qualsiasi suggerimento su chi dovrebbe essere il vincitore è il benvenuto.


1
La finestra deve essere abbastanza grande da visualizzare il testo quando viene visualizzata oppure è necessario richiedere all'utente di ridimensionare la finestra?
Iszi,

Non deve essere abbastanza grande per visualizzare il testo, deve solo essere una finestra, il che significa solo che è un contenitore dall'aspetto che ha testo e non si chiude fino a quando non gli viene detto.
Quillion,

Posso renderlo breve come quello di Sven, ma con i pulsanti OK e Annulla :(
Teresa e Junior,

Sembra che ci sia una risposta Bash alle 19 ora.
Iszi,

2
Posso fare una soluzione VB 6 con un'etichetta con "Hello World"? 0 soluzione codice?
Cruncher,

Risposte:


13

bash 20 19 caratteri

Grazie @manatwork per lo spazio inutile dopo -p!

read -pHello\ World

In azione:

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

Quindi fare doppio clic da File Manager:

inserisci qui la descrizione dell'immagine

E vedi:

inserisci qui la descrizione dell'immagine

Avere come shell predefinita.

19 16

Poiché la domanda rappresenta solo Hello World e nient'altro , la finestra deve rimanere, ma niente come stampare il testo solo una volta o giù di lì, penso che anche questo requisito di corrispondenza!

yes Hello\ World

Ci sono solo 16 caratteri.

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

Con la stessa procedura questo dà:

inserisci qui la descrizione dell'immagine


1
Mi sembra GNOME.
Pierre Arlaud,

2
Penso che la parte "scegli corri nel terminale" dovrebbe contare come minimo 1 byte. Simile alle regole sulle opzioni passate agli interpreti durante l'esecuzione di una soluzione codegolf.
Bakuriu,

1
@Bakuriu A seconda degli usi personali, potresti configurare il tuo gestore di finestre in modo che non ti chieda ed esegua sempre sotto una shell o un terminale di tua scelta ... (Penso che sia predefinito in MS-Window)
F. Hauri,

2
@Bakuriu come installare HQ9+interprete, aggiungendo .hq9+come capacità MIME : in esecuzione HQ9+in un terminale di Windows. Quindi la sfida potrebbe essere rilasciata a 1 byte. Questa risposta si basava su risposte precedenti, utilizzando batch o PowerShell ed eseguendo un sistema operativo che utilizza questo tipo di trucco per impostazione predefinita.
F. Hauri,

3
@JohannesKuhn Sei pazzo! Non c'è più di 2 ° C esterno! Fa troppo freddo!!
F. Hauri,

23

Prompt dei comandi di Windows, 26

echo Hello World>.hta&.hta

inserisci qui la descrizione dell'immagine


Questo e spettacolare. Punti bonus per la generazione di due finestre?
Gusdor,

@Gusdor Che vuoi dire? Vedo solo una finestra generata qui.
Iszi,

@Iszi Ho ipotizzato che il file batch fosse eseguito dal desktop, non digitato. Ops!
Gusdor,

@Gusdor Penso che sia per questo che lo ha chiamato "Prompt dei comandi di Windows" anziché "Batch". Altrimenti, perderebbe comunque la risposta di Johannes.
Iszi,

1
@Iszi: Questo apre una nuova finestra, quindi non importa se il comando viene ripetuto in un'altra ...
Ry

15

R, 23

plot(1,m="Hello World")

Questo apre una finestra della trama.


+1. È possibile ridurre sub=in s=grazie alla corrispondenza parziale però.
plannapus,

@plannapus Grazie, buona idea! Ho modificato il mio codice.
Sven Hohenstein,

Sven, questo non stampa "ciao mondo dentro e nient'altro" :) Stavo partecipando a una sfida simile e doveva essere fatta diversamente, vedi codegolf.stackexchange.com/a/19807/2800
Tomas

1
@Tomas Questa sfida è diversa. Dalla domanda: " Non mi interessa il contenuto della cornice della finestra ".
Sven Hohenstein,

Bene, ma non si tratta della cornice, ma anche del testo - etichetta dell'asse "indice", dei numeri ecc.
Tomas


11

Powershell, 23

'Hello World'>.hta;.hta

inserisci qui la descrizione dell'immagine


Bello! Batte la mia soluzione "reale", ed è solo 3 caratteri più lungo del metodo di scelta rapida. Tuttavia, è discutibile che questo non sia davvero molto meglio che usare Hello Worldsolo e chiamarlo HTML, poiché è quasi esattamente quello che hai fatto. Hai appena usato PowerShell per crearlo ed eseguirlo.
Iszi,

11

HTML (kinda), 17

data:,Hello World

Incollalo nella barra degli indirizzi del tuo browser.

Javascript, 25

open("data:,Hello World")

Questo utilizza il tuo browser window.opene un uri dati.

Il tipo mime e il set di caratteri URI dei dati predefiniti sono impostati su text/plain;charset=US-ASCIIquando omessi.

Javascript, 19

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

Questo funziona solo quando questa risposta è la risposta migliore (o accettata) ed è eseguita su QUESTA pagina stackoverflow (tramite la console JavaScript). :-)

open ("data:, Hello World");


Trucco divertente. Ma purtroppo dipende dall'ordinamento dei post, che può variare.
arte

1
Bene, funzionerà fintanto che è la risposta accettata (e la Domanda non ha un "<s>")
David Murdoch,

Lol. Devo votare per il tuo ottimismo.
arte

Puoi spiegare come funzionerà per favore? Sto usando Chrome e ho provato a eseguirlo sulla console, ma ho capito Unexpected token ILLEGAL. Devi essere la risposta migliore affinché questo funzioni?
Quillion,

Sì, deve essere la risposta migliore per funzionare. O potrei semplicemente modificare la domanda stessa per includere l' <s>open("data:,Hello World");</s>HTML richiesto , ma potrebbe essere un po 'troppo ingannevole. :-p
David Murdoch,

9

Matlab, 30 27 20

title('Hello World')

Sono consentite le finestre della trama? Non ha pulsanti all'interno.


Sì, la finestra della trama va bene :) fintanto che è la finestra, non mi interessa
Quillion

la figura ('name', 'Hello World') è più breve
magu_

@magu_ Buona idea. Ma suppongo sia contro la regola "una finestra che dice ciao mondo dentro ".
Sven Hohenstein,

1
@SvenHohenstein Hm, forse. Per dire almeno qualcosa di utile: non è necessario il (1) necessariamente. Rendere il codice di 3 caratteri più piccolo.
magu_

1
In realtà non ti servefigure;
Torbjørn T.

9

Java, 117 caratteri

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

Con formattazione:

import java.awt.*;

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

Possiamo evitare di dover dichiarare esplicitamente una variabile usando i blocchi di inizializzazione all'interno di una sottoclasse anonima di Frame. È interessante notare che, usando awt, ci sono tanti personaggi quanti sono i nomi delle classi import java.awt.*;.


8
Puoi chiamare argsquello che vuoi; aè sufficiente.
daniero,

@daniero grazie per il suggerimento, abbastanza sciocco da parte mia perdere questo :)
Swilliams,

1
s/class/enum/
Thomas Eding,

come @ThomasEding suggerisce di sostituire la classe con enum che si rade di un byte
masterX244

@ masterX244 Ciò non sarà sintatticamente corretto a meno che non venga aggiunto un punto e virgola prima public static...di terminare l'elenco delle costanti enum ... vedere stackoverflow.com/questions/7318011/… . In entrambi i casi si finisce con lo stesso numero di caratteri.
Swilliams,

7

Mathematica 29 27 25

Con 1 byte salvato grazie a CatsAreFluffy.

DialogInput@"hello world"

Ciao mondo


CreateDialogè più corto.
alephalpha,

Grazie. Ho pensato che CreateDialog avrebbe inserito un pulsante OK.
DavidC,

DialogInputè più corto di 1 byte
CalculatorFeline il

Sì, grazie e anche le parentesi graffe non sono necessarie.
DavidC,

5

Shell, 32

xmessage -buttons '' Hello World

1
C'è un modo più breve 1 carattere: xterm -e 'read -p Hello\ World'.
arte

Il mio sarebbe stato molto più breve se non avessi dovuto -buttons '':(
Hasturkun,

@Hasturkun Sono d'accordo, ma ho dovuto aggiungere di sbarazzarmi del requisito dei pulsanti perché javascript avrebbe vinto con il loro avviso o qualche altra scorciatoia del genere, e ho pensato che sarebbe stato troppo ingiusto e troppo chiaro soprattutto in alcune altre lingue.
Quillion,

@Hasturkun, senza la limitazione senza pulsanti la tua xmessage Hello Worldsoluzione conta solo 20 caratteri, ma Windows cmdti batterebbe con msg * Hello Worldsolo 17 caratteri. Quindi sii grato per la restrizione. :)
Opera d'arte


5

Python 2/3, 54 caratteri

Usa le lettere maiuscole in tkinter per farlo funzionare su Python 2.

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

quando provo che ottengo: AttributeError: Label instance has no attribute 'show'. Tuttavia __import__("Tkinter").Label(text="Hello World").pack()mi dà l'effetto desiderato.
plannapus,

@plannapus In realtà avevo copiato una versione precedente con quell'errore, non quella corretta. Grazie.
Ramchandra Apte,

4

Windows Batch, 23

@pause|echo Hello World
  • Apre una finestra nera che mostra Hello World, nient'altro.
  • Ora le finestre rimangono aperte
  • Non ci sono pulsanti nella finestra.

2
Il requisito è: creare una finestra non forzare il gestore di finestre a creare una finestra
F. Hauri,

4
@ F.Hauri Ok, guarderò come scrivere un window manager. Fino a quando qualcuno non lo pubblicherà, considera tutti i post come una violazione del tuo requisito.
Johannes Kuhn,

1
Come afferma l'operazione, non importa come appare la finestra. Se è una finestra della trama o una finestra shell, a chi importa?
Johannes Kuhn,

5
Sono assolutamente d'accordo :) ora questo è assolutamente accettabile perché è una finestra e dice ciao mondo :) ben fatto lo adoro
Quillion

1
@JohannesKuhn PowerShell può ancora batterlo. Modifica in arrivo.
Iszi


4

ExtJS (Javascript) 44

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



3

Tasto di scelta automatica, 26

GUI,Add,Text,,Hello World!

3

AutoIt v3, 32

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

Non MsgBox(0,"","Hello World")sarebbe più breve? Sono 26 personaggi.
Mr. Llama,

I requisiti devono non avere pulsanti Ok o Annulla all'interno della finestra. Il codice che suggerisci ha un pulsante OK. :(
Chris,

Ah palle, ho perso questo requisito.
Mr. Llama,

3

HTML, 11

Hello World

Immagine dello schermo:

HTML Hello World

Immagino che questo non dovrebbe contare, ma penso che sarebbe interessante vedere una risposta del genere qui.


3
Sono d'accordo che non dovrebbe contare. Lo stesso può essere ottenuto caricando un semplice file TXT nel browser.
Iszi,

Il tuo conto è spento, sono 20 caratteri.
jmoreno,

2
@Iszi senza tag HTML, questo è in realtà solo reso come un semplice file di testo. Direi che non puoi nemmeno definirlo un invio html senza <html> </html>
Cruncher,

@Cruncher Google Chrome in realtà aggiunge uno scheletro HTML incluso uno <pre>che contiene i contenuti del file (puoi utilizzare gli strumenti di sviluppo di Chrome per verificare questo comportamento).
ComFreek,

1
@Cruncher Beh, forse se si sta utilizzando IE6, ma in ogni browser moderno, è possibile omettere il <html>tag, così come le <body>e <head>tag, e il browser verrà automaticamente compilare il "scheletro". Ad esempio, prova <div style="background:#ff0">Hello</div>in un browser moderno e renderà universalmente "ciao" con uno sfondo giallo.
Braden Best

3

PowerShell: 162 124 114 o 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()

Dal momento che PowerShell in realtà non ha alcuna funzionalità GUI integrata, sto facendo fatica a trovare qualcosa di più corto di questo, che ritengo davvero adatto allo spirito originale della sfida. (O almeno rientra nei parametri che molti di noi hanno assunto impliciti.)

inserisci qui la descrizione dell'immagine

Modifiche rispetto all'originale:

  • Rimossa la definizione della dimensione della finestra. Apparentemente, è facoltativo e il valore predefinito è abbastanza grande.
  • Modifiche incorporate fornite da SpellingD nei commenti. Nota: la finestra che si bloccherà - dovrai uccidere PowerShell tramite Task Manager.

Approccio alternativo a 20 caratteri

Rimuovendo alcuni requisiti impliciti, possiamo anche affrontare questa sfida alla Johannes Kuhn con questo:

'Hello World';for(){}

Salva come file .ps1. Assicurarsi che ExecutionPolicy del sistema consenta script non firmati. Fare clic con il tasto destro e selezionare "Esegui con PowerShell".

inserisci qui la descrizione dell'immagine


Show invece di ShowDialog dovrebbe farlo, giusto?
It'sNotALie.

Show()funziona, ma non ti consente di chiudere la finestra. Quale non è un requisito!
OrtografiaD

La mia modifica al golf è stata respinta e il mio codice non è sufficientemente diverso da giustificare la creazione di una nuova risposta, quindi ecco come puoi giocare a 114, suppongo. ($t=($a='New-Object Windows.Forms')+".Label"|iex).Text='Hello World';($x=iex $a".Form").Controls.Add($t);$x.Show()
OrtografiaD

@SpellingD Grazie. Ho incorporato le tue modifiche alla soluzione "vera" e ho anche aggiunto un "metodo economico" che attualmente batte tutti i contendenti. (Tranne, probabilmente, HQ9 + ovviamente.)
Iszi il

3

Fattore, codice 36 + 23 importazioni = 59

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

Quando viene eseguito all'interno del listener, le importazioni verranno introdotte automaticamente. Ti servono solo per distribuire un eseguibile autonomo.



2

Groovy, 68 27

Utilizzando la console.

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

Utilizzando Frame.

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

Ispirato dalla risposta Java di @swilliams.


2

Elaborazione, 37 caratteri:

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

Varie cose usate per ridurre i colpi:

  • La finestra di schizzo viene generata per impostazione predefinita; non è necessario crearlo manualmente
  • L'uso drawè più breve di setup(anche se il testo viene quindi ridisegnato per ogni cornice)
  • Utilizza dimensioni predefinite, sfondo, riempimento, carattere e dimensione del carattere
  • In realtà non hai bisogno di tutti i 10 pixel di altezza per il testo

2

Bash (36 caratteri)

xmessage -buttons "" "Hello World!"

Sembra una merda, ma funziona come richiesto.

inserisci qui la descrizione dell'immagine


La regola "al suo interno deve solo dire ciao mondo" è stata esplicitamente aggiunta per evitare soluzioni così semplici.
arte

ok, risolto questo.
klingt.net,

Ora è corretto, ma c'è un altro problema: è diventato un duplicato della risposta di Hasturkun .
arte

1
Accidenti, almeno ho uno screenshot :)
klingt.net,

2

Ghostscript 50

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

Potrebbe farlo 49 usando un carattere a 9 punti, ma è un po 'difficile da leggere.

Può rendere una finestra più piccola invocando gs con un argomento di geometria per ulteriori 8 caratteri.

gs -g200x30 hello.ps

2

C #, 72

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

Basato sulla risposta di @Noctis. Lo avrei suggerito come commento se avessi abbastanza Rep.


2

Delfi - 73 62

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

Modifica dopo i suggerimenti di @manatwork e @Gareth. Il che in realtà mi porta ad un numero di personaggi di 62.


Come ottieni il conteggio di quel personaggio? Il codice che hai pubblicato ha 77 caratteri e il minimo a cui posso ridurlo è 64:uses Dialogs;begin MessageDlg('Hello World',mtCustom,[],0)end.
manatwork

1
Devi contare le nuove linee come parte del conteggio dei personaggi. Ecco perché molte risposte su questo sito sono tutte su una riga.
Gareth,

Ah, non lo sapevo. Modificherò la mia risposta.
RD

2

Script di shell: 56 caratteri

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

Uscita campione:

Ciao mondo


2

Ti84-Basic, 25

ClrHome
Disp "HELLO WORLD

Arduino, 27

Serial.print("Hello World")

Metti questo dentro void setup()

Game Maker Language, 40

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

Sono abbastanza sicuro che questo sia il modo più breve senza aggiungere pacchetti di estensione.


Se accetti un pulsante OK, show_message("Hello World")è composto da 27 caratteri.
Timtech,

Estremamente necroando questo, ma ho 2 (lievi) osservazioni sul tuo Ti84-Basic. 1: non hai potuto abbandonare la finale "? 2: Se lo conti in byte, qui abbiamo un chiaro vincitore;)
Marıʇǝɥʇuʎs

@Synthetica Yeah. Dimenticato che :)
Timtech,

La risposta TI-BASIC non apre una finestra e genera lettere maiuscole anziché minuscole.
lirtosiast,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.