Ваша цель - написать самую короткую программу с выводом «Hello-World!» как ASCII арт.
Правила:
- Он должен быть читаемым человеком, мне не важно его размер (столбцы / строки)
- Вывод должен содержать только пробелы (""), острые символы ("#") и переводы строк
- Вывод должен работать с моноширинным шрифтом (но буквы не обязательно используют моноширинный шрифт)
- В результате каждый символ должен быть отделен друг от друга хотя бы одним пробелом
Пожалуйста, добавьте заголовок с языком и количеством байтов в вашем коде.
code-golf
ascii-art
hello-world
sebcap26
источник
источник
bash
: 33 символа - pastebin.com/HZ1w8z8g Это приемлемо?Ответы:
Мне абсолютно понравился этот
Perl,
126 116 114 102 9887 (69) символов (только для ascii и без внешних шрифтов)На данный момент самое короткое решение ascii, которое не использует внешние шрифты.
Ну, я хотел представить какое-то элегантное решение, но @Ilmari Karonen бросил мне вызов
unpack
... не должен был этого делать :-)Ну, этот код
92 8869 символов генерирует ужасный нечитаемый вывод, идентичный @Ilmari Karonen's:Более элегантный вариант без распаковки (88 символов):
Но я думаю, что такие |. | Е || .- |||., Д! ничто не напоминает Hello-World! и не должно быть разрешено, поэтому реальное решение здесь - вариант распаковки, 87 символов :
Выход:
Более элегантный вариант на 98 символов:
Выход:
Старое решение (114 символов), другой тип кодирования:
Выход:
источник
e
, но я знаю, что вы сделали верхний регистр, чтобы сделать его читаемым в виде шрифта высотой пять пикселей ...JavaScript, 178 байт
Это работает в Firefox 27 Scratchpad.
источник
Mathematica
101 9998Это растеризует выражение, получает двоичные данные изображения, преобразует каждое 1 в «#», каждое 0 в «» (пустое пространство) и отображает выходные данные в сетке 12 на 130 символов.
Один персонаж сэкономил благодаря Джонатану Ван Матре.
источник
Delphi 85 байт
Я знаю, это не самое красивое решение, но не было правила, согласно которому нельзя использовать внешние ресурсы.
Результат:
источник
TStrings
взамен. (Но сохраняйте экземпляр сTStringList
.)do X
. Содержание «внешнего ресурса»X
осталось неуказанным (оно работает для меня, не так ли?), Но я привел несколько возможных предложений ниже ...Perl 5, 54 байта / 71 печатный символ ASCII
Вот версия ASCII для печати из 71 символа:
54-байтовая версия содержит непечатаемые символы, поэтому я предоставляю ее в виде шестнадцатеричного дампа. В системах Unixish вы можете использовать,
xxd -r
чтобы превратить шестнадцатеричный дамп обратно в исполняемый скрипт Perl:Оба должны быть запущены с,
perl -M5.010
чтобы включить функцию Perl 5.10+say
. Они будут производить следующий вывод:(Показан в виде скриншота, потому что огромная высота строки в SE делает ASCII-код уродливым и трудным для чтения. Строчная буква «е» выглядит неловко, но я считаю, что это можно считать читабельным, хотя и едва ли.)
Ps. Если вывод решения выше кажется вам слишком минималистичным, вот вариант из 92 символов, который производит вывод, аналогичный решению Томаса :
Вот скриншот:
Pps. Я почти уверен, что это ( GolfScript, 51 символ ) - самое короткое решение для печати ASCII, если не считать тех, которые просто вызывают banner / FIGLet или чит-код другим способом:
Вывод такой же, как для моего решения Perl с 71 символом выше.
источник
unpack
:-) Нашел решение из 69 символов (87 с хорошим результатом моего).Shell + Figlet (35)
источник
-f banner
Это был первый шрифт, который я использовал # вместо * или | а также _.Питон
260 215 186152Питон
196 183 130114 (но некрасиво)Я использовал сжатые данные в кодировке base64. и код декодирует его из кодировки base64, а затем распаковывает его.
источник
PHP - 183 байта
Используя искусство ASCII в sebcap26 в качестве источника ...
источник
Brainfuck, 372 байт
(Я знаю. Но просто для полноты, должно быть бред, ^^ Это не станет намного короче, так как есть небольшие повторения. Уже первый и второй цикл строки ...)
Переводчик здесь: http://koti.mbnet.fi/villes/php/bf.php
Комбинируя генератор чисел и изображения @ ASKASK с моими циклами и дополнительной настройкой, мы получаем:
Brainfuck,
343 339 336334 байтВыглядит ужаснее, чем моя оригинальная версия.
(изображение см. в ответе @ ASKASK)
источник
EcmaScript 6,
172161Выход:
Объяснение:
источник
return
оператор первой жирной стрелки не нужны.charCodeAt(0)
может быть уменьшен доcharCodeAt()
.Скриптинг , 38 символов (76 байт)
Выход:
источник
Brainfuck, 362 байта
Извините, @ johannes-h, я видел ваш и был вдохновлен сделать свой собственный. Он использует комбинацию более быстрой генерации чисел в начале и более простого изображения, чтобы генерировать результат в меньшем количестве байтов. Однако он не использует циклы где-либо еще, так что это для оптимизации.
который генерирует:
источник
ImageMagick + sed, 71 байт
Я не вижу никаких других записей в ImageMagick, так что вот моя последняя ставка на землю:
Я думаю, что
sed
часть, вероятно, может быть еще в гольфе.Попробуйте онлайн .
Выход:
источник
Постскриптум,
154133т.е.
Только для ASCII, источником вдохновения для ASCII-art был ответ Йоханнеса Х. :-)
(более читабельно в терминале)
Perl, 102
Тот же вывод, что и выше. Я знаю, что проиграл оба ответа Perl выше, но я все равно публикую его. По крайней мере, я пытался и двигался в правильном направлении (и не видел кратчайшего ответа) :-).
источник
Pure Bash, без внешних утилит - 133 символа:
Использует сдвиг вправо и влево (разделить и умножить на 2) и xor, чтобы найти один бит.
Данные о шрифте, украденные из Blender / Ilmari Karonen.
Протестировано в Bash 3.2 и 4.2
Кстати, это всего 166 символов:
источник
Python 3, 114
Вывод (4 символа высотой e и W украдены у @Ilmari Karonen ):
И короче (107):
Выход:
источник
Python 154 символов, (размер Char 5X7)
Выход
источник
Bash:
(
10389 байт)Код:
Выход:
Меньший, но менее читаемый (на основе http://mckgyver.pbworks.com/f/1240440791/3PixelFont.jpg ):
Код:
Выход:
источник
Javascript / ES6 (108 байт)
Скопируйте в консоль:
Выход:
(Требуется совместимый с ECMAScript6 браузер, т. Е. Firefox 22+)
Вдохновленный @maximeeuziere, @ p01, @aemkei
источник
.join('\n')
может быть уменьшен до места,.join(` `)
где пробел является действительным символом новой строки.Авторы: xem, aemkei, p01, jonas
Выполните это в консоли JS.
JavaScript, кросс-браузерный,
133132126117 байтJavaScript, ES6, работает на Firefox, 108 байт
Результат:
источник
HTML, 209 символов
Это считается? :)
источник
Оболочка, 20 знаков:
Для этого, конечно, вам нужна
banner
программа. В Debian вы можете получить его, установивbsdmainutils
пакет.Это печатает прекрасно отредактированную версию вашего сообщения, предназначенную для печати на одном из старых принтеров с непрерывной подачей, поэтому вывод вышеприведенного текста составляет 322 строки в длину и 123 столбца в ширину, и вы поворачиваете распечатку сбоку, чтобы прочитать сообщение. Вы можете повесить полученную бумагу на стену как баннер, отсюда и название.
http://en.wikipedia.org/wiki/Banner_%28Unix%29
РЕДАКТИРОВАТЬ: похоже, Debian также имеет
sysvbanner
пакет, который устанавливает баннерную программу, которая печатает текст по горизонтали для отображения на терминале. Однако, это печатает только первые 10 символов сообщения, так что это немного раздражает для этой проблемы с гольф-кодом!источник
banner hello-world
.banner
доступно практически для любой UNIX. Я просто поместил пакет Debian как удобное доказательство того, что я не просто что-то придумывал, для людей, которые не знали об этом. В наши дни я не ожидал бы найтиbanner
установленный по умолчанию в UNIX, как я бы больше не ожидал найти принтер с непрерывной подачей в компьютерном классе. Но любой кодовый гольф для создания текста баннера действительно должен иметьbanner
программу где-нибудь. Это часть нашей богатой культурной истории как компьютерных фанатов. :-)Баш,
175170 байтВам нужно потратить немало символов, чтобы получить красивый результат !
Выход:
источник
F # - 204 символа
Выход:
источник
Питон + пифиглет - 87 символов
Выход
Чтобы установить
pyfiglet
, запустите:источник
Python с pyfiglet: 66 с использованием argv, 69 без
66:
69:
Елки должны называться, например:
python asciiart.py 'Hello-World!'
второй:
python asciiart.py.
Выход:
(Ну, это выглядит как-то дерьмово с этим шрифтом. Тем не менее :))
[править] удалил устаревшую черту из аргумента.
источник
Javascript 137 (134)
Использует биты целых чисел для представления острых предметов и пробелов. Протестировано с Firefox 27.
137 символов
134 символа (повернут на 180 °)
источник
Python3 (126)
Между символами есть дополнительное пространство, чтобы сделать его более читабельным. Технически это решение на 125 символов.
Выход:
источник
Баш
37, 33Который так же, как:
От
man toilet
При этом
tr "'\"m" "#"
все"
символы заменяются на#
.источник
tr
параметры будут короче, чем в кавычках. Я имею в видуtr \'\"m \#
вместоtr "'\"m" "#"
.toilet
выходе не было ни одной кавычки. Почему вы включили его вtr
1-й параметр? Только чтоtr \"m \#
достаточно.Smalltalk, 151
хотя эта игра в гольф уже закончена, для справки:
выход:
источник