네거티브 코드 인쇄


100

의 사각 고려 인쇄 가능한 ASCII 측면 길이 문자 (코드 포인트 0x7E가에가 0x20) N (여기에 다음과 같은을, N = 6 ) :

=\    
 g \  
7     
m+y "g
  L ~ 
e> PHq

또한 각 행각 열에 최소 1 개의 공백1 개의 비 공백 문자를 포함해야합니다. (위의 예는 이것을 만족합니다.)

우리 는 그러한 정사각형 의 음수 를 같은 크기의 정사각형으로 정의합니다 . 여기서 각 공간은 비 공백으로 바뀌고 그 반대도 마찬가지입니다. 예를 들어, 다음은 위 예제의 유효한 부정입니다.

  1234
a b cd  
 ZYXWV
   !  
{} [ ] 
  ?   

공백이 아닌 문자의 선택은 관련이 없습니다 (인쇄 가능한 ASCII 범위에있는 한).

도전

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

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

우승자는 가장 낮은면 길이 N 의 프로그램입니다 . 동점 일 경우 소스 코드에서 공백이 아닌 문자가 가장 적은 제출물이 이깁니다. 여전히 동점이 있다면 가장 빠른 답이 이깁니다.


함수의 반환 값이 허용됩니까 아니면 STDOUT에 인쇄해야합니까?
Paul Guyot

1
@PaulGuyot이 도전을 위해, 전체 프로그램과 STDOUT (느슨하게 말해서, 쉰 변형)을 고수하십시오.
Martin Ender

보드 크기는 N> 0 이어야합니다 . 귀하의 예가 N> 1을 지정 하고 N> = 1 을 의미 했 습니까? 그러나 이것이 규칙에 맞지 않습니다.
imallett

2
@imallett은 "각 행과 각 열에 최소 1 개의 공백과 1 개의 비 공백 문자를 포함해야합니다"로 암시됩니다. 기다림. 아뇨. 좋은 지적. 그러나 N == 0 || N> 1을 의미합니다.
John Dvorak

1
@jpcooper 네, 정사각형이지만 "각 행과 각 열에 최소 1 개의 공백과 1 개의 비 공백 문자를 포함해야합니다." 첫 번째 m 열에는 공백이없고 마지막 n 열에는 공백이 없습니다.
Martin Ender

답변:


18

CJam, 4 x 4 (8 개 비 공백)

 L _
{ _ 
 _ }
_ p 

CJam 통역사 에서 온라인으로 사용해보십시오 .

산출

{ _ 
 _ }
{ _ 
 _ }

작동 원리

  • L빈 배열을 _푸시하고 사본을 푸시합니다.

  • 블록

    { _ 
     _ }
    

    스택에서 해당 블록을 푸시합니다.

  • _코드 블록의 복사본을 밀어 p인쇄 한 다음 줄 바꿈합니다.

  • 마지막으로, 인터프리터는 스택에 남아있는 모든 항목, 즉 출력에 영향을 미치지 않는 두 개의 빈 배열 및 원래 코드 블록을 인쇄합니다.

대체 버전

 L ~
{ _ 
 p }
_ ~ 

CJam 통역사 에서 온라인으로 사용해보십시오 .

산출

{ _ 
 p }
{ _ 
 p }

작동 원리

  • L빈 배열을 푸시하여 ~덤프합니다. 스택이 다시 비었습니다.

  • 블록

    { _ 
     p }
    

    스택에서 해당 블록을 푸시합니다.

  • _블록의 사본을 푸시하고 사본을 ~실행합니다.

    _블록의 내부 복사는 오리지널 블록의 사본 밀어 것이다 p바꿈 다음 인쇄를한다.

  • 마지막으로 인터프리터는 남은 항목을 원래 코드 블록에 인쇄합니다.


104

펄, 7 × 7 (42 개의 공백 없음)

for$i( 
1..56 )
{$_= $i
%8? $i%
7? $":7
: $/;1;
 print}

산출:

      7
     7 
    7  
   7   
  7    
 7     
7      

10
이것은 내가 오랫동안 본 멋진 코드 중 하나입니다.
Kasran

간단하고 간단하지만 지루합니다. 여전히 +1입니다.
Nova

8
이 표시된 경우는 훨씬 더 멋진 것 7만들어진 7. :)
AL

1
@AL 8 자만 더 입력하면됩니다 (7 칸 및 줄 바꿈).
Qix

77

CJam, 4X4 ( 12 개의 비 공백)

 6, 
SS +
* 4/
 N* 

산출:

0  1
  2 
 3  
4  5

공백이 아닌 12 개의 이전 버전 :

 4a4
* 4S
** 4
/N* 

그리고 출력은

4   
 4  
  4 
   4

Martin이 지적한 것처럼이 버전은

  • 4 칸,
  • 4 * ,
  • 4 4 ,
  • 4 명의 다른 캐릭터
  • 4출력으로 4

;)

여기에서 온라인으로 사용해보십시오


22
또한 4 개의 공감대가 있지만 나는 당신을 위해 그것을 망치려고합니다. 죄송합니다! :-D
으스스한 ossifrage

7
아마 우리는 44에 그것을 얻을 수 있습니까? +1 :)
Doorknob

4
4
Optimizer

17
4 ^ 4 == 0이 아닙니까? ;)
zennehoy 2014

1
예, 비트 XOR이 지수에 사용되어야 할 기호를 훔친다는 점이 마음에 들지 않습니다. 솔직히 코드 가독성을 높입니다.
SuperJedi224

50

마블 러스-16x16

....@0..@1....  
@3..0A08..@2  ..
/\--....>1  ..Hp
..@2..\\  =0@3..
ss..//  --\\\\..
@0/\  @1/\Hp..!!
:s  #the-cake-is
  2020#a-pie/lie

여기에서 테스트하십시오! 공백, 원통형 보드 및 포함 라이브러리와 같은 공백을 모두 확인해야합니다.

산출

              07
            06  
          05    
        04      
      03        
    02          
  01            
01              

설명

여기에는 메인 보드 (아래 그림 참조)와 ssSTDOUT에 두 개의 공백 (0x20)을 출력하지 않는 보드가 있습니다.

빈 셀은에 해당하며 a ..뒤에 나오는 #것은 주석입니다.

보드 사진

모든 틱 ss은 STDOUT에 두 개의 공백을 출력합니다.

녹색 경로는 매 7 번째 틱이 끝날 때 줄 바꿈 (0x0A)을 출력하는 간단한 루프입니다.

파란색 경로는 Hp매 6 번째 틱이 끝날 때 출력에있는 숫자를 출력합니다 ( 대리석을 두 개의 16 진수로 인쇄합니다).

01번 인쇄 한 후 루프가 끝나고 빨간색 경로를 따라 내려가이 대리석을 복제합니다.

하나의 사본이 인쇄되고 (두 번째 01) 다른 하나는 검은 색 경로로 전송되어 !!셀 에서 보드를 종료합니다 . Hp이 마지막 인쇄에서 사용 된 위치로 인해 다른 모든 호출 의 동작이 아닌 동일한 틱의 두 칸 앞에01 나타납니다 .Hp


9
소스의 그래픽 표현을지지합니다.
Riking

35

파이썬-11x11

import re
[print(
    re.sub(
"0",   " ",
bin(x)[
2:].zfill(
11)))for x
in[19,15,
1920,116,
15,1,5,3,
3,3, 67]]

산출

      1  11
       1111
1111       
    111 1  
       1111
          1
        1 1
         11
         11
         11
    1    11

꽤 지저분하고 지루한 해결책이지만, 나는 그것을 보여 줄 것이라고 생각했습니다 ...

  1. 파이썬으로 할 수 있습니다
  2. 코드보다 짧은 코드 정보를 압축 할 수 있다면 다음과 같이 할 수 있습니다. :)

이 솔루션은 파이썬에서 한 쌍의 괄호 안에 있으면 코드를 여러 줄로 나누고을 얻지 않고 임의로 공백을 추가 할 수 있다는 사실을 이용합니다 IndentationError. 이와 같은 작업을 수행하는 또 다른 방법은 백 슬래시로 줄을 끝내는 것입니다.


33

Python-7x7 (37 개의 공백이 아님)

print( 
'%+7s' 
'\n'%1 
*6+'%' 
'-7s'% 
111111 
      )

산출

      1
      1
      1
      1
      1
      1
111111 

파이썬의 오래된 사용 %: 작업을 수행 할 문자열 형식화 연산자 +7-7왼쪽 / 오른쪽 정당화의 치료 및 대한 닫는 괄호와 일치하는 마지막 공간이 걸릴 print특히합니다. 형식 문자열을 준비 할 때도

  • 줄 전체에서 문자열 리터럴 자동 연결
  • 곱셈에 의한 문자열 반복 (하나의 가격으로 여러 개의 교체 필드를 제공)

18

자바 스크립트 (9x9)

 i=9;q=""
; for(;++
i< 91;){;
var q=q+(
!(i% 10.0
)?1:" ");
;i%9|| (q
+="\n") }
alert(q) 

산출

1        
 1       
  1      
   1     
    1    
     1   
      1  
       1 
        1

노트

모든 크기의 대각선이있는 정사각형에 대해 (내 능력을 최대한 활용하여) 코드를 만들고 골프를 쳤습니다.

q="";for(i=***n***;++i<***n^2+n+1***;i%***n***||(q+="\n"))q+=i%***n+1***?"0":1

측면 길이 n에 따라 *** asdf *** 숫자를 상수로 교체 (예 : n = 6) :

q="";for(i=6;++i<43;i%6||(q+="\n"))q+=i%7?" ":1

그러나 그 코드의 길이가 46이지만, 줄이 낭비되는 9x9가 될 때까지 코드의 대각선에있는 공간과 일정한 공간을 줄 수 없었습니다 (5 번째)

편집 : alert ()을 추가하도록 변경되었습니다. 전에:

 i=9;q=""
; while((
++ i)<91)
{q= q+""+
""+( "")+
(!((i %10
))?1:" ")
;i%9||( q
+="\n")} 

아, 네, 죄송합니다. 무슨 말인지 알겠습니다. 지금 해결 중입니다. 죄송합니다.
Kuilin Li

당신은 거기에 몇 가지 unitialised 전역 변수를 가지고있다 : P
토마스 Zato에게

16

CJam, 5x5, 12 개의 비 공백

승자는 아니지만 대부분의 답변은 대각선을 인쇄하기 때문에 작고 드문 제출 을 추가하고 싶었습니다 .

 1 ]
D * S
 * 5
/ N *
 1 ; 

인쇄물

1 1 1
 1 1 
1 1 1
 1 1 
1 1 1

여기에서 테스트하십시오.

코드의 마지막 두 문자는 아무것도하지 않으므로 실제로는 10 바이트의 실제 코드 만 있습니다. 더 작은 그리드의 경우 다른 2 바이트를 8로 줄일 수도 있지만 3x3에는 맞지 않으며이 코드는 그리드 크기에서도 작동하지 않습니다.

작동 방식 :

1]           "Push [1].";
  D*         "Repeat 13 times.";
    S*       "Riffle with spaces.";
      5/     "Split into runs of five elements.";
        N*   "Join those with line breaks.";
          1; "Push and pop a 1. No-op.";

폭발적인 CJam과 Pyth의 답변은 사이트에서 내가 가장 좋아하는 것입니다. 독창적 인 Reddit 스타일이 있습니다.
Soham Chowdhury

14

배운지 , 9x9

나는 왜 이것을했는지 전혀 모른다. 그것은했다 방법이 너무 오래. 나는 지금 큰 두통이 있습니다.

8>v_20gv 
v9<^v#<4 
1@,/<>^6 
v1,*$:<p 
->,!-^87 
:^*25<^g 
_88g,^^4 
9vp\v#6< 
        @

산출:

        @
        @
        @
        @
        @
        @
        @
        @
$$$$$$$$ 

일부 설명

이 코드는 그리드 g에서 @문자를 "즉석에서"(그리고 마지막 공간 인 @ / 2) 읽고 p, 마지막 출력 행을 작성하도록 루프를 수정하는 데 사용됩니다.

코드에 대한 모든 단일 문자 코드 또는 데이터합니다 (로 중, 어느 시점에서 사용 9하고 @마지막 두 라인).

기본적으로 코드가 작동하도록 많은 해결 방법을 수행해야했습니다. 명령 포인터는 실행 중에 여러 교차점을 수행하며 그중 일부는 건너 뜁니다. (나는 그들이 방해하는 방향으로 다른 지시를 위해 어떤 지시도 사용할 수 없었다. NOP는 없다.) 다른 곳에서 나는 같은 성격을 재사용했거나 그것을 잊어 버렸다 $:.

또한 스택에서 창의적인 작업을 수행했습니다.

  • (내부) 문자 쓰기 루프가 종료되면 (이 행에 대해 수행 된 모든 공백) 스택은 n,0입니다. 그런 다음 감소시켜야합니다 n. 확실한 해결책이 될 $1-것이지만, 나는 그것을 사용하여 그것을 단축시킬 수 있었다 !-.
  • (외부) 라인 쓰기 루프가 종료되면 (모든 일반 라인이 인쇄 됨) 스택에가 있습니다 0. 그런 다음 2 개의 문자를 낭비하지 않고 코드 체인저 ( 20g46p7g46\p)를 사용하여 구성 0했습니다 $0.

Befunge는 항상 +1을받습니다. 와 좋은 !-; 그것은 내가 할 일입니다. 재미있는 사실 : Funge-98에서는 zNOP입니다.
Kasran

@Kasran 그래. z위키에 나열되지 않았고 코딩에 이것을 사용 했습니다 . 이는 명령이 아닌 IP 방향을 바꾸는 것을 의미합니다. NOP 여야하는 한 곳으로 인해 코드의 70 %를 리팩터링해야했습니다.
PurkkaKoodari

글쎄, 그 장점은 코드가 Befunge-95 (공간이 아닌 NOP는 없다고 생각 함)와 98에서 실행된다는 것입니다. 95를 사용하는 것이 훨씬 어려우므로 항상 그 답이 더 인상적이라고 생각했습니다.
Kasran

13

파이썬 3, 8x8

공백이 아닌 문자는 50 자, 공백은 14 자입니다. 마지막 줄에는 쓸모없는 문자가 하나 있지만 다른 모든 것이 필요합니다.

(*_,q,n 
)=p=''' 
       p
'''[2:] 
print(p 
*2+q*7, 
n+p*4+p 
[0:-1]) 

산출:

       p
       p
ppppppp 
       p
       p
       p
       p
       p

2
그냥 놀아 시도 (a,*b,c)="12345"... 별표 할당하는 것은 흥미로운 :)입니다
SP3000

@ sp3000 종류의 haskell-esque. 나는 haskell보다 파이썬 방식을 더 많이 사용합니다. 어떻게 이것을 알지 못했습니까
undergroundmonorail

11

루비, 8x8

 (0...8)
. map(){
|x |$><<
32. chr*
x+[x ]*'
'<<32 .\
chr*(7 -
x)+?\n} 

산출:

0       
 1      
  2     
   3    
    4   
     5  
      6 
       7


9

C ++, 12x12

편집 : 그래서, 나는이 도전에 약간 집착하여 17x17에서 12x12로 낮추었습니다. /**/토큰 구분 기호로 사용할 수 있다는 것을 깨닫는 데 약간의 시간이 걸렸습니다 . 이 코드는 라인 스플 라이스가 여전히 Clang에서 그 뒤에 공백으로 작동한다는 사실을 이용하지만 Xcode의 코드 채색을 경고하고 파괴합니다.

#include<c\ 
stdio>/***/ 
int/**/mai\ 
n(){for(in\ 
t/**/i=0;i\ 
<12;++i)pr\ 
intf(i^8?"\ 
           \
|\n":"~~~~\ 
~~~~~~~\x2\ 
0\n");}/**/ 

산출:

           |
           |
           |
           |
           |
           |
           |
           |
~~~~~~~~~~~ 
           |
           |
           |

5

Befunge-98 , 8x8 (56 개의 비 공백 [11 nops])

참고 : 좋은 스포츠 '인적 십을 위해이 프로그램 은를 통해 자체 소스를 읽어 일부 사람들에게 치트 퀸으로 만듭니다. 토론을 읽으 십시오 .

프로그램

 07'?>:8v
v y+da:%<
<v ':vj!-
,+# '<zzv
v1#a vj!<
>z,\1 -\v
z>+,$v z<
1_@#:<v -
zzzzzv<z 

산출

(       
 ,      
  &     
   %    
    $   
     #  
      " 
       !

설명

골프 용 버전

07'?>:8%:ad+y-!jv>'n,$v
  !jv   a,\1-\v > 's,  
    >         >       v
    v-1_@#:           <

가독성을 위해 비 공간 및 공간은 'n 및'으로 대체됩니다.

이 솔루션은 인덱스 [0, width ^ 2) mod를 사용하여 사각형의 너비가 행의 끝 또는 대각선에 있는지 알 수 있다는 사실을 기반으로합니다. 모든 공간은 대각선을 따라 배치되므로 비 공백 인쇄시기를 쉽게 알 수 있습니다!

의사 코드에서

const int WIDTH = 8
push 0    //Because of the way the 'y' instruction works when picking
int row=7 //8-1 rows
int i=63  //Starting at the end allows for the cheaper i != 0
do
{
    pick variable row from the stack bottom + 1//ad+y
    if(i%WIDTH == row)
    {
        print non-space
    }
    else
    {
        print space
        if(i%WIDTH == 0)
        {
            print new-line
            --row
        }
    }
  --i
}
while(i != 0);

토론

나는 그것을 자랑스럽게 생각하지만 모든 비 공간을 비노 프로 만들 수 있기를 바랍니다. 또한 표준 Befunge get-increment-put trope를 사용하지 않은 것을 자랑스럽게 생각합니다! 공간이없고 지루하지 않기를 원하기 때문에 비 공간에 대해 다른 기호를 인쇄합니다.

BefungeSharp 와 함께 Windows에서 사용해보십시오 !


4

CJam, 4 x 4 (8 개 비 공백)

 N a
` S 
 * N
X $ 

CJam 통역사 에서 온라인으로 사용해보십시오 .

산출

[ " 
 " ]
[ " 
 " ]

작동 원리

  • N줄 바꿈을 단일 문자열로 푸시합니다. a해당 문자열을 배열로 래핑합니다.

  • ` 결과를 검사합니다. 즉, 배열의 문자열 표현을 푸시합니다.

    결과는 다음과 같습니다.

    ["
    "]
    
  • S*공백을 사용하여 요소를 분리하여 결과 문자열 (문자 배열)을 조인합니다. 즉, 문자열의 인접한 모든 문자 쌍 사이에 공백 문자를 넣습니다.

    결과는 다음과 같습니다.

    [ " 
     " ]
    
  • N 다른 줄 바꿈을 푸시합니다.

  • X$ 인덱스 1의 스택 항목 (위부터 계산), 즉 여러 줄 문자열을 복사합니다.

  • 마지막으로, 인터프리터는 스택에 모든 항목을 인쇄합니다 : 원본 여러 줄 문자열, 줄 바꿈 및 여러 줄 문자열 복사본.


4

SOGL V0.12 , 2x2 (2 개의 비 공백)

2 
 ╚

여기 사용해보십시오!

산출

 /
/ 

설명

SOGL에서 마지막 행을 제외한 모든 행은 행을 대체합니다. 연속 코드의 모든 위치에서 행의 마지막 문자를 그 이전의 모든 문자로 바꿉니다. 그래서 첫 번째 줄은 replace space with 2 in the next line입니다.
그런 다음 다음 줄- 2╚실행됩니다 : 22를 누르고 크기 2의 대각선을 만듭니다.


3

CBM 기본 v2.0 (8 × 8)

완전히 다른 접근법을 사용하여 이전 답변 보다 개선되었습니다 .

1s=56/8 
2?sP7); 
3?"?":: 
4s=s-+1 
5ifsgO2 
6?-8^6; 
7?sP1): 
       8

산출:

       ?
       ?
       ?
       ?
       ?
       ?
       ?
-262144 

3

루비, 8x8 7x7

 print(
 (?f+"\
 "*6+?\
 )*6).!
 $><<"\
 f"<<!1
;      

산출:

f      
f      
f      
f      
f      
f      
 ffalse

이전 버전, 8x8, 공백 20 개 :

  puts((
  "ff"+#
  ?\s*6+
  ?\n)*7
  );$><<
  ?\s*2+
  ?f;p:p
.!

산출:

ff     
ff     
ff     
ff     
ff     
ff
ff     
  ffalse

3

푸쉬 , 4x4 정사각형

언어가 도전 과제를 발표함에 따라 비경쟁

암호:

 H32
2 C4
:" } 
\o/

출력 :

d   
 d  
  d 
   d

온라인으로 사용해보십시오!

Pushy에서는 공백이 적합하지 않으므로 출력의 음수에 맞게 코드가 쉽게 정렬됩니다. 실제 프로그램은 다음과 같습니다.

H      \ Push char 100, 'd'
32 2C  \ Push char 32, a space, and make 2 extra copies
       \ We now have the string 'd   '
4:     \ 4 times do:
  "    \   Print the string
   }   \   Cyclically shift it right, once

백 슬래시는 주석을 시작하므로 후행 \o/은 음수를 완성하고 멋지게 보입니다.


또는 동일한 점수에 대해 다음과 같은 솔루션을 사용할 수 있습니다.

Code    Output

 35;    #
3 2j     #
2C 4      #
:"}        #

K 36     #
33 2      #
Ct4        #
 :}"    #

3

하스켈, 10 × 10

main=let{ 
0&c='\32' 
!c;n&c=c! 
'\32'>>(n 
-1)&c;a!b 
=putStrLn 
$(b<$[1.. 
10])++[a] 
}in(9&'*' 
         )

a ! b폼의 한 줄을 인쇄 하는 도우미 함수 bbbbbbbbba와 폼의 한 줄과 그 뒤에 한 줄 n & c을 인쇄 하는 재귀 함수 를 정의합니다 .nccccccccc␣␣␣␣␣␣␣␣␣␣c

범위에서 <$( fmap const, 다시)를 사용 하여 문자를 반복합니다. 그 주 <$GHC 7.10 이후 수입, 후 기간이 문제없이에만 사용할 수 있습니다. 이것이 제출을 비경쟁으로 만들지 여부는 확실하지 않습니다.

여기에서 레이아웃이나 알고리즘의 선택에 흥미를 느끼는 것은 없습니다. 나는 여분의 바이트가 없었으며 운 좋게도 줄 바꿈이 발생 putStrLn하는 방식으로 발생할 수 있습니다 .



3

05AB1E , 3x3 (6 비 공간 바이트 )

 3Ð
Λ q
°° 

산출:

3  
 3 
  3

온라인으로 사용해보십시오.

설명:

3Ð       # Push three 3s to the stack
  Λ      # Canvas with parameters num; filler; pattern
         #  num: The amount of characters to display (3)
         #  filler: The character to display ('3')
         #  pattern: The available options are single-digit integers in the range [0,7]
         #           indicating the direction to print in.
         #           (Option 3 is a top-left to bottom-right diagonal line)
    q    # Exit the program
°°       # no-ops to complete the pattern

2

Perl, 6x6 (26 개의 공백이 아님)

나는 이것을 통해 whlie를 보냈고 어떻게 든 7x7보다 작은 Perl 솔루션이있을 것이라고 확신했습니다 ... 매우 재미있는 도전! 이 솔루션에는이 필요합니다 -E.

say+( 
$"x5, 
"5$/" 
)x5,5 
x5,$" 
     ;

용법:

perl -E 'say+( 
$"x5, 
"5\n" 
)x5,5 
x5,$" 
     ;'

산출:

     5
     5
     5
     5
     5
55555 

2

CBM 기본 v2.0 (9 × 9)

0dA8,7,6 
1dA5,4, 3
2dA2,1 ,0
3rEs: rem
4?sP s)::
5:? "*";:
6p =8---s
7 ?sPp):?
 8ifsgO3:

산출:

        *
       * 
      *  
     *   
    *    
   *     
  *      
 *       
*        

1

C (gcc) , 7x7 8x8

편집 : 이전 버전의 동작이 잘못되었습니다.

 main(i)
{ for(;i
<9 ;pri\
ntf ("%\
*d%" "*\
c",i, 1,
9-i,10 )
,i++);} 

온라인으로 사용해보십시오!


" 우리는 또한 각 행각 열에 최소 1 개의 공백1 개의 비 공백 문자 를 포함해야합니다 . "첫 번째 열에 비 공백 문자가 없습니다.
Kevin Cruijssen

@KevinCruijssen 어떻게 든 열 기준을 놓쳤으므로 모두 잘못되었습니다. 내가 진짜 컴퓨터를 가지고있을 때 리메이크 할 것이다.
gastropner

1

젤리 , 4 x 4 (12 개 비 공백)

 4=þ
¢ +⁴
¢+ ⁴
¢ỌY

온라인으로 사용해보십시오!

산출:

!   
 !  
  ! 
   !

이것은 꽤 재미 있었다.

작동 원리

 4=þ    Link 1 (nilad): Generate an identity matrix of size 4
¢ +⁴    Link 2 (nilad): Add 16 to above
¢+ ⁴    Link 3 (nilad): Add 16 again
¢ỌY     Main link (nilad): Convert the above to ASCII chars, and join by newline

쉬운 부분 : 젤리는 공백을 무시합니다 (1 바이트 내장 만 사용하는 한).

어려운 부분 : Jelly의 각 줄은 별도의 링크 (또는 함수)이므로 일정한 문장을 여러 줄로 나누는 것은 그리 짧지 않습니다. 문자열 리터럴을 사용하는 것이 좋지만 네거티브를 생성하는 방법을 모릅니다.

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