Como alguns de vocês devem saber, para obter um idioma no maravilhoso Try It Online de Dennis ! Olá, mundo! programa é obrigatório. Recentemente, Dennis criou uma maneira de carregar esses programas no site. Aqui está uma pasta JSON dos caracteres usados nesses programas, por frequência, em 27 de julho de 2017.
Alguns desses personagens precisam de um pouco de amor, então seu desafio é produzir Olá, Mundo! (de preferência em um idioma envolvido nesse processo), usando apenas os caracteres especificados abaixo. Esses caracteres são todos os caracteres usados entre 10
e 99
(inclusive) horas, junto com os dois caracteres mais comuns 0
e , porque estou me sentindo bem.
0 $&*?ABCDEFGIJKLNPQRSTUXYZ\`gjkqwxyz{}÷≤≥=║_
Seu uso do personagem deve ser baseado em sua aparência em um programa normal, não em seu valor de ponto de código ou byte.
Você deve usar pelo menos um caractere desse conjunto, para que programas com comprimento 0 sejam inválidos.
Isso é código-golfe , então a resposta mais curta em bytes vence.
fonte
Respostas:
SOGL V0.12 ,
897568 bytesExperimente aqui!
Nota: sempre que
q
ou a saída for mencionada aqui, ela não será exibida, pois a saída de popping (qualquer um dosoOpP
) não está disponível ou gera uma nova linha precedente.Explicação (desatualizada, o que mudou é que o "H" é impresso usando as letras do alfabeto):
Curiosidade: todos os caracteres dos caracteres permitidos estão na página de códigos SOGLs: D
fonte
palenChars.txt
) são mais atualizado aquiPerl 5 , 76 bytes
Isso usa um recurso que foi descontinuado, mas funciona localmente no meu terminal (que é a versão 5.18.2, conforme observado). Nas versões mais antigas do Perl,
?\w?
é um sinônimo/\w/
que me dá acesso à correspondência regexp e tenho caracteres suficientes para$&
(última correspondência) e$`
(texto anterior à última correspondência). Eu preciso deles para conseguir oO
. Gero isso criando umaglob
referência ($_=\*G
que, convertida em um escalar, é algo parecidoGLOB(0x7ffb728028d0)
). Quando estiver dentro$_
,?B?
corresponderá aoB
e$`
conteráGLO
, eu posso corresponder ao\w$
que seria armazenadoO
em$&
que é inserido nas seqüências de caracteres que estou executando em seqüência de caracteres - AND para criar o restante do texto, o corpo da sequência é minúsculo\L
.Experimente online! - usa
/\w/
no lugar de?\w?
como a versão do Perl no TIO é muito nova.Perl 5 , 65 bytes
Isso é um pouco mais barato, pois se baseia no nome do arquivo no TIO (que é
.code.tio
), então eu realmente não acho que isso esteja competindo, mas fiquei feliz com o resultado!Experimente online!
fonte
-p
bem. Bom trabalho, é isso que eu estava esperando quando eu perguntei isto :)Unário , 7 * 10 182 bytes
Unário é o Brainfuck convertido em binário convertido em unário, usando
0
como contador. Essencialmente, ele condensa um programa Brainfuck em um número e a saída é esse número de0
s. Eles geralmente são programas muito grandes.Não colarei o programa aqui porque não sei quanto texto o SE permite, mas aposto que é menos que isso. Em vez disso, colarei o número exato de zeros nesta resposta:
Como esta é uma resposta bastante barata, garantida para não ser a mais curta, e eu simplesmente a copiei , estou fazendo deste um post no wiki.
fonte
05AB1E ,
13710695 bytesExperimente online!
-31 graças a @Adnan por apontar que eu poderia usar a base 108.
- ?? obrigado a @Riley por apontar algumas coisas erradas.
Versão antiga (método diferente):
05AB1E ,
211186166 bytesExperimente online!
Haha! E AQUI EU PENSEI QUE ESOLANGS NÃO ESTAVA EM CHANCES PLAUSÍVEL!
Primeiro, temos 255 armazenados no X:
Então, usando o mesmo truque de comprimento, pressionamos:
1296995323340359595058728869715
Onde apenas usamos
0<space>
o truque de comprimento para os zeros.Finalmente, empurramos os 255 que armazenamos e convertemos de 255 para a base 10 :
Ainda jogando golfe usando os outros caracteres permitidos e duplicação, levará um minuto.
fonte
Beatnik , 148 bytes
Experimente online!
Explicação
Beatnik baseia a instrução executada com base na pontuação scrabble da palavra. Aqui está uma explicação resumida:
fonte
Moorhens (v2.0),
3423983923866749716 bytesEu acho que isso pode ser um pouco de golfe, Moorhens não é uma linguagem fácil de se trabalhar.
Explicação
Moorhens é uma linguagem baseada em palavras do dicionário. Cada palavra corresponde a uma operação baseada em seu hash. As cinco operações usadas aqui são
xU
,ER
,XI
,KA
, eAA
xU
incrementa os TOSER
coloca um novo zero na pilha.XI
diminui os TOSKA
duplica os TOSAA
rola o TOS para o fundoPressionamos cada letra com aplicações sucessivas dessas operações.
fonte
Glifo , 480 bytes
Experimente online!
fonte
Headsecks , 78 bytes
fonte
JavaScript duplo, 318 bytes
Não tenho certeza se isso é permitido, eu não poderia fazê-lo usando o intérprete JavaScript uma vez. É semelhante ao uso,
eval()
mas estou usando o intérprete duas vezes: (Experimente no console para obter o resultado impresso novamente)Experimente online!
Avalia para:
Experimente online!
O que avalia como
Hello, World!
fonte
Smallf ** k , 266 bytes:
Na verdade, os personagens são meio irrelevantes. É apenas uma questão de saber se cada caractere tem um ponto de código par ou um ponto de código ímpar. Assim, fiz um esforço para usar todos os caracteres disponíveis (exceto os caracteres multibyte) (embora, como foi randomizado, não fiz um esforço para garantir isso).
fonte
ord
e 0 para aindaord
) assim que você poderia dizer que este é 33.25 bytes xD'5'
ocupar o ponto de código regular'A'
, você não poderá usar'5'
.Pyke ,
133144 bytesExperimente online!
Uma bagunça horrível de código que quase certamente pode ser reduzida ... Constrói um caractere de cada vez.
fonte
dc ,
164162 bytesExperimente online!
Provavelmente existe uma abordagem melhor / mais interessante. Eu tentei usar o truque ASCII + 256 que
dc
possui, mas que também gera caracteres adicionais (mesmo que não sejam impressos), e quando cheguei em 'o', o maravilhosamente primo 111, tive problemas até para obter um valor de 111+ (múltiplo de 256) que foi fatorado de maneira limpa. Então, aqui está uma solução bastante direta (embora possível, sempre que possível):In
dc
,z
é um comando que empurra a profundidade da pilha para a pilha. Isso significa que podemos usá-lo como um incremento. É assim que eu crio a maioria dos meus valores ASCII para este desafio (impresso comP
), com o qual eu empurro para pilhas nomeadasS
e coloco de volta na pilha principalL
.dc
permite usar os valores hexadecimais AF, mesmo quando a raiz de entrada é decimal (padrão).Felizmente, nossa primeira carta, 72, é um múltiplo de 12, por isso salvei um byte ou dois aqui multiplicando 6 * 12 e imprimindo imediatamente (Minha versão de 164 bytes utilizou a multiplicação desde o início para obter 72 ('H'), o que era um pouco inteligente, mas um resquício de uma tentativa anterior e um desperdício de bytes. Agora, começo incrementando e economizando espaço, ponto de exclamação e vírgula, que estão com defeito e, portanto, ainda não podem ser impressos. Em seguida, chego ao 'H', que imprimo imediatamente, antes de chegar ao 'W', que devo guardar para mais tarde.zzzzzzzC*P
).Simplesmente imprimo quando clico no 'e', depois incremento até 'l'. Imprimo dois e guardo um. Quando eu faço-o para 'o', primeiro eu pensei que eu teria que salvar um daqueles para mais tarde, mas tudo é tipo de em ordem neste momento. Imprimo um 'o', recupero minha vírgula, espaço e 'W' mais cedo, e agora estou de volta ao 'o'. Imprimo isso e incremento alguns até o valor mais alto necessário, 'r' (114), que imprimo antes de carregar e imprimir o 'l' que coloquei anteriormente.
Quase pronto! 'd' é o valor ASCII 100, que é facilmente obtido multiplicando 10 x 10 (menos bytes do que armazená-lo anteriormente e carregá-lo agora). Valor hexadecimal
A
é 10, como é a nossa raiz de entrada que podemos recuperar com o comandoI
. Multiplique-os, imprima e carregue e imprima nosso ponto de exclamação anteriormente. Olá Mundo!fonte