Посміхніться! Просто посмішка


16

Добре відомо, що Brainf * ck дуже погано справляється із проблемами складності Колмогорова, наприклад, для друку "Hello world" потрібно близько 100 символів.

Однак можуть бути тексти, де Brainf * ck просто дуже хороший.

Ваше завдання зараз - написати програму, яка не вводить даних, і вона відображає наступне:

Тобто посміхнене обличчя (ASCII 1, якщо браузер не рендерує його).

Brainf * ck може це зробити в 2 символи.

+.

Спробуйте знайти мову, яка її б'є!

Ми припускаємо, що ваша консоль може насправді відображати цей символ (або у вашому шрифті тощо).

Найкоротший код виграє. Якщо буде більше однакової довжини, перші виграють, але я також схвалюю інші.

EDIT: Мені дуже шкода, я не думав, що перша публікація приїде цього скоро. Швидке редагування: мова повинна бути Тюрінг-повною!


7
Я повинен суперечити вашому опису виводу: Хоча ваш код дійсно видає символ з двійковим кодом 1, він не кодований ASCII, але належить до кодування коду сторінки DOS, як CP850 або CP437. У будь-якій сучасній консолі смайлик не з’явиться, тому що сучасний == UTF-8. ☺
Свен

Відповіді:


10

ЛАЖКА (2)

1,

Все те читання про BF окупилося! False - родоначальник Brainfuck.


Ой! Дивно, що досі ніхто про це не думав. :)
vsz

1
Мені довелося прийняти це, оскільки версії з простим текстом та html насправді не робили з мовами програмування.
vsz

Я намагався зробити це з BLC, але я не можу мати сенсу з BLC. І навіть 1-державній машині Тьюрінга потрібно 4 або 5 елементів в кортежі.
luser droog

12

Математика

Задля розваги...

"\[HappySmiley]"
"\[NeutralSmiley]"
"\[SadSmiley]"
"\[FreakedSmiley]"

смайлики


1
У Mma, одна особа це теж робить
доктор belisarius

@belisarius Як вставити, не перетворивши його на ASCII?
DavidC

1
Я просто скопіював це вставити :)
Доктор belisarius

@belisarius Я також вирізав і вставив піктограми, але чомусь був показаний повний формат.
DavidC

1
Комерційна вартість становить приблизно 75 центів. Математичне значення - це пшик.
DavidC

8

C, 18 символів

Далеко від побиття Brainf ** k, але так добре, як може отримати C (я здогадуюсь).
Працює лише на малоінтенсивних платформах, має працювати без параметрів.

main(c){puts(&c);}

7

Micronetics System MUMPS 4.4 (7 символів)

w $c(1)

СУМКА? О, жах ... Я ніколи навіть не уявляв, що побачу це тут. +1 лише за значення чистого шоку!
vsz

@vsz - це єдина мова, якою я підходить для гольфу, яку я знаю, вона часто б’є найпоширеніші мовки :)
DaveShaw

5

Brainf * ck (лише 2 символи)

+.

Звичайно, я все одно прийму рішення довжини 2.
vs

Чи можете ви пояснити, як це працює? Він повинен виводити ASCII 1, який є недрукуваним символом.
nyuszika7h

@ nyuszika7h: багато консолей видають смайлик для ASCII 1.
vsz

1
Дійсно? Я ніколи не бачив такої консолі. Б'юсь об заклад, вони використовують деякі незрозумілі набори.
nyuszika7h

5

Не перемагає 2 символи, але:

PHP 11 символів.

<?=chr(1)?>

Для всіх, хто говорить, що ви можете просто помістити смайлик у php, і він виведе :

Запуск з php.exe в командному рядку дає, Γÿǁа розміщення в браузері даєâ˜º

Це не працює.


Ви також можете пройти HTML-маршрут, який зробив m0nhawk.
Містер Лама

@GigaWatt Ви не можете. Він виводить гнучкість за допомогою PHP. Ви навіть пробували? Я спробував це в CLI та браузері.
jdstankosky

Добре працює для мене. ideone.com/6wYzx9
Містер Лама

Запуск його з php.exe в командному рядку дає, Γÿǁа розміщення в браузері даєâ˜º
jdstankosky

2
Якщо ви робите шестнадцятковий дамп свого файлу, ви побачите, що він був збережений як представлення унікоду смайліка ( \xE298BA), а не як \x01. Спробуйте зробити вручну файл з одним \x01байтом і запустити його з командного рядка з PHP.
Містер Лама


4

Гольфскрипт, 3 символи

"☺"

Не експерт із гольф-скриптів, але я не вірю, що існує спосіб перетворити ціле число у відповідний символ ASCII, використовуючи лише 1 символ, тому здається, що це найкоротший, який він може отримати


4

PHP (1)

Технічно це дійсний файл PHP (веб-сервер із задоволенням його обслуговуватиме).


3

LaTeX (51/77 символів)

Коротке рішення

\documentclass{book}
\begin{document}
☺
\end{document}

Гарне рішення (компілювати з latex main.tex):

\documentclass{book}
\usepackage{wasysym}
\begin{document}
\smiley
\end{document}

Перший не працює, оскільки чистий LaTeX не може читати символи unicode. Як не дивно, це не працює ні в XeLaTeX, ні в LuaLaTeX, оскільки таблиця шрифтів за замовчуванням не містить цього символу. Будь ласка, врахуйте це: \documentclass{book} \usepackage{fontspec} \setmainfont{DejaVu Sans} \begin{document}☺\end{document}- і будь ласка, вкажіть механізм візуалізації, який ви використовуєте (pdfLaTeX) у "хорошому" рішенні.
Андрей Костирка

2

J (3 символи)

'☺'

Для коду потрібен відповідний шрифт.

За даними Вікіпедії

У шрифті Wingdings літера "J" відображається як усміхнене обличчя (зауважте, це відмінне від кодової точки Unicode U + 263A, яка відображається як ☺).


Ще одна варіація u:1.
FireFly

2

Q / k (9 символів)

На жаль, це не вдається зробити за 2.

-1"\001";

Здається, я згадую помилку в старій версії перекладача, яка створювала інший усміхнений символ менше символів. Я погляну.

Редагувати: знайшов химерність. Він, як видається, працює лише на версії Windows інтерпретатора:

q)1(1b);
☺


1

Бурлеск - 6 персонажів

,1L[sh

Пояснення:

,pops stdin. 1L[натискає один і перетворюється в char (за кодовою точкою)sh використовується для переходу на гарний формат. (Інакше він надрукував би ведучого ').


1

Tcl, 1

Відображає ☺ з деякими іншими речами.
Ходять чутки, що це також працює з PHP або іншими мовами.



1

Кег , 2 символи

Натисніть на номер 1 і роздрукуйте його. (Здивовано, що 1,також працює; -1 від Lyxal.)

1,

Спробуйте в Інтернеті!

Кег , 1 персонаж

Кег насправді завершений Тьюрінгом, і будь-яка нерозпізнана команда діє як натискання на стек.

Спробуйте в Інтернеті!


Це фактично 1,робить його 2 байти.
Ліксал

1

05AB1E , 2 символи

Просто нудне жорстке кодування. Він закодований у CP437.

"☺

Спробуйте в Інтернеті!

05AB1E , 2 байти

Спробуйте в Інтернеті!


Ви можете включити кодування. Ваша головна відповідь - це лише 2 байти в кодуванні, як CP850 або CP437, яке містить як символи, так і "їх кодову сторінку. Але, використовуючи кодування 05AB1E, відповідь у верхній частині навіть неможливий, а за допомогою кодування UTF-8 це було б 4 байти.
Кевін Круїссен

У виклику сказано, що символи є дійсною системою кодування ...
a'_ '20



0

Perl 6 (7 символів)

say '☺'

Я трохи згинаю правила, припускаючи, що \ n вітається, щоб уникнути швидкого безладу оболонки.


4
Ви впевнені, що вам потрібен цей космічний символ?
JB



0

PowerShell , 5 байт

якщо програма повинна виводити графік посмішки на обличчя.

'☺'

Спробуйте в Інтернеті!


PowerShell , 7 байт

якщо програма повинна вивести знак із кодом 1.

[char]1

Спробуйте в Інтернеті!


1
Чому б не просто '☺'? До речі, обличчя для мене не відображається в TIO або консолі
IT Delinquent

оскільки код для посмішки на обличчі не 1 у Повершелі. Спробуйте в Інтернеті!
маззи

1
Чи слід замість вашої відповіді відповідати "[Char] 9786"? Я дуже розгублений :-D
IT Delinquent

1
Га! Ти правий. Я думав, що я напишу програму, яка видає символ з кодом 1. Але ви можете інтерпретувати це як написання програми, яка видає смайлик.
маззи



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