Inspirado por esta pergunta SciFi.SE.
Fundo (com spoiler menor):
No filme The Marciano , o protagonista Mark Watney usa uma tabela ASCII para procurar valores hexadecimais de caracteres ASCII para que ele possa tentar se comunicar de volta à Terra. *
Desafio
Sem entrada, produza a seguinte tabela ASCII exatamente desta maneira:
Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex
0 00 NUL 16 10 DLE 32 20 48 30 0 64 40 @ 80 50 P 96 60 ` 112 70 p
1 01 SOH 17 11 DC1 33 21 ! 49 31 1 65 41 A 81 51 Q 97 61 a 113 71 q
2 02 STX 18 12 DC2 34 22 " 50 32 2 66 42 B 82 52 R 98 62 b 114 72 r
3 03 ETX 19 13 DC3 35 23 # 51 33 3 67 43 C 83 53 S 99 63 c 115 73 s
4 04 EOT 20 14 DC4 36 24 $ 52 34 4 68 44 D 84 54 T 100 64 d 116 74 t
5 05 ENQ 21 15 NAK 37 25 % 53 35 5 69 45 E 85 55 U 101 65 e 117 75 u
6 06 ACK 22 16 SYN 38 26 & 54 36 6 70 46 F 86 56 V 102 66 f 118 76 v
7 07 BEL 23 17 ETB 39 27 ' 55 37 7 71 47 G 87 57 W 103 67 g 119 77 w
8 08 BS 24 18 CAN 40 28 ( 56 38 8 72 48 H 88 58 X 104 68 h 120 78 x
9 09 HT 25 19 EM 41 29 ) 57 39 9 73 49 I 89 59 Y 105 69 i 121 79 y
10 0A LF 26 1A SUB 42 2A * 58 3A : 74 4A J 90 5A Z 106 6A j 122 7A z
11 0B VT 27 1B ESC 43 2B + 59 3B ; 75 4B K 91 5B [ 107 6B k 123 7B {
12 0C FF 28 1C FS 44 2C , 60 3C < 76 4C L 92 5C \ 108 6C l 124 7C |
13 0D CR 29 1D GS 45 2D - 61 3D = 77 4D M 93 5D ] 109 6D m 125 7D }
14 0E SO 30 1E RS 46 2E . 62 3E > 78 4E N 94 5E ^ 110 6E n 126 7E ~
15 0F SI 31 1F US 47 2F / 63 3F ? 79 4F O 95 5F _ 111 6F o 127 7F DEL
A nova linha final é opcional. Com a nova linha, o MD5 da saída é 58824a1dd7264c0410eb4d727aec54e1
. Sem isso é 41b6ecde6a3a1324be4836871d8354fe
.
Caso isso ajude, esta é a saída do ascii
comando Linux, com as informações de uso na parte superior cortadas. Você pode recriar isso no Ubuntu da seguinte maneira:
sudo apt-get install ascii
ascii | tail -n+7
Você não pode usar o ascii
utilitário (ou similar) em suas respostas.
Porque os caracteres ASCII são pequenos Já chega desse meme bobo !
Estou ciente de que isso é semelhante a Imprimir a tabela ASCII , mas acredito que a formatação da saída nesta pergunta é significativamente mais complexa e justifica uma pergunta diferente.
* Nota, ainda não vi este filme.
fonte
ascii
utilitário nas respostas - se sim, veja minha edição - não é permitido.Respostas:
JavaScript (ES6),
323333353Editar consegui encurtar este um pouco
Passo 1, acredite ou não, utilizar um array de 16 caracteres é menor do que
toString
+toUpperCase
Passo 2, brincar para usar
.map
em vez defor
, de modo que pode transformar tudo para uma função de expressão única, avoding console.log e / ou retorno.Editar 2 Movido DEL no lugar 0, idéia emprestada de Cole Cameron
MD5: 41B6ECDE6A3A1324BE4836871D8354FE
Pixel perfeito, eu diria
MENOS GOLFE
Teste
fonte
C,
307310308307305 bytesFinalmente trabalhando 100%.
Saída:
Ungolfed:
Experimente em Ideone .
Edit: mais 2 bytes. Muito obrigado a Dan Allen e Digital Trauma.
fonte
#include <stdio.h>
x,y,z=127;
e substituir as 4 ocorrências de 127 por z. Adiciona 6 caracteres, mas tira 8 de distância.Bubblegum , 535 bytes
O programa acima usa a compactação LZMA. Experimente online!
fonte
C,
385384358 bytesO cara acima me venceu, mas eu ainda queria enviar, porque eu gostei desse.
De-golfe:
UPDATE: substituiu um var por j. Salva um byte;)
UPDATE2: Aparou algumas coisas extras e funcionou uma impressão para economizar alguns bytes.
fonte
s/HEX/Hex/
.thingy
c ;-PJavaScript ES6
432405398385fonte
${o} ${o} ${o+o+o+o} ${o} ${o}
.Golfscript, 225 bytes
fonte
Python 2.7, 389 bytes
Provavelmente não vou mais tentar reduzir isso, mas foi divertido chegar até aqui.
fonte
Python 3.4, 216 bytes
Também válido Python 2.7. Usado ideia / sugestão de FryAmTheEggman sobre curses.ascii.controlnames, o que economiza cerca de 100 bytes.
fonte
Ruby (2.2.2p95), 277
295 306 331 364destroçado
fonte
Microscript II , 1314 bytes
Provavelmente longe de ser o ideal.
fonte
JavaScript,
415413423 1411406402414 2412 bytesEu não conseguia descobrir como imprimir os caracteres antes do código 32, apenas os listei como uma sequência.
O hash que eu tenho parece corresponder (
41b6ecde6a3a1324be4836871d8354fe
).Demo + Ungolfed:
1 - espaçamento fixo
2 - espaçamento novamente fixo
fonte
MATLAB, 363 bytes
Não tão pequeno quanto C, mas comparável ...
fonte
/// , 998 bytes
Experimente online!
fonte
PHP ,
330321 bytesExperimente online!
Menos golfe:
fonte
Lisp comum (SBCL), 309
Um script a ser executado que gera o seguinte na saída padrão, ie. a versão sem uma nova linha final (md5: 41b6ecde6a3a1324be4836871d8354fe).
Detalhes
(0 11 22 31 40 49 59 69)
contém a posição de cada coluna em uma linha, obtida pela inspeção da saída desejada. Havia muitos casos de canto que são simplesmente melhor tratados, codificando a posição exata de cada coluna e deixando o~T
diretiva de formato tabular conforme necessário.Como os nomes dos caracteres dependem da implementação, esse código é direcionado apenas ao intérprete SBCL (testei com o CCL, que usa outros nomes). Eu confio em
char-name
maioria dos caracteres não gráficos, mas alguns deles têm mapeamentos explícitos para a saída esperada.Ungolfed
fonte