Роздрукуйте символьний мінус свого коду


18

(Це варіант щодо друку негативу коду , який мені дуже сподобався! Завдяки Мартіну Бюттнеру ♦ - майже весь цей текст є його.)

Розглянемо символи наступними символами для друку ASCII (зауважте, що пробіл включено):

 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

І буквено - цифрові бути наступні:

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Розглянемо квадрат друкованих символів ASCII для довжини сторони N, наприклад:

ONE, 
{two}
&3,+=
!four
f|ve.

Ми також вимагаємо, щоб кожен рядок і кожен стовпець містили принаймні один символ і одну буквено-цифрову. (Наведений вище приклад задовольняє це.)

Ми визначаємо символічний мінус такого квадрата як квадрат однакового розміру, де кожен символ замінюється буквено-цифровим і навпаки. Наприклад, наступним буде припустимий символічний мінус вищевказаного прикладу:

[&]OK
a...b
1/100
i@#$%
(R) z

Вибір конкретних персонажів не має значення, якщо вони перебувають у вищеназваних категоріях.

Змагання

Ваше завдання - написати програму з квадратним вихідним кодом довжиною сторони N> 1, яка виводить на STDOUT символьний мінус свого вихідного коду. Пробіли повинні бути надруковані. Ви можете або не можете надрукувати один простий новий рядок.

Також застосовуються звичайні правила кволі, тому ви не повинні читати власний вихідний код прямо чи опосередковано. Так само не слід приймати середовище REPL, яке автоматично друкує значення кожного введеного виразу.

Переможець - програма з найнижчою стороною N. У разі вирівнювання виграє подання з найменшими символами у вихідному коді. Якщо все-таки є нічия, рання відповідь виграє.


Це справді виклик типу "quine", оскільки вихід не повинен бути вихідним кодом будь-якого типу?
Ліам

Добре, я не думаю, що це насправді.
Лука

@LiamNoronha Я вважаю це узагальненою quine тим, що вихід є функцією вихідного коду, і застосовуються стандартні правила quine.
Мартін Ендер

1
Визначте "читання власного вихідного коду"; якщо є команда, яка, скажімо, копіює символи на висновок, чи це буде екземпляр сказаного "читання"?
Conor O'Brien

Відповіді:


11

GolfScript, 3 × 3 (4 символи)

4,m
`3/
n*o

Спробуйте його онлайн на веб-сайті GolfScript .

Вихід

[0 
1 2
 3]

Як це працює

4,  # Push the array [0 1 2 3].
  m # Undefined token. Does nothing.
`   # Push the string representation of the array. Pushes "[0 1 2 3]".
 3/ # Split into chunks of length 3. Pushes ["[0 " " 1 " "2 3]"].
n*  # Join the chunks, separated by linefeeds. Pushes the output.
  o # Undefined token. Does nothing.

11

CJam, 3 × 3 (5 символів)

[5,
S*3
/N*

Спробуйте його в Інтернеті в інтерпретаторі CJam .

Як це працює

[   e# Unmatched [. Does nothing.
 5, e# Push [0 1 2 3 4].
S*  e# Join the integers, separating by spaces. Pushes "0 1 2 3 4".
  3 e#
/   e# Split into chunks of length 3. Pushes ["0 1" " 2 " "3 4"].
 N* e# Join the chunks, separated by linefeeds. Pushes the output.

Вихід

0 1
 2 
3 4

10

Піт, 3х3, 4 символи

S]1
.5;
S]1

Вихід:

[1]
0.5
[1]

Пояснення:

  • S сортує список одного елемента ]1
  • Числовий літерал .5надрукується як 0.5, ;закінчує оператор (нічого не робить в цьому випадку)

Я хоч довго і наполегливо <alphanum><symbol><alphanum>ставився до того, як я міг потрапити в Pyth або CJam. Мені ніколи не спадало на думку використовувати поплавці ... Приємна робота!
Денніс

5

C ++, 18 x 18

"Завжди вибирайте найгірший інструмент для роботи."

#include<cstdio>  
int main(){ for  (
int line =  0lu;  
1lu*line <  18l;  
1lu*line++){pri\  
ntf(line == 0lu * 
123*line? "\x41.\\
x2e\x02e...\x2e\\ 
x42\x02e...\x2e.\ 
CDE\x00a":  14l!= 
1lu*line?".\x2e.\\
x46\x02e...\x47""\
HIJ\x02e..""KLM"  
 /*O*/"\n":  /*The
bad code:*/"NOP.\ 
QRS\x054." "UVW\  
XYZ\x02e" "\x2e\\ 
x2e\x00a"); 0lu;}}

Вихід:

A.......B......CDE
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
NOP.QRST.UVWXYZ...
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.