Улыбка! Просто улыбнись

16

Хорошо известно, что Brainf * ck очень плохо справляется с проблемами сложности Колмогорова, например, для печати «Hello world» требуется около 100 символов.

Тем не менее, могут быть тексты, в которых Brainf * ck просто очень хорош.

Теперь ваша задача - написать программу, которая не требует ввода данных и отображает следующее:

То есть смайлик (ASCII 1, если ваш браузер не отображает его).

Brainf * ck может сделать это в 2 символа.

+.

Попробуйте найти язык, который превосходит его!

Мы предполагаем, что ваша консоль может отображать этот символ (или он есть у вашего шрифта и т. Д.).

Самый короткий код выигрывает. Если будет больше одинаковой длины, первый выиграет, но я также поддержу остальных.

РЕДАКТИРОВАТЬ: я очень извиняюсь, я не думал, что первое сообщение прибывает в ближайшее время. Быстрое редактирование: язык должен быть закончен по Тьюрингу!

ВСЗ
источник
7
Я должен оспорить ваше описание вывода: хотя ваш код действительно выводит символ с двоичным кодом 1, он не кодируется в ASCII, а относится к некоторой кодировке кодовой страницы DOS, такой как CP850 или CP437. В любой современной консоли смайлик не появится, потому что современная == UTF-8. Ven
Свен

Ответы:

10

ЛОЖЬ (2)

1,

Все эти чтения о БФ окупились! Ложь - предок Брейнфука.

Люзер Дрог
источник
Ой! Странно, что никто не думал об этом до сих пор. :)
вс
1
Я должен был принять это, поскольку версии с обычным текстом и html на самом деле не были сделаны с языками программирования.
вс
Я пытался сделать это с BLC, но я не могу иметь никакого смысла из BLC. И даже машине Тьюринга с 1 состоянием требуется 4 или 5 элементов в кортеже.
luser droog
19

HTML:

Это не действительно язык программирования, но самое короткое из возможных решений.


источник
1
Хотя это больше не соответствует правилам, я все равно дам +1, потому что я торопился с вопросом и не думал об этом.
Vsz
Если вы хотите вместо этого вызвать этот php, как этот ответ, вероятно, все будет хорошо в соответствии с новыми правилами.
Мэтт
PHP выдаст бред, если вы просто попытаетесь его использовать .
jdstankosky
Работает в HTML + CSS, что нормально по новым правилам.
Адам
@ Adám Правила этого задания требуют полноты Тьюринга, что не подтверждается размещенной вами ссылкой.
pppery
12

Mathematica

Просто для удовольствия ...

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

smileys

DavidC
источник
1
В Mma, один символ ☺ также делает это
доктор Белизарий
@belisarius Как вставить без преобразования в ASCII?
DavidC
1
Я просто скопировал его :)
Доктор Белизарий
@belisarius Я также вырезал и вставил значки, но по какой-то причине был показан полный формат.
DavidC
1
Коммерческая стоимость составляет примерно 75 центов. Математическое значение zilch.
DavidC
11

простой текст, 1 символ

Потому что во многих ситуациях HTML является излишним.

(да, я знаю, что правила изменились)

ребенок кролика
источник
простой текст не завершается, что делает этот ответ недействительным.
pppery
8

С, 18 символов

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

main(c){puts(&c);}
ugoren
источник
7

Система Микронетики MUMPS 4.4 (7 символов)

w $c(1)
DaveShaw
источник
MUMPS? Ох, ужас ... Я даже не предполагал, что увижу это здесь. +1 только для чистого значения шока!
вс
@vsz, это единственный подходящий для гольфа язык, который я знаю, он часто побеждает самые распространенные языки :)
DaveShaw
5

Brainf * ck (только 2 символа)

+.
ВСЗ
источник
Конечно, я все равно приму решение длины 2.
vsz
Не могли бы вы объяснить, как это работает? Он должен вывести ASCII 1, который не предназначен для печати.
nyuszika7h
@ nyuszika7h: на многих консолях выводится смайлик для ASCII 1.
vsz
1
В самом деле? Я никогда не видел такой консоли. Бьюсь об заклад, они используют некоторые неясные кодировки.
nyuszika7h
5

Не бьет 2 символа, но:

PHP 11 символов.

<?=chr(1)?>

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

Запуск с php.exe в командной строке дает Γÿǁи размещение в браузере дает☺

Это не работает.

jdstankosky
источник
Вы также можете пойти по HTML-маршруту, который сделал m0nhawk.
Мистер Лама
@GigaWatt Вы не можете. Это выдает бред с использованием PHP. Вы даже пытались? Я попробовал это в CLI и браузере.
jdstankosky
У меня отлично работает. ideone.com/6wYzx9
Мистер Лама
Запуск с помощью php.exe в командной строке дает Γÿǁи размещение в браузере дает☺
jdstankosky
2
Если вы сделаете шестнадцатеричный дамп своего файла, вы увидите, что он был сохранен как представление смайлика ( \xE298BA) в юникоде , а не как \x01. Попробуйте вручную создать файл с одним \x01байтом и запустить его из командной строки с помощью PHP.
Мистер Лама
5

DC - 2 символа

1P

Это не требует каких-либо объяснений.

Форс
источник
4

Golfscript, 3 персонажа

"☺"

Не эксперт по гольфу, но я не верю, что есть способ преобразовать целое число в соответствующий символ ASCII, используя только 1 символ, поэтому кажется, что это самый короткий из возможных

Strigoides
источник
4

PHP (1)

Technically this is a valid PHP file (a web server will happily serve it).

Peter C
источник
3

LaTeX (51/77 characters)

Short solution

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

Good solution (Compile with latex main.tex):

\documentclass{book}
\usepackage{wasysym}
\begin{document}
\smiley
\end{document}
Martin Thoma
источник
The first one does not work because pure LaTeX cannot read unicode chars. Oddly enough, this does not work neither in XeLaTeX, nor in LuaLaTeX because the default font table does not contain this symbol. Please consider this: \documentclass{book} \usepackage{fontspec} \setmainfont{DejaVu Sans} \begin{document}☺\end{document} — and please specify the rendering engine you are using (pdfLaTeX) in the “good” solution.
Andreï Kostyrka
2

J (3 chars)

'☺'

The code require appropriate font.

According to Wikipedia

In the Wingdings font, the letter "J" is rendered as a smiley face (note this is distinct from the Unicode code point U+263A, which renders as ☺).

P̲̳x͓L̳
источник
Another variation is u:1.
FireFly
2

Q/k (9 chars)

Can't do it in 2 unfortunately.

-1"\001";

I seem to recall a bug in an older version of the interpreter which produced the other smile symbol in less characters. I'll look it up.

Edit: found the quirk. It only appears to work on windows versions of the interpreter:

q)1(1b);
☺
skeevey
источник
1

Burlesque - 6 Characters

,1L[sh

Explanation:

, pops stdin. 1L[ pushes one and convert to char (by codepoint) sh is used to switch to pretty format. (Otherwise it would print a leading ').

mroman
источник
1

Tcl, 1

Displays a ☺ with some other stuff.
There are rumors that this also works with PHP or other languages.

Johannes Kuhn
источник
1

Keg, 2 characters

Push the number 1 and print it. (Surprised that 1, also works; -1 from Lyxal.)

1,

Try it online!

Keg, 1 character

Keg is actually Turing-complete, and any unrecognized command acts as a push onto the stack.

Try it online!

a'_'
источник
It's actually 1, making it 2 bytes.
Lyxal
1

05AB1E, 2 characters

Just a boring hard-coding. It's encoded in CP437.

"☺

Try it online!

05AB1E, 2 bytes

Try it online!

a'_'
источник
You may want to include the encodings. Your top answer is only 2 bytes in an encoding like CP850 or CP437, which contains both the characters and " in their codepage. But using the 05AB1E encoding, the top answer isn't even possible, and using the UTF-8 encoding it would be 4 bytes.
Kevin Cruijssen
The challenge says that characters are a valid encoding system...
a'_'
1

Stax, 2 bytes

1]

Run and debug it

Nanajnaiojneg
источник
The Stax ] doesn't work prefixly - it pops an item from the stack and creates a list from it. So you might alternatively need 1] for the program.
a'_'
0

Perl 6 (7 chars)

say '☺'

I'm bending the rules a little by assuming that a \n is welcome to avoid shell prompt mess.

gfldex
источник
4
Are you sure you need that space character?
J B
0

plain TeX (5 chars):

Other my answer, now on plain TeX:

☺\bye

источник
Does not work because pure TeX is ASCII-only.
Andreï Kostyrka
0

PowerShell, 5 bytes

if a program should output the smile face char.

'☺'

Try it online!


PowerShell, 7 bytes

if a program should output the char with code 1.

[char]1

Try it online!

mazzy
источник
1
Why not just '☺' ? By the way, the face isn't rendered for me in TIO or the console
I.T Delinquent
because the code for the smile face is not 1 in the Powershell. Try it online!
mazzy
1
Should your answer be '[Char]9786' instead then? I'm really confused :-D
I.T Delinquent
1
Ha! You are right. I thought I'd write a program that outputs a character with code 1. But you can interpret it as writing a program that outputs a smiley face.
mazzy
0

W, 2 bytes

After the chr function, this actually returns a smiley face! (Because W uses CP437)

1C

A few more 2-byters:

☺"
'☺
a'_'
источник