Привіт Світове вікно


22

Створіть вікно, у якому всередині привітається світ і нічого іншого. Ви не можете мати жодних кнопок гаразд чи скасувати всередині. Це повинно бути просто звичайне вікно, яке говорить привіт світ. Мені не байдуже вміст віконної рами або те, як виглядає вікно, але всередині нього слід сказати лише привіт світ.

Приклад:
введіть тут опис зображення

Найкоротший код виграє.

РЕДАКЦІЯ: Мені шкода Йоганнесу Куну, що вікно має фактично залишитися там, воно може не закритися відразу. Я не думав про цей сценарій, і як такий не враховував цього.

EDIT 2: На даний момент у нас є 3 перев'язані відповіді (20 символів). Будь-які пропозиції того, хто повинен бути переможцем, вітаються.


1
Чи має бути вікно достатньо великим, щоб відображати текст, коли воно з'являється, чи це нормально вимагати від користувача змінити розмір вікна?
Іссі

Він не повинен бути достатньо великим для відображення тексту, він повинен бути лише вікном, тобто просто ця штука виглядає з контейнером, яка має текст, і не закривається, поки про неї не кажуть.
Кільйон

Я можу зробити його таким же коротким, як у Sven, але за допомогою кнопок OK і Cancel :(
Teresa e Junior

Схоже, зараз відповідь Баша о 19.
Іссі

2
Чи можу я зробити рішення VB 6 з етикеткою з "Hello World"? 0 рішення коду?
Cruncher

Відповіді:


13

баш 20 19 символів

Дякую @manatwork за марний простір після -p!

read -pHello\ World

Дія:

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

Чому двічі клацніть у файловому менеджері:

введіть тут опис зображення

І дивіться:

введіть тут опис зображення

Маючи як оболонку за замовчуванням.

19 16

Оскільки питання стоїть лише для Hello World та нічого іншого , вікно не повинно залишатися, але нічого подібного до друку тексту лише один раз чи так далі, я думаю, що ця вимога відповідає відповідності!

yes Hello\ World

Усього 16 символів.

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

З тією ж процедурою це дають:

введіть тут опис зображення


1
Мені здається, GNOME.
П'єр Арло

2
Я думаю, що частина "вибрати запуск у терміналі" повинна вважатися як мінімум 1 байтом. Подібно до правил щодо опцій, що передаються інтерпретаторам під час виконання якогось рішення кодового гольфу.
Бакуріу

1
@Bakuriu Залежно від особистих звичаїв, ви можете налаштувати менеджера вікон, щоб він не запитував і не запускав завжди під якусь обрану оболонку або термінал ... (Я думаю, що це за замовчуванням у MS-Window)
F. Hauri

2
@Bakuriu, як установка HQ9+інтерпретатора, додавання .hq9+як мім ємності : запуск HQ9+у вікнах терміналу . Тож виклик можна було б опустити до 1 байта. Ця відповідь ґрунтувалася на попередніх відповідях, використовуючи пакетний пакет або повноваження та запустивши ОС, яка використовує цей фокус за замовчуванням.
Ф. Хаурі

3
@JohannesKuhn Ви збожеволіли! Зовнішньої температури не більше 2 ° C! Це занадто холодно !!
Ф. Хаурі

23

Командний рядок Windows, 26

echo Hello World>.hta&.hta

введіть тут опис зображення


Це круто. Бонусні бали за нерест двох вікон?
Гусдор

@Gusdor Що ти маєш на увазі? Я бачу тут лише одне породжене вікно.
Іссі

@Iszi Я зробив припущення, що пакетний файл запускається з робочого столу, а не вводиться. Ого!
Гусдор

@Gusdor Я думаю, що саме тому він назвав його "Командний рядок Windows" замість "Batch". В іншому випадку це все одно втратить відповідь Йоганнеса.
Іссі

1
@Iszi: Це відкриває нове вікно, тож не має значення, чи команда перегукується в іншому…
Ry-

15

R, 23

plot(1,m="Hello World")

Це відкриває вікно сюжету.


+1. Однак ви можете скоротити sub=їх s=завдяки частковій відповідності.
планнапус

@plannapus Дякую, хороша ідея! Я змінив свій код.
Свен Хогенштайн

Свен, це не друкує "привіт світ всередині і нічого іншого" :) Я брав участь у подібному виклику, і його потрібно було зробити по-іншому, див. Codegolf.stackexchange.com/a/19807/2800
Томаш

1
@Tomas Цей виклик інший. З питання: " Мене не хвилює вміст віконної рами ".
Свен Хогенштайн

Ну, але це не про кадр, а також про текстові осі "мітка", цифри тощо.
Томаш


11

Powershell, 23

'Hello World'>.hta;.hta

введіть тут опис зображення


Приємно! Перемагає моє "справжнє" рішення, і лише на 3 символи довший, ніж метод ярлика. Хоча, можна стверджувати, що це насправді не краще, ніж просто використовувати Hello Worldокремо та називати його HTML - адже це майже саме те, що ви зробили. Ви тільки що використовували PowerShell для його створення та виконання.
Іссі

11

HTML (свого роду), 17

data:,Hello World

Вставте його в адресний рядок веб-переглядача.

Javascript, 25

open("data:,Hello World")

Для цього використовується веб-переглядач window.openта урі даних.

За замовчуванням для mime-типу та графіки URI даних за замовчуванням встановлено, text/plain;charset=US-ASCIIколи вони пропущені.

Javascript, 19

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

Цей працює лише тоді, коли ця відповідь є верхньою (або прийнятою) відповіддю і працює на ЦЕЙ сторінці stackoverflow (через вашу консоль JavaScript). :-)

відкрити ("дані:, Hello World");


Кумедна хитрість. Але, на жаль, це залежить від впорядкованості постів, яка може відрізнятися.
манастирство

1
Що ж, це працюватиме до тих пір, поки це буде прийнята відповідь (а запитання не має "<s>")
Девід Мердок

Лол. Мені належить підтримати ваш оптимізм.
манастирство

Чи можете ви пояснити, як це спрацює? Я використовую хром і спробував запустити його на консолі, але я отримую Unexpected token ILLEGAL. Чи маєте ви бути головною відповіддю, щоб це працювало?
Кільйон

Так, це має стати головною відповіддю, щоб воно працювало. АБО я міг би просто відредагувати саме питання, щоб він включив потрібний <s>open("data:,Hello World");</s>HTML-код, але це може бути надто обманчивим. :-p
Девід Мердок

9

Матлаб, 30 27 20

title('Hello World')

Чи дозволені вікна сюжету? У ній немає жодних кнопок.


Так, вікно сюжету добре :), поки це вікно, мені все одно
Quillion

цифра ('ім’я', 'Hello World') коротше
magu_

@magu_ Гарна ідея. Але я припускаю, що це проти правила "вікно, яке говорить привіт світ всередині ".
Свен Хогенштайн

1
@SvenHohenstein Гм, можливо. Щоб сказати хоча б щось корисне: вам (1) не потрібно. Зменшення коду на 3 символи менше.
magu_

1
Вам насправді не потрібноfigure;
Torbjørn T.

9

Ява, 117 символів

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

З форматуванням:

import java.awt.*;

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

Ми можемо уникати явного декларування змінної, використовуючи блоки ініціалізатора всередині анонімного підкласу Frame. Цікаво, що, використовуючи awt, на нього так само багато символів, import java.awt.*;як і на повну кваліфікацію обох імен класів.


8
Ви можете телефонувати, argsщо завгодно; aє достатнім.
daniero

@daniero дякую за пропозицію, досить нерозумно мені пропустити це :)
swilliams

1
s/class/enum/
Томас Едінг

як @ThomasEding натякає на заміну класу enum брити на один байт
masterX244

@ masterX244 Це не буде синтаксично правильним, якщо не додати крапку з комою public static...до списку констант перерахунку ... див. stackoverflow.com/questions/7318011/… . У будь-якому випадку у вас є однакова кількість символів.
swilliams

7

Математика 29 27 25

З 1 байтом збережено завдяки CatsAreFluffy.

DialogInput@"hello world"

Привіт Світ


CreateDialogкоротше.
алефальфа

Спасибі. Я думав, що CreateDialog вставить кнопку ОК.
DavidC

DialogInputна 1 байт коротше
CalculatorFeline

Так, дякую, і фігурні брекети теж непотрібні.
DavidC

5

Шелл, 32

xmessage -buttons '' Hello World

1
Існує 1 персонаж більш короткий шлях: xterm -e 'read -p Hello\ World'.
манатура

Моя була б набагато коротшою, якби мені не довелося -buttons '':(
Hasturkun

@Hasturkun Я погоджуюсь, але мені довелося додати позбавлення від вимог до кнопок, тому що javascript виграє з їх попередженням чи іншим таким ярликом, як я, і я вважав, що це буде занадто несправедливо і надто просто, особливо до деяких інших мов.
Кільйон

@Hasturkun, без обмеження кнопки ваше xmessage Hello Worldрішення налічує лише 20 символів, але тоді Windows cmdпереможе вас із msg * Hello World17 символами. Тож будьте вдячні за обмеження. :)
манатура


5

Python 2/3, 54 символи

Використовуйте величину t in tkinter, щоб вона працювала на Python 2.

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

коли я намагаюся що я отримую: AttributeError: Label instance has no attribute 'show'. Однак __import__("Tkinter").Label(text="Hello World").pack()дає мені бажаний ефект.
планнапус

@plannapus Насправді я скопіював попередню версію з цією помилкою, а не правильною. Спасибі.
Рамчандра Апте

4

Пакет Windows, 23

@pause|echo Hello World
  • Відкриває чорне вікно, що показує Hello World, нічого іншого.
  • Тепер вікна залишаються відкритими
  • Кнопки у вікні немає.

2
Вимога: створити вікно не змусити менеджера вікон створити вікно
Ф. Хаурі

4
@ F.Hauri Добре, я подивлюсь, як написати менеджер вікон. Поки хтось не публікує це, розглядайте всі повідомлення як порушення вашої вимоги.
Йоханнес Кун

1
Як йдеться в оп, не має значення, як виглядає вікно. Якщо це вікно сюжету чи вікно оболонки, кого це хвилює?
Йоганнес Кун

5
Я абсолютно згоден :) зараз це абсолютно прийнятно, тому що це вікно, і це, привіт, світ :) молодець, я люблю це
Quillion

1
@JohannesKuhn PowerShell все ще може його перемогти. Редагування підходить.
Іссі


4

ExtJS (Javascript) 44

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




3

AutoIt v3, 32

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

Не MsgBox(0,"","Hello World")буде коротше? Це 26 символів.
Містер Лама

Вимоги полягають у тому, щоб у вікні не було кнопок Ok або Cancel. Код, який ви пропонуєте, має кнопку ОК. :(
Кріс

А кулі, я пропустив цю вимогу.
Містер Лама

3

HTML, 11

Hello World

Знімок екрана:

HTML Hello World

Я думаю, що це не повинно рахуватися, але я думаю, було б цікаво побачити таку відповідь тут.


3
Я згоден, це не повинно рахуватися. Те ж саме можна досягти, завантаживши у браузер простий файл TXT.
Іссі

Ваш рахунок вимкнено, це 20 символів.
jmoreno

2
@Iszi без тегів HTML, це насправді просто відображається як звичайний текстовий файл. Я б заперечував, що ви навіть не можете назвати це поданням html без <html> </html>
Cruncher

@Cruncher Google Chrome фактично додає скелет HTML, включаючи <pre>вміст файлу (ви можете використовувати інструменти для розробників Chrome для перевірки такої поведінки).
ComFreek

1
@Cruncher Ну, може бути , якщо ви використовуєте IE6, але в будь-якому сучасному браузері, ви можете опустити <html>теги, а також <body>і <head>теги, а браузер буде автоматично заповнити «скелет». Наприклад, спробуйте <div style="background:#ff0">Hello</div>в сучасному браузері, і він універсально зробить "привіт" з жовтим фоном.
Бреден Найкращий

3

PowerShell: 162 124 114 або 20


Довгий шлях навколо

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

Оскільки PowerShell насправді не має вбудованого графічного інтерфейсу, мені важко придумати щось коротше, ніж це, що, на мою думку, справді відповідає оригінальному духу завдання. (Або, принаймні, підпадає під параметри, які кілька з нас припускали, що маються на увазі.)

введіть тут опис зображення

Зміни від оригіналу:

  • Визначення розміру вікна видалено. Мабуть, це необов’язково, і за замовчуванням достатньо великий.
  • Включені зміни, передбачені SpellingD у коментарях. Примітка. Вікно, яке нереститься, зависне - вам потрібно вбити PowerShell за допомогою диспетчера завдань.

Альтернативний 20-символьний підхід

Видаляючи деякі припущені вимоги, ми можемо також вирішити цей виклик а-ля Йоганнес Кун із цим:

'Hello World';for(){}

Збережіть як .ps1 файл. Переконайтеся, що в системі ExecutionPolicy система дозволяє непідписані сценарії. Клацніть правою кнопкою миші та виберіть "Запуск із PowerShell".

введіть тут опис зображення


Шоу замість ShowDialog повинен робити це, правда?
ЦеNotALie.

Show()працює, але не дозволяє вам закрити вікно. Що не є вимогою!
ПравописD

Мою редакцію гольфу це було відхилено, і мій код недостатньо відрізняється, щоб вимагати зробити нову відповідь, тож ось, як ви могли це зробити до 114, я думаю. ($t=($a='New-Object Windows.Forms')+".Label"|iex).Text='Hello World';($x=iex $a".Form").Controls.Add($t);$x.Show()
ПравописD

@ SpellingD Дякую Я включив ваші зміни до "справжнього" рішення, а також додав "дешевий метод", який наразі перемагає всіх претендентів. (Крім, мабуть, HQ9 + звичайно.)
Iszi

3

Фактор, 36 код + 23 імпорт = 59

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

Якщо це запустити всередині слухача, імпорт буде внесений автоматично. Вам потрібні лише вони для розгортання автономного виконуваного файлу.



2

Гровий, 68 27

Використання консолі.

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

Використання кадру.

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

Натхненний відповіддю @swilliams Java.


2

Обробка, 37 символів:

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

Для зменшення ударів використовуються різні речі:

  • Вікно ескізу створюється за замовчуванням; не потрібно створювати його вручну
  • Використання drawкоротше setup(хоча текст потім перемальовується кожен кадр)
  • Використовує розмір за замовчуванням, фон, заливку, шрифт та розмір шрифту
  • Насправді вам не потрібні всі 10 пікселів висоти для тексту

2

Баш (36 символів)

xmessage -buttons "" "Hello World!"

Схоже на лайно, але працює як потрібно.

введіть тут опис зображення


Правило "всередині нього повинно говорити лише привіт світ" було явно додано, щоб уникнути таких простих рішень.
манастирство

ок, виправили це.
klingt.net

Зараз це правильно, але є ще одна проблема: він став дублікатом відповіді Гастуркуна .
манастирство

1
Блін, принаймні, у мене скріншот :)
klingt.net

2

Ghostscript 50

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

Зробити це можна 49, використовуючи 9-кратний шрифт, але його важко читати.

Можна зробити менше вікно, застосувавши gs з аргументом геометрії для додаткових 8 символів.

gs -g200x30 hello.ps

2

C #, 72

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

На основі відповіді @Noctis. Я б запропонував це як коментар, якби у мене було достатньо Реп.


2

Delphi - 73 62

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

Редагувати після пропозицій @manatwork та @Gareth. Що насправді приводить мене до числа персонажів 62.


Як ви отримуєте цю кількість символів? Код, який ви опублікували, містить 77 символів, а мінімальний, до якого він може мене зменшити, - 64:uses Dialogs;begin MessageDlg('Hello World',mtCustom,[],0)end.
маніпулювання

1
Вам потрібно порахувати нові рядки як частину вашої кількості символів. Ось чому багато відповідей на цьому сайті всі в одному рядку.
Гарет

Ах, я цього не знав. Я відредагую свою відповідь.
РД


2

Ti84-Basic, 25

ClrHome
Disp "HELLO WORLD

Ардуїно, 27

Serial.print("Hello World")

Помістіть це void setup()

Мова виробника ігор, 40

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

Я впевнений, що це найкоротший шлях без додавання будь-яких розширень.


Якщо ви прийняли кнопку ОК, show_message("Hello World")це 27 символів.
Timtech

Надзвичайно нехтуючи цим, але у мене є 2 (незначні) зауваження щодо вашого Ti84-Basic. 1: не могли ви вийти у фінал "? 2: Якщо ви
порахуєте

@Synthetica Так. Забув це :)
Timtech

Ваша відповідь TI-BASIC не відкриває вікно, і воно виводить великі, а не малі літери.
lirtosiast
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.