打印代码的负号


18

(这是“ 打印否定代码”的一种变体,我很喜欢它!感谢MartinBüttner♦ -几乎所有文本都是他的。)

让我们考虑这些符号为以下可打印的ASCII字符(请注意其中包含空格):

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

字母数字是这些:

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

考虑边长为N的正方形可打印ASCII字符,如下所示:

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

我们还要求每一行和每一列至少包含一个符号和一个字母数字。(以上示例满足了此要求。)

我们将此类正方形的符号负数定义为相同大小的正方形,其中每个符号均被字母数字代替,反之亦然。例如,以下将是上述示例的有效符号否定符号:

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

特定字符的选择无关紧要,只要它们在上述类别中即可。

挑战

您的任务是编写一个边长为N> 1的方形源代码程序,该程序会将其源代码的符号负输出到STDOUT。必须打印尾随空格。您可能会或可能不会打印单个尾随换行符。

普通的规则也适用,因此您不得直接或间接阅读自己的源代码。同样,您不能假定REPL环境会自动打印每个输入表达式的值。

获胜者是边长最小的程序。如果出现平局,则以源代码中符号最少的提交为准。如果仍然有平局,则最早的答案会获胜。


因为输出不需要是任何类型的源代码,这真的是一个“ quine”类型的挑战吗?
利亚姆

好点,我认为实际上不是。
路加福音

@LiamNoronha我认为它是广义的quine,因为输出是源代码的函数,并且适用标准quine规则。
Martin Ender

1
定义“读取自己的源代码”;如果有一条命令,例如,将字符复制到输出,这是否是所述“读取”的实例?
Conor O'Brien 2015年

Answers:


11

GolfScript,3×3(4个符号)

4,m
`3/
n*o

Web 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

Pyth,3x3、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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.