Требования
Для вызова давайте определим единицу :
Под единицей понимается любая точка, составляющая сетку, в которой нарисовано лицо (пиксели для экрана, символы для ASCII-рисунка и т. Д.).
Эти минимальные требования для лица являются:
Смайлик состоит из формы, которая напоминает круг (не обязательно идеальный) любого радиуса. Должно быть по крайней мере 1 единица для каждого из двух глаз и по крайней мере 2 единицы для рта. Оба глаза и рот должны быть в форме лица. Рот может быть ориентирован так, как вы хотите (счастливый, грустный, безразличный и т. Д.).
Вот пример вывода:
0 0 0 . . .
0 . . 0 . o o .
0 --- 0 . \_/ .
0 0 0 . . .
цели
Конечно, главная цель - найти максимально короткий код, но искусство также важно.
победитель
Победитель выбирается исходя из количества голосов пользователей, по крайней мере, в ближайшие 5 дней.
источник
alt + 1
иalt + 2
произведу ☺ и ☻ соответственно. В качестве аргумента я рассмотрюalt
нажатие клавиши на символ и назову это 2 символа.Ответы:
Javascript, 340
Javascript, 283
оптимизированная версия (с некоторыми улучшениями и без лишних пробелов)
Ну, может быть, это не так коротко, как хотелось бы, но точно нетрадиционно. Это выглядит лучше, когда ваш браузер развернут. Мне очень понравился твой вопрос! Если вы хотите увеличить детали, просто
d
немного уменьшите переменную.редактировать: К сожалению, я не могу запустить его на jsfiddle,
но вы можете вставить его в консоль Javascript в браузере aby. Да, и включить всплывающие окна на странице :).edit2: Вы можете запустить его, создав новый HTML-файл и вставив в него код:
Затем, когда вы запустите его, и ничего не произойдет, просто включите всплывающие окна и перезагрузите страницу. Кроме того, я вставляю
источник
HTML,
200141 символовБлагодаря напрасно , я сократить это вниз до 141 символов :
Вот оригинальный HTML:
Лучше всего работает на маленьких экранах:
источник
Brainfuck: 583 символа (без учета пробелов)
Выход:
источник
SVG
Рендерит так:
источник
Руби, 224
Дуглас Адамс будет в ужасе. :-П
Выход:
Руби, 110
Та же техника. Меньше кода. Менее хитрый. Похоже, кто-то растаял пластиковый смайлик. : -}
Выход:
источник
QBasic ASCII, 134 (неоптимизировано)
Этот ответ полностью обманывает, используя символ ASCII 1 для своего смайлика. Однако, в отличие от ответов BF и «простого текста», он на самом деле подчиняется правилам, создавая ASCII-арт на основе пикселей символа смайлика, а не просто печатая его как полное решение. Неоптимизированная версия представляет, как среда IDE QBasic сохраняет файлы. IDE «услужливо» исправляет синтаксис для нас и добавляет много пробелов, где «необходимо».
Выход:
QBasic ASCII, 80 (оптимизировано)
Это оптимизированная версия первого примера кода, которая все еще загружается в QBasic. Что было сделано:
CHR$(1)
на строку, содержащую фактический символ. (Здесь показано с соответствующим символом Unicode. Если вы действительно хотите попробовать код, замените его реальным символом ASCII 1 с помощью шестнадцатеричного редактора.)PRINT
на?
, как позволяет традиция BASIC.IF
строку строкой, которая печатает символы на основе значения исходного пикселя. Это будет либо 0, либо 3. 0 - это черный цвет. Символ 0 печатает нулевой символ, который рассматривается как пробел. 3 - белый цвет в 4-цветовой палитре CGA. ASCII символ 3 - это сердце.Выход:
QBasic, 83 (оптимизировано пространство)
Но подождите, я здесь, вы спрашиваете, вы не можете просто использовать встроенные графические команды QBasic? Конечно, но это не спасет вас от байтов из-за многословности языка. Но у него есть встроенная функция, которая рисует только дугу окружности между двумя заданными углами, и это хорошо. Углы даны в радианах, а
4
и5.4
аппроксимировать дуги окружности симметрично по центру вокругπ*3/2
, или , если вы присоединились к хорошей стороны ,τ*3/4
.Выход:
Примечание. Размеры в этом ответе обозначают размер файла в байтах.
источник
APL, 97 символов / байт *
Он работает путем вычисления нескольких круговых уравнений. Проверено на GNU APL .
Вывод ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
*: APL может быть записан в его собственной (устаревшей) однобайтовой кодировке, которая отображает символы APL в верхние 128-байтовые значения. Следовательно, для целей оценки программа из N символов, в которой используются только символы ASCII и символы APL, может рассматриваться как длина N байтов.
источник
Баш, 63 символа
Выход:
Артистизм:
Коровы.
источник
Баш, 22 символа
Образец вывода:
Редактировать: это может быть дальше, как предложено несколькими людьми. Самая короткая автономная версия, найденная до сих пор:
(спасибо nitro2k01)
источник
curl -L x.co/3WG0m
. Может быть дополнительно оптимизировано, если у нас есть локальное односимвольное имя хоста, которое также возвращает данные напрямую (исключая-L
необходимость переключения для перенаправления).Z
, указывающим на сервер, на котором размещен файл.Python
247230227 символов - и более симпатичная версияПерсонажи Python 243 - Использование цветов
источник
C ++ - 122 символа без лишних пробелов
Это самое реалистичное, что я мог придумать:
Для тех из вас, кто пропускает, это создает это:
источник
return 0;
не требуется в ISO C ++ :)источник
PHP, многие другие языки ... - 1601 символов
Смайлик источник: Asciiworld.com: смайлик
источник
HTML, CSS
Я знаю, что это ни короткое, ни реальное кодирование, но я все еще хотел опубликовать это
jsFiddle
источник
#d{border-radius:20px/10px;}
. Или с#d{border-radius:0 0 20px 20px/0 0 10px 10px;}
. Или с#d{height:10px;border-radius:0 0 20px 20px/0 0 10px 10px;margin-top:10px;}
.Ребму , 24 символа
О, минимальное человечество. :-) Наименее впечатляющая программа Rebmu, поэтому намеренно встраиваем pHp как дань синей таблетке в мире программирования :
H{ -- }pHp{|..|^/|\/|}pH
Исполнение:
объяснение
Rebmu это просто диалект Rebol . Он наследует ограничения разбора, использует сокращенные термины без пробелов, разделенных пробелами. Он имеет особый режим, когда первый прогон пишется с большой буквы по сравнению с некапитализированным.
(Таким образом, вместо того, чтобы разделять такие термины, как
AbcDefGhi
это, можно использовать разницу междуABCdefGHI
иabcDEFghi
выжать немного информации. Последовательности, чьи серии начинаются с заглавной буквы, разделяются, поэтому первый термин представляет собой «набор слов!», Часто контекстуально интерпретируемый как желание для назначения. смотрите видео )Если вы хотите перевести это на нативный Rebol, вы должны принять такие вещи, которые начинаются с заглавной буквы H, означающей, что это на самом деле
h:
а не аh
. Таким образом, источник аналогичен:Присваивает строку
--
h (используя асимметричные разделители строк, потому чтоprint {"Isn't it nice," said {Dr. Rebmu}, "when you have asymmetric multi-line string delimiters with no need for escaping matched nested pairs, and that accept apostrophes and quotes too?"}
Печатает h один раз, печатает другую строку, где
^/
есть escape-последовательность для новой строки (каретки используются в программном обеспечении меньше, чем обратные слэши, которые часто появляются в путях) , печатает h снова.источник
JavaScript
262251Изменить: добавлены лучшие глаза.
Распечатывает смайлик в консоли.
Может потерять немало символов, чтобы упростить мою битовую маску и напечатать менее симпатичное лицо, или использовать уравнение окружности вместо эллипса, чтобы учесть расстояние между символами - но это не дух.
Вы можете изменить
r
переменную, чтобы изменить размер и получить более или менее подробное лицо; любое число>=7 && <=99
даст хороший результат и останется в пределах лимита персонажа.Человек читаемый:
Выход:
Моя первая игра в гольф, скорее всего, будет с некоторыми улучшениями.
источник
Perl, 106 символов
Это Perl oneliner, просто нужно C & P в командной строке, если
Acme::EyeDrops
на машине уже установлен модуль Perl .Другой способ, смайлик с подтягиванием лица
Еще один способ, смайлик с подтягиванием лица вверх ногами,
источник
Bash + ImageMagick: 137 символов
Образец вывода:
Но так как это вызов ascii-art ...
Bash + ImageMagick: 172 персонажа
Образец вывода:
источник
GolfScript, 27
Это выводит 2-й пример в точности как указано.
Первый можно сделать таким же образом, но я думаю, что второй выглядит лучше :)
источник
Brainf *** - 2
Prints
☺
или ascii value 1. (может не работать с некоторыми платформами)источник
Баш - один вкладыш: 442 символа
Пример вывода: (вызывается
m 8
)Вид сумасшедший, но я решил использовать алмаз вместо круга. Глаза закрыты защитными очками.
BASH - 252 символа (спасибо @manatwork)
источник
s(){ (($1>1))&&echo -n "${2:- }"&&s $[$1-1] $2;};m(){ ((t=2*$1));while ((t=t-1));do v=$[$1-t];l=$[${v#-}+1];s $l;q=$[2*($1-l)];w=`s $q`;((l>t&&l<t+3&&q>2))&&w=" `s $[q-2] 0` ";((t>$1+1&&q>3))&&{ g=`s $[(q-1)/2] 0`;w=" $g $g ";};echo "+${w:+$w+}";done;}
. Или 245, если вы отказываетесь от функции m и помещаете код в файл сценария. Вероятно, можно еще больше сократить путем настройки вычислений, но сейчас у меня нет на это времени.HTML + CSS, 83
снимок экрана (с использованием Firefox):
Жаль, что я опоздал с ответом (+10 повторений тоже довольно поздно ...)
источник
border-radius:50%
и одного<hr>
: dabblet.com/gist/8472397
: jsfiddle.net/T9BdL/2GolfScript, 18
Эта программа использует некоторые двоичные значения, которые отображаются в текстовом редакторе как странные / недопустимые символы.
Вот шестнадцатеричный дамп:
Примечание: он не работает в локали UTF-8, но, к примеру, отлично работает с ISO-8859-1.
Расширенная версия с экранированными символами:
Выход:
Для лучшего вывода вы можете заменить блок, в
{2base{38+}%n}
котором бинарная версия достигает 23 байтов. Расширенная версия:Выход:
источник
JavaScript
Этот код должен быть запущен
f12
на этой странице:Выход:
источник
CJam, 18
Я решил пойти на короткий код ... Попробуйте это здесь .
объяснение
Это использует симметрию смайлика, который я разработал.
Выход
источник
uu
для улыбки - вариант, если вы собираетесь улыбаться "кошачьим" ...питон
Выход:
источник
Python, 42
источник
HTML 5: 321 символов
Скрипка: http://jsfiddle.net/wfNGx/
Источник: http://www.codecademy.com/courses/web-beginner-en-SWM11/0/1
источник
Командная или встроенная команда
В зависимости от вида вашей оболочки или набора команд,
echo
может или не может интерпретировать управляющие символы с или без-e
... (... и я требую, чтобы я мог или не мог быть Vroomfondel!) Просто попробуйте ... и если все остальное терпит неудачу, использованиеprintf
должно быть безопасной ставкой ...источник
C 178 символов:
источник (пробел добавлен - все можно удалить, кроме как
int x
выход:
источник