Sorrir! Apenas sorria

14

É sabido que Brainf * ck é muito ruim em problemas de complexidade de Kolmogorov, por exemplo, requer cerca de 100 caracteres apenas para imprimir "Hello world".

No entanto, pode haver textos em que o Brainf * ck seja muito bom.

Sua tarefa agora é escrever um programa que não recebe entrada e exibe o seguinte:

Ou seja, um rosto sorridente (ASCII 1, se o navegador não o renderizar).

O Brainf * ck pode fazer isso em 2 caracteres.

+.

Tente encontrar um idioma que o supere!

Assumimos que seu console pode realmente exibir esse caractere (ou sua fonte possui etc.).

O menor código vence. Se houver mais do mesmo comprimento, as primeiras vencem, mas também votarei nas outras.

EDIT: Sinto muito, eu não acho que o primeiro post chega tão cedo. Uma edição rápida: o idioma deve estar completo em Turing!

vsz
fonte
4
Devo contestar sua descrição da saída: Embora seu código realmente exiba um caractere com o código binário 1, ele não é codificado em ASCII, mas pertence a algumas codificações de páginas de códigos do DOS, como CP850 ou CP437. Em qualquer console moderno, o smiley não aparecerá, porque modern == UTF-8. ☺
Sven

Respostas:

10

FALSO (2)

1,

Toda essa leitura sobre BF valeu a pena! False é um ancestral de Brainfuck.

luser droog
fonte
Ai! Estranho que ninguém pensasse nisso até agora. :)
vsz
1
Eu tive que aceitar este, pois as versões com texto sem formatação e html não eram realmente feitas com linguagens de programação.
vsz 17/11/12
Tentei fazer isso com o BLC, mas não consigo entender o BLC. E mesmo uma máquina de Turing de 1 estado precisa de 4 ou 5 elementos na tupla.
Luser droog 17/11/2012
19

HTML:

Não é realmente uma linguagem de programação, mas a solução mais curta possível.


fonte
1
Embora ele não se encaixe mais nas regras, ainda darei um +1 porque estava respondendo rapidamente à minha pergunta e não pensei nisso.
vsz 8/11/12
Se você quiser chamar esse php, como esta resposta, provavelmente estaria tudo bem sob as novas regras.
Matt
O PHP produzirá sem sentido se você simplesmente tentar usar .
Jdstankosky #
Funciona em HTML + CSS, o que é aceitável sob as novas regras.
Adám 15/11/16
@ Adám As regras para esse desafio exigem a Turing Completeness, que o link que você postou não prova.
pppery
12

Mathematica

Apenas por diversão...

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

smileys

DavidC
fonte
1
No MMA, a um caractere ☺ também faz isso
Dr. belisarius
@belisarius Como você cola sem convertê-lo para ASCII?
11389
1
Eu só copiar e colou-lo :)
Dr. belisarius
@belisarius Eu também recortei e colei os ícones, mas por algum motivo o formato completo foi mostrado.
DavidC
1
O valor comercial é de aproximadamente 75 centavos. O valor matemático é zilch.
DavidC
11

texto simples, 1 caracter

Porque o html é um exagero em muitas situações.

(sim, eu sei que as regras mudaram)

coelho bebê
fonte
o texto sem formatação não está completo, tornando esta resposta inválida.
pppery
8

C, 18 caracteres

Longe de derrotar Brainf ** k, mas o melhor que C pode obter (eu acho).
Funciona apenas em plataformas little-endian, deve ser executado sem parâmetros.

main(c){puts(&c);}
Ugoren
fonte
7

Sistema Micronetics MUMPS 4,4 (7 caracteres)

w $c(1)
DaveShaw
fonte
CAXUMBA? Oh, o horror ... eu nunca imaginei que o verei aqui. +1 apenas pelo valor de choque puro!
Vsz
@vsz é a única Golf linguagem adequada eu sei, que muitas vezes supera a maioria dos langs comuns :)
DaveShaw
5

Brainf * ck (apenas 2 caracteres)

+.
vsz
fonte
Claro, ainda aceitarei uma solução de comprimento 2.
vsz 08/11/12
Você poderia explicar como isso funciona? Ele deve gerar o ASCII 1, que é um caractere não imprimível.
nyuszika7h
@ nyuszika7h: muitos consoles exibem um sorriso para o ASCII 1.
vsz
Verdade? Eu nunca vi esse console. Aposto que eles usam algum charset obscuro.
nyuszika7h
5

Não bate 2 caracteres, mas:

Caracteres do PHP 11.

<?=chr(1)?>

Para todo mundo dizendo que você pode simplesmente colocar o smiley no php e ele produzirá :

Executá-lo com php.exe na linha de comando fornece Γÿǁe colocá-lo no navegador fornece☺

Isso não funciona.

jdstankosky
fonte
Você também pode seguir a rota HTML que o m0nhawk fez.
Mr. Llama
@GigaWatt Você não pode. Ele lança sem sentido usando PHP. Você tentou mesmo? Eu tentei na CLI e no navegador.
Jdstankosky
Funciona bem para mim. ideone.com/6wYzx9
Mr. Llama
Executá-lo com php.exe na linha de comando dá Γÿǁe colocando-o no navegador dá☺
jdstankosky
2
Se você fizer um dump hexadecimal do seu arquivo, verá que ele foi salvo como representação unicode de um smiley ( \xE298BA), não como \x01. Tente criar manualmente um arquivo com um único \x01byte e executá-lo na linha de comando com o PHP.
Mr. Llama
5

DC - 2 caracteres

1P

Não requer nenhuma explicação.

Para s
fonte
4

PHP (1)

Tecnicamente, este é um arquivo PHP válido (um servidor da Web servirá com prazer).

Peter C
fonte
3

Golfscript, 3 caracteres

"☺"

Não sou especialista em golfscript, mas não acredito que haja uma maneira de converter um número inteiro no caractere ASCII correspondente usando apenas 1 caractere; portanto, parece que esse é o menor valor possível

Strigoides
fonte
2

J (3 caracteres)

'☺'

O código requer uma fonte apropriada.

De acordo com a Wikipedia

Na fonte Wingdings, a letra "J" é renderizada como uma carinha sorridente (observe que isso é diferente do ponto de código Unicode U + 263A, que é renderizado como ☺).

P̲̳x͓L̳
fonte
Outra variação é u:1.
FireFly
2

Q / k (9 caracteres)

Infelizmente não posso fazê-lo em 2.

-1"\001";

Eu me lembro de um bug em uma versão mais antiga do intérprete que produzia o outro símbolo de sorriso em menos caracteres. Eu vou procurar.

Edit: encontrou a peculiaridade. Parece funcionar apenas nas versões do interpretador do Windows:

q)1(1b);
☺
skeevey
fonte
2

LaTeX (51/77 caracteres)

Solução curta

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

Boa solução (compilar com latex main.tex):

\documentclass{book}
\usepackage{wasysym}
\begin{document}
\smiley
\end{document}
Martin Thoma
fonte
O primeiro não funciona porque o LaTeX puro não pode ler caracteres unicode. Curiosamente, isso não funciona nem no XeLaTeX, nem no LuaLaTeX porque a tabela de fontes padrão não contém esse símbolo. Por favor, considere isto: \documentclass{book} \usepackage{fontspec} \setmainfont{DejaVu Sans} \begin{document}☺\end{document}- e especifique o mecanismo de renderização que você está usando (pdfLaTeX) na solução “boa”.
Andreï Kostyrka 14/11
1

Burlesco - 6 caracteres

,1L[sh

Explicação:

,aparece stdin. 1L[empurra um e converter para char (por codepoint) shé usado para mudar para o formato bonito. (Caso contrário, seria impresso um líder ').

mroman
fonte
1

Tcl, 1

Exibe ☺ com outras coisas.
Há rumores de que isso também funciona com PHP ou outras linguagens.

Johannes Kuhn
fonte
1

Arduino, 24

char a=1;Serial.print(a)
Timtech
fonte
0

Perl 6 (7 caracteres)

say '☺'

Estou dobrando as regras um pouco assumindo que a \ n é bem-vindo para evitar confusão no prompt do shell.

gfldex
fonte
4
Tem certeza de que precisa desse caractere de espaço?
JB
0

TeX simples (5 caracteres):

Outra minha resposta, agora em TeX simples:

☺\bye

fonte
Não funciona porque o TeX puro é apenas ASCII.
Andreï Kostyrka 14/11
0

JavaScript, 10 bytes

alert("☺")

insira a descrição da imagem aqui

Pete Arden
fonte
0

SmileBASIC, 3 caracteres

?"☺

O que outras pessoas estão dizendo

12Me21
fonte