Zainspirowany tym pytaniem SciFi.SE.
Tło (z niewielkim spoilerem):
W filmie Marsjanin Mark Watney używa tablicy ASCII do wyszukiwania wartości szesnastkowych znaków ASCII, aby mógł podjąć próbę nawiązania łączności z Ziemią. *
Wyzwanie
Bez danych wejściowych wypisz następującą tabelę ASCII dokładnie tak:
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
Ostateczna nowa linia jest opcjonalna. W nowym wierszu md5 wyniku to 58824a1dd7264c0410eb4d727aec54e1
. Bez niej jest 41b6ecde6a3a1324be4836871d8354fe
.
Jeśli to pomaga, jest to wynik działania ascii
polecenia Linux z odciętymi informacjami o użytkowaniu u góry. Możesz odtworzyć to na Ubuntu w następujący sposób:
sudo apt-get install ascii
ascii | tail -n+7
Nie możesz używać ascii
narzędzia (lub podobnego) w swoich odpowiedziach.
Ponieważ znaki ASCII są małe Wystarczy tego głupiego memu !
Wiem, że jest to podobne do wydruku tabeli ASCII , ale uważam, że formatowanie wyniku w tym pytaniu jest znacznie bardziej złożone i uzasadnia inne pytanie.
* Uwaga, nie widziałem jeszcze tego filmu.
źródło
ascii
narzędzia w odpowiedziach - jeśli tak, zobacz moją edycję - jest to niedozwolone.Odpowiedzi:
JavaScript (ES6), 323
332 353Edycja Udało mi się trochę to skrócić
Krok 1, wierzcie lub nie, używając tablicy 16 znaków jest krótszy niż
toString
+toUpperCase
Krok 2, bawiąc się, aby użyć
.map
zamiast tegofor
, dzięki czemu mogę przekształcić wszystko w funkcję pojedynczego wyrażenia, avodowanie console.log i / lub return.Edytuj 2 Przeniesiono DEL w miejscu 0, pomysł zapożyczony od Cole'a Camerona
MD5: 41B6ECDE6A3A1324BE4836871D8354FE
Powiedziałbym, że piksel jest idealny
MNIEJ ZŁOTA
Test
źródło
DO,
307310308307305 bajtówWreszcie działa w 100%.
Wydajność:
Nie golfowany:
Wypróbuj na Ideone .
Edycja: jeszcze 2 bajty. Ogromne podziękowania dla Dana Allena i Digital Trauma.
źródło
#include <stdio.h>
x,y,z=127;
i zamienisz 4 wystąpienia 127 na z. Dodaje 6 znaków, ale zabiera 8.Bubblegum , 535 bajtów
Ten program wykorzystuje kompresję LZMA. Wypróbuj online!
źródło
C,
385384358 bajtówFacet z góry pobił mnie na pięcie, ale nadal chciałem się poddać, ponieważ podobało mi się to.
Gra w golfa:
AKTUALIZACJA: zmieniono var na j. Zapisano bajt;)
UPDATE2: Odciąłem kilka dodatkowych rzeczy i uruchomiłem funkcję drukowania, aby zaoszczędzić trochę bajtów.
źródło
s/HEX/Hex/
.thingy
c ;-PJavaScript ES6
432405398385źródło
${o} ${o} ${o+o+o+o} ${o} ${o}
.Golfscript, 225 bajtów
źródło
Python 2.7, 389 bajtów
Prawdopodobnie nie będę już próbował tego przycinać, ale fajnie było je zdobyć tak daleko.
źródło
Python 3.4, 216 bajtów
Również ważny Python 2.7. Wykorzystano pomysł / sugestię FryAmTheEggman na temat curses.ascii.controlnames, która pozwala zaoszczędzić prawie 100 bajtów.
źródło
Ruby (2.2.2p95), 277
295 306 331 364bez golfa
źródło
Microscript II , 1314 bajtów
Prawdopodobnie daleki od optymalnego.
źródło
JavaScript,
415413423 1411406402414 2412 bajtówNie mogłem wymyślić, jak wydrukować znaki przed kodem znakowym 32, więc po prostu podałem je jako ciąg znaków.
Hash, który mam, wydaje się pasować (
41b6ecde6a3a1324be4836871d8354fe
).Demo + Ungolfed:
1 - ustalone odstępy
2 - ponownie ustalone odstępy
źródło
MATLAB, 363 bajty
Nie tak mały jak C, ale porównywalny ...
źródło
/// , 998 bajtów
Wypróbuj online!
źródło
PHP ,
330321 bajtówWypróbuj online!
Mniej golfa:
źródło
Common Lisp (SBCL), 309
Skrypt, który należy uruchomić, który wypisuje następujące dane na standardowe wyjście, tj. wersja bez ostatniego nowego wiersza (md5: 41b6ecde6a3a1324be4836871d8354fe).
Detale
(0 11 22 31 40 49 59 69)
zawiera pozycję każdej kolumny w linii, uzyskaną poprzez sprawdzenie pożądanego wyniku. Było wiele przypadków narożnych, które są po prostu lepiej obsługiwane przez zakodowanie dokładnej pozycji dla każdej kolumny i pozostawienie~T
tabeli formatowania w razie potrzeby.Ponieważ nazwy znaków są zależne od implementacji, ten kod jest skierowany tylko do interpretera SBCL (testowałem z CCL, który używa innych nazw). Opieram się
char-name
na większości znaków innych niż graficzne, ale niektóre z nich mają wyraźne odwzorowania na oczekiwany wynik.Nie golfił
źródło