코드의 상징적 부정 인쇄


18

(이것은 내가 많이 즐겼던 Print a Negative of Your Code 의 변형입니다 ! Martin Büttner ♦ 덕분에 -거의 모든 텍스트가 그의 것입니다.)

기호 가 다음과 같은 인쇄 가능한 ASCII 문자로 간주합니다 (공백이 포함되어 있음).

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

그리고 영숫자 는 다음과 같습니다.

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

다음과 같이 측면 길이 N에 인쇄 가능한 ASCII 문자의 제곱을 고려하십시오.

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

또한 각 행과 각 열에 하나 이상의 기호와 하나의 영숫자를 포함해야합니다. (위의 예는 이것을 만족합니다.)

우리 는 그러한 정사각형의 음수 를 같은 크기의 정사각형으로 정의합니다. 여기서 각 기호는 영숫자로 대체되고 그 반대도 마찬가지입니다. 예를 들어, 다음은 위의 예에서 유효한 상징적 부정입니다.

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

특정 범주의 선택은 위의 범주에있는 한 관련이 없습니다.

도전

당신의 임무는 측면 길이가 N> 1 인 정사각형 소스 코드로 프로그램을 작성하는 것입니다. 소스 코드의 음의 음수를 STDOUT에 인쇄합니다. 후행 공백이 인쇄되어야합니다. 하나의 후행 줄 바꿈을 인쇄하거나 인쇄하지 않을 수 있습니다.

일반적인 퀴니 규칙도 적용되므로 직접 또는 간접적으로 자신의 소스 코드를 읽지 않아야합니다. 마찬가지로 입력 한 각 표현식의 값을 자동으로 인쇄하는 REPL 환경을 가정해서는 안됩니다.

우승자는 가장 낮은면 길이가 N 인 프로그램입니다. 동점 일 경우 소스 코드에서 가장 적은 기호 를 가진 제출이 우선합니다 . 여전히 동점이 있다면 가장 빠른 답이 이깁니다.


출력이 어떤 유형의 소스 코드 일 필요가 없기 때문에 이것이 실제로 "퀸"유형의 도전입니까?
Liam

좋은 지적은 실제로는 그렇지 않다는 것입니다.
Luke

@LiamNoronha 출력이 소스 코드의 함수이며 표준 퀴니 규칙이 적용된다는 점에서 일반 퀴니라고 생각합니다.
Martin Ender

1
"자신의 소스 코드 읽기"를 정의하십시오. 예를 들어, 문자를 출력으로 복사 하는 명령 이있는 경우 이것이 "읽기"의 인스턴스입니까?
Conor O'Brien

답변:


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 에 어떻게 갈 수 있는지에 대해 길고 힘들었습니다. 수레를 사용한 적이 없었습니다.
Dennis

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.