Terinspirasi oleh pertanyaan SciFi.SE ini.
Latar belakang (dengan spoiler kecil):
Dalam film The Martian , protagonis Mark Watney menggunakan tabel ASCII untuk mencari nilai heksadesimal dari karakter ASCII sehingga ia dapat berusaha untuk berkomunikasi kembali ke Bumi. *
Tantangan
Tanpa input, outputkan tabel ASCII berikut persis seperti ini:
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
Baris terakhir adalah opsional. Dengan baris baru, md5 dari output adalah 58824a1dd7264c0410eb4d727aec54e1
. Tanpa itu 41b6ecde6a3a1324be4836871d8354fe
.
Jika ini membantu, ini adalah output dari ascii
perintah Linux dengan info penggunaan di bagian atas dipotong. Anda dapat membuat ulang ini di Ubuntu sebagai berikut:
sudo apt-get install ascii
ascii | tail -n+7
Anda tidak boleh menggunakan ascii
utilitas (atau yang serupa) dalam jawaban Anda.
Karena karakter ASCII sudah cukup kecil dengan meme konyol ini !
Saya sadar ini mirip dengan Mencetak tabel ASCII , tapi saya percaya format output dalam pertanyaan ini secara signifikan lebih kompleks dan menjamin pertanyaan yang berbeda.
* Catatan, saya belum melihat film ini.
sumber
ascii
utilitas dalam jawaban - jika demikian, lihat edit saya - tidak diizinkan.Jawaban:
JavaScript (ES6), 323
332 353Sunting Saya berhasil mempersingkat ini sedikit
Langkah 1, percaya atau tidak, menggunakan array 16 karakter lebih pendek dari
toString
+toUpperCase
Langkah 2, mengutak-atik untuk menggunakan
.map
alih-alihfor
, sehingga saya bisa mengubah semuanya menjadi fungsi ekspresi tunggal, avoding console.log dan / atau kembali.Sunting 2 Pindah DEL di tempat 0, ide dipinjam dari Cole Cameron
MD5: 41B6ECDE6A3A1324BE4836871D8354FE
Pixel sempurna, kataku
KURANGNYA
Uji
sumber
C,
307310308307305 byteAkhirnya bekerja 100%.
Keluaran:
Tidak Disatukan:
Cobalah di Ideone .
Edit: 2 byte lagi. Terima kasih banyak kepada Dan Allen dan Digital Trauma.
sumber
#include <stdio.h>
x,y,z=127;
dan mengganti 4 kejadian 127 dengan z. Menambahkan 6 karakter tetapi membutuhkan 8 pergi.Bubblegum , 535 byte
Program di atas menggunakan kompresi LZMA. Cobalah online!
sumber
C,
385384358 byteLelaki di atas memukul saya sampai memukul tetapi saya tetap ingin menyerah karena saya menikmati yang ini.
De-golf:
PEMBARUAN: mengganti var dengan j. Menyimpan byte;)
UPDATE2: Memotong beberapa halys tambahan dan memfungsikan cetakan cetak untuk menghemat beberapa byte.
sumber
s/HEX/Hex/
.thingy
c ;-PJavaScript ES6
432405398385sumber
${o} ${o} ${o+o+o+o} ${o} ${o}
.Golfscript, 225 byte
sumber
Python 2.7, 389 Bytes
Mungkin tidak akan mencoba dan memotong ini lagi, tapi itu menyenangkan untuk sampai sejauh ini.
sumber
Python 3.4, 216 Bytes
Juga valid Python 2.7. Menggunakan ide / saran FryAmTheEggman tentang curses.ascii.controlnames, yang menghemat hampir 100 byte.
sumber
Ruby (2.2.2p95), 277
295 306 331 364ungolfed
sumber
Microscript II , 1314 bytes
Mungkin jauh dari optimal.
sumber
JavaScript,
415413423 1411406402414 2412 byteSaya tidak tahu bagaimana cara mencetak karakter sebelum kode char 32, jadi daftarkan saja sebagai string.
Hash yang saya miliki sepertinya cocok (
41b6ecde6a3a1324be4836871d8354fe
).Demo + Tidak Digabungkan:
1 - jarak tetap
2 - jarak tetap lagi
sumber
MATLAB, 363 byte
Tidak sekecil C tetapi sebanding ...
sumber
/// , 998 byte
Cobalah online!
sumber
PHP ,
330321 byteCobalah online!
Lebih sedikit golf:
sumber
Common Lisp (SBCL), 309
Sebuah skrip yang akan dijalankan yang menampilkan berikut ke keluaran standar, yaitu. versi tanpa baris akhir final (md5: 41b6ecde6a3a1324be4836871d8354fe).
Detail
(0 11 22 31 40 49 59 69)
berisi posisi setiap kolom dalam satu garis, seperti yang diperoleh dengan memeriksa keluaran yang diinginkan. Ada banyak kasus sudut yang hanya lebih baik ditangani oleh hard-coding posisi yang tepat untuk setiap kolom dan membiarkannya~T
format arahan tabulasi sesuai kebutuhan.Karena nama karakter tergantung pada implementasi, kode ini hanya menargetkan penerjemah SBCL (saya diuji dengan CCL, yang menggunakan nama lain). Saya mengandalkan
char-name
sebagian besar karakter non-grafis, tetapi beberapa dari mereka memiliki pemetaan eksplisit untuk output yang diharapkan.Tidak disatukan
sumber