Окно Hello World


22

Создайте окно с надписью "Привет, мир внутри" и больше ничего. Вы не можете иметь никаких кнопок ОК или Отмена внутри. Это должно быть просто окно с надписью "Привет, мир". Меня не волнует содержимое оконной рамы или то, как окно выглядит, но внутри него должен быть только привет, мир.

Пример:
введите описание изображения здесь

Самый короткий код выигрывает.

РЕДАКТИРОВАТЬ: Я сожалею, Йоханнес Кун, окно на самом деле должно оставаться там, оно может не закрыться сразу. Я не думал об этом сценарии и как таковой не учитывал это.

РЕДАКТИРОВАТЬ 2: В настоящее время у нас есть 3 связанных ответа (20 символов). Любые предложения о том, кто должен быть победителем, приветствуются.


1
Должно ли окно быть достаточно большим, чтобы отображать текст при его всплывающем окне, или можно потребовать, чтобы пользователь изменил размер окна?
Изи

Он не должен быть достаточно большим, чтобы отображать текст, он просто должен быть окном, то есть просто быть контейнером, который имеет текст и не закрывается, пока ему не сообщат.
Quillion

Я могу сделать его таким же коротким, как у Свена, но с помощью кнопок ОК и Отмена :(
Teresa e Junior

Похоже, что в 19 сейчас есть ответ Bash.
Изи

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 байтом. Аналогично правилам об опциях, передаваемых интерпретаторам при запуске решения Codegolf.
Бакуриу

1
@Bakuriu В зависимости от личного использования, вы можете настроить свой оконный менеджер так, чтобы он не запрашивал и не запускал все время под какой-либо оболочкой или терминалом по вашему выбору ... (я думаю, это по умолчанию в MS-Window)
Ф. Хаури

2
@Bakuriu, как установка HQ9+интерпретатора, добавление в .hq9+качестве MIME : работает HQ9+в терминале Windows. Таким образом, задача может быть уменьшена до 1 байта. Этот ответ был основан на предыдущих ответы, используя партию или PowerShell и запуск операционной системы , которая использует этот вид трюка по умолчанию.
Ф. Хаури

3
@JohannesKuhn Вы с ума сошли! На улице не более 2 ° C! Слишком холодно!!
Ф. Хаури

23

Командная строка Windows, 26

echo Hello World>.hta&.hta

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


Это круто. Бонусные баллы за нерест двух окон?
Gusdor

@Gusdor Что ты имеешь в виду? Я вижу только одно появившееся окно здесь.
Изи

@Iszi Я сделал предположение, что командный файл был запущен с рабочего стола, а не напечатан. Упс!
Gusdor

@Gusdor Я думаю, именно поэтому он назвал это «Командная строка Windows» вместо «Пакетная». В противном случае он проиграл бы ответу Йоханнеса в любом случае.
Изи

1
@Izzi: Это открывает новое окно, поэтому не имеет значения,
отображается

15

R, 23

plot(1,m="Hello World")

Это открывает окно сюжета.


+1. Вы можете сократить sub=в s=благодаря частичному совмещению однако.
plannapus

@plannapus Спасибо, хорошая идея! Я изменил свой код.
Свен Хоэнштайн

Свен, это не печатает «Привет, мир внутри и ничто иное» :) Я участвовал в подобном соревновании, и это должно было быть сделано по-другому, см. Codegolf.stackexchange.com/a/19807/2800
Томас

1
@ Томас Это вызов другой. Из вопроса: « Мне плевать на содержимое оконной рамы ».
Свен Хоэнштейн

Хорошо, но речь идет не о фрейме, а о тексте - метка оси «индекс», цифры и т. Д.
Томас


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и данные URI.

MIME-тип и кодировка URI данных по умолчанию имеют значение, text/plain;charset=US-ASCIIесли они опущены.

Javascript, 19

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

Этот работает только тогда, когда этот ответ является верхним (или принятым) ответом, и он запускается на ЭТОЙ странице stackoverflow (через вашу консоль JavaScript). :-)

open ("data:, Hello World");


Прикол Но, к сожалению, это зависит от порядка сообщений, которые могут варьироваться.
manatwork

1
Что ж, это будет работать до тех пор, пока это будет принятый ответ (а у Вопроса нет «<s>»)
Дэвид Мердок

Смешно. Я должен поддержать ваш оптимизм.
manatwork

Можете ли вы объяснить, как это будет работать, пожалуйста? Я использую Chrome и попытался запустить его на консоли, но я получаю Unexpected token ILLEGAL. Вы должны быть лучшим ответом, чтобы это сработало?
Quillion

Да, это должно быть главным ответом, чтобы это работало. ИЛИ Я мог бы просто отредактировать вопрос, включив в него необходимый <s>open("data:,Hello World");</s>HTML, но это может быть слишком обманом. :-p
Дэвид Мердок

9

Матлаб, 30 27 20

title('Hello World')

Разрешены ли окна участка? У него нет никаких кнопок внутри.


Да, сюжетное окно в порядке :) Пока это окно, мне все равно
Quillion

цифра ('name', '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 спасибо за предложение, довольно глупо с моей стороны пропустить это :)
swilliams

1
s/class/enum/
Томас Эдинг

как подсказки @ThomasEding, заменив класс на enum, сбрасывает один байт
masterX244

@ masterX244 Это не будет синтаксически правильным, если точка с запятой не добавлена ​​перед тем, public static...чтобы завершить список констант enum ... см. stackoverflow.com/questions/7318011/… . В любом случае вы получите одинаковое количество символов.
swilliams

7

Mathematica 29 27 25

Благодаря 1 байту, сохраненному благодаря CatsAreFluffy.

DialogInput@"hello world"

Привет, мир


CreateDialogкороче
алефальфа

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

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

Да, спасибо, и фигурные скобки тоже не нужны.
DavidC

5

Shell, 32

xmessage -buttons '' Hello World

1
Существует 1 персонаж более короткий путь: xterm -e 'read -p Hello\ World'.
manatwork

Мой был бы намного короче, если бы мне не пришлось -buttons '':(
Hasturkun

@Hasturkun Я согласен, но я должен был добавить избавление от требования кнопок, потому что javascript победил бы с их предупреждением или другим подобным ярлыком, и я чувствовал, что это будет слишком несправедливо и слишком просто, особенно для некоторых других языков.
Quillion

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


5

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

Используйте t в 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

@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 должно делать это, верно?
Это не так.

Show()работает, но не позволяет закрыть окно. Что не является обязательным требованием!
SpellingD

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

@SpellingD Спасибо. Я включил ваши изменения в «истинное» решение, а также добавил «дешевый метод», который в настоящее время побеждает всех соперников. (За исключением, возможно, HQ9 +, конечно.)
Iszi

3

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

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

Когда это выполняется внутри слушателя, импорт будет введен автоматически. Они нужны только для развертывания автономного исполняемого файла.


3

Обработка, 23

Основываясь на моем ответе здесь: Создайте изображение в формате PNG с помощью «Hello World!» с API программирования, в кратчайшем коде

text("HeΠo World!",9,8);

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


24-недельный мошеннический раствор:

text("Hello World!",9,9);

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

Получу ли я дополнительные очки за это, будучи 42-м ответом?


2

Groovy, 68 27

Используя консоль.

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

Используя Frame.

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!"

Выглядит как дерьмо, но работает как требуется.

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


Правило «внутри него должен быть здоров только мир» было явно добавлено, чтобы избежать столь простых решений.
manatwork

хорошо, исправил это.
klingt.net

Теперь это правильно, но есть еще одна проблема: она стала дубликатом ответа Хастуркуна .
manatwork

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. Я предложил бы это как комментарий, если бы у меня было достаточно Rep.


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.
manatwork

1
Вы должны считать новые строки как часть вашего персонажа. Вот почему многие ответы на этом сайте все в одной строке.
Гарет

Ах, я этого не знал. Я отредактирую свой ответ.
RD

2

Сценарий оболочки: 56 символов

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

Образец вывода:

Привет, мир


2

Ti84-Basic, 25

ClrHome
Disp "HELLO WORLD

Ардуино, 27

Serial.print("Hello World")

Поместите это в void setup()

Game Maker Language, 40

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

Я уверен, что это кратчайший путь без добавления пакетов расширения.


Если вы примете кнопку ОК, show_message("Hello World")это 27 символов.
Timtech

Крайне некромный этот, но у меня есть 2 (небольшие) замечания по поводу вашего Ti84-Basic. 1: ты не мог бросить финал "? 2: Если вы посчитаете это в байтах, у нас здесь явный победитель;)
Marıʇǝɥʇuʎs

@ Синтетика Да. Забыл это :)
Timtech

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