해커 로고 표시


57

"해커 엠블럼"이라고도하는 "해커 로고"에 대해 들어 보셨을 것입니다. 다음과 같이 보입니다 :

해커 로고

이것은 Game of Life라는 수학적 시뮬레이션의 패턴입니다. 글라이더는 움직이는 가장 간단한 Life 패턴이며 모든 Life 패턴에서 가장 즉시 인식 할 수 있습니다.

도전

해커 로고를 표시하십시오. 이것은 다음과 같이 정의됩니다.

  • 테두리, 흰색 배경 및 회색 눈금 선이있는 3x3 격자입니다.
  • GoL 글라이더 패턴에 5 개의 검은 점이 배열되어 있습니다.
  • 다른 건 없어

규칙

  • 검은 점 작성해야 40 % - 80 % 개별 그리드 상자를.
  • ASCII 출력이 아닌 그래픽 출력으로 엠블럼을 표시합니다 .
  • 출력은 30x30 픽셀 이상이어야합니다 .
  • 출력의 색상은 회색, 검은 색 및 흰색 이어야합니다 .
  • 격자의 각 격자 상자는 같은 크기입니다. 격자는 3x3 정사각형 입니다.
  • 인터넷이나 파일 시스템에서 로고를 가져 오지 못할 수 있습니다.
  • 프로그램은 빈 화면 / 창에 로고를 표시합니다. 종료되면 정상적으로 종료해야합니다.
  • "점"이 반드시 "원"을 의미하는 것은 아니라는 점에 유의한다. "점"은 하나의 표면이있는 격자 상자의 중앙에 중심을 둔 단일 형상입니다. 예를 들어, 원이나 사각형은 점으로 인정되지만 두 개의 삼각형이나 바둑판은 유효하지 않습니다.

승자

이것이 이므로 각 언어에서 가장 짧은 답변이 이깁니다!

프로그램 출력의 스크린 샷을 답변에 포함 시키십시오.


21
나는 이것이 해커 로고라고 생각하지 않았다. 일부 사이트에서 아바타로 사용했는데 해커가 될 것 같습니다.
마크 토마스

15
@ MarkThomas 또는 GoL 대단하다 xD
Stephen

3
@DavidConrad "화면 지우기"는 내장 그래픽이있는 IDE / 인터페이스를 사용하는 경우 화면에 기존 텍스트로 표시 할 수 없음을 의미합니다. 예, 창에 표시 할 수 있습니다.
MD XF

3
앤티 앨리어싱으로 인해 여러 회색 음영 (및 관련 색상 제외)이 허용됩니까?
Ian Miller

3
출력을 표시해야합니까, 아니면 반환하거나 파일로 저장할 수 있습니까?
TheLethalCoder

답변:


27

수학, 62 바이트

Grid[{{,a=██,},{,,a},{a,a,a}},Frame->All,FrameStyle->Gray]

여기에 이미지 설명을 입력하십시오

Mathematica, 71 바이트

Grid[{{,l=Graphics@Disk[],},{,,l},{l,l,l}},Frame->All,FrameStyle->Gray]


여기에 이미지 설명을 입력하십시오


2
순수한 함수를 Graphics@Disk[]인수로 사용하여 바이트를 절약 할 수 있다고 생각합니다 .
CalculatorFeline

이 그리드 [{{, #,}, {,, #}, {#, #, #}}, Frame-> All, FrameStyle-> Gray] & @ Graphics @ Disk []를 의미한다면 72 바이트
J42161217

3
이것에 대한 69 바이트 변형 : Rasterize@Grid[{{,●,},{,,●},{●,●,●}},Frame->All,FrameStyle->Gray]. ●는 2 바이트 유니 코드 문자입니다. 원일 필요는 없으므로 일부 ASCII 문자가 40 % -80 % 요구 사항을 충족하도록 작동 할 수 있습니다.
이안 밀러

실제로 모든 요구 사항을 충족하는 62 바이트로 만들었습니다.
J42161217

그리드에서 기호를 유니 코드 문자로 여전히 선택할 수 있기 때문에 Rasterize요구 사항을 충족시키기 위해 필요 하거나 유사 하다고 생각합니다 graphical output but no ASCII art.
Ian Miller

33

CSS + HTML, 56 + 84 = 140 바이트 52 + 84 = 136 바이트

주석의 제안을 통합하여 4 바이트를 절약했습니다.

td{border:1px solid#888;line-height:.4;font-size:3em
<table cellspacing=0><tr><td><td><td><tr><td><td><td><tr><td><td><td>

이것은 2 바이트 길이 의 UTF-8 문자 를 사용하며 HTML 구문의 은혜를 활용합니다.


3
나쁘지 않다; 그것은 꽤 영리합니다 !
MD XF

3
매우 시원합니다. line-height:.4;닫기를 생략하여 바이트를 절약 할 수 있다고 생각합니다.}
ETHproductions

5
도전 규칙에 위배되는 ASCII 아트로 •를 사용하지 않습니까?
Hankrecords

2
@StephenS 정말 쓸데없는 구별처럼 들리며 ASCII 아트는 금지하지만 유니 코드 아트는 허용하지 않습니다. OP가 그것이 영리하다고 말하면서 내 의견은 실제로 OP에 관한 것이 었습니다. 나는 @를 넣는 것을 잊었습니다.
Hankrecords 2012 년

4
내가 유일한 코드 골프 응답 이해는, 적어도 나는 그렇게 믿는다.
Uwe Keim

25

GLSL (fragment shader), 278 235 256 바이트

precision highp float;void main(){vec2 a=gl_FragCoord.xy/20.-.2;ivec2 b=ivec2(a);a-=vec2(b)+.5;if(b.x>2||b.y>2)discard;gl_FragColor=a.x<-.5||a.y<-.5||a.x>.3||a.y>.3?vec4(.5,.5,.5,1.):length(a+.1)<.4&&(b.x+b.y-3)*b.y==0?vec4(0.,0.,0.,1.):vec4(1.,1.,1.,1.);}

여기에 이미지 설명을 입력하십시오

실제로 참조하십시오 : http://glslsandbox.com/e#40717.2


1
흠 .. 경계선이 그래픽을 끝까지 가나 요? 또한 원이 그리드 박스의 80 %에 불과합니까?
MD XF

12
둘러싸는 사각형의 네면 모두에 닿는 원은 사각형의 π / 4 또는 78.5 %를 채 웁니다.
Greg Martin

코드 크기를 222 바이트로 줄였습니다.precision highp float;void main(){vec2 a=gl_FragCoord.xy/20.-.2;ivec2 b=ivec2(a);a-=vec2(b)+.5;gl_FragColor=vec4(vec3(a.x<-.5||a.y<-.5||a.x>.3||a.y>.3?.5:length(a+.1)<.4&&(b.x+b.y-3)*b.y==0?.0:1.)*float(b.x<3&&b.y<3),1.);}
Gábor Fekete

21

파이썬 2 ,  169  140 바이트

from turtle import*
up()
shape("square")
color("gray",[1]*3)
i=9
while i:
 i-=1;goto(20-i/3*20,20-i%3*20);stamp()
 if 302&2**i:dot(15,0,0,0)

실제 크기 (61 x 61)는 300 x 400의 훨씬 큰 캔버스 내에 그려졌습니다.

실제 크기

픽셀 격자 표시 :

픽셀 그리드 버전

도트는 19 x 19 흰색 채우기 (144.4-288.8) 또는 두 경계 (176.4-352.8)를 포함하여 21 x 21을 고려할 때 40 % -80 % 범위 내에서 177 픽셀을 사용합니다.

참고 : 수동 창 닫기가 선을 추가 할 수 있도록 도면이 완료되는 즉시 프로그램이 종료되고 캔버스 창을 닫습니다 done().

turtle입문 그래픽 프로그래밍을 위해 개발 된 Python 패키지입니다. 펜은 시작 x,y=0,0(디폴트) 400 화소 캔버스에 의한 (300)의 중간에 up펜 리프트, goto펜을 이동하고, shape(a라는 형태로 펜의 형상을 설정하는 "square"것이다 (21)의 기본 화소 폭을 갖는 소정의 형상 ), color색상을 설정합니다. 여기서 두 매개 변수는 획 (기본값은 1)을 설정하고 채 웁니다. 바이트는 사용하여 저장 (r,g,b)교체 튜플 옵션을 "white"함께 [1,1,1]목록 곱셈을 사용 [1]*3. 마지막으로 dot주어진 너비의 픽셀과 색상으로 점을 그립니다. 도트의 기본 너비 값이 너무 작아서 적용 할 수 9없으므로 미적이며 적합 15합니다. 도트의 색은"black"그러나 압축 해제 된 (r,g,b)튜플은 0,0,02 바이트 더 짧습니다.

그렇지 않으면 회색 / 흰색 펜이 점을 숨기므로 펜은 끝에있는 점에서 멀어져 야합니다.

그리드는 div ( /) 및 mod ( %)를 사용 i하여 시작하고 8( 루프 의 시작 부분에서 i초기화 9되었지만 감소 while합니다) 아래로 작업 0하여 다음 2,1,0-1,0,1사용 (1-...)하여 그리드 크기까지 사용 및 스케일링 결과를 상쇄합니다. 20의 인수 ( 20-i/3*20실제로 바이트보다 작은 바이트는 20*(1-i/3)동일 함 %). 이것은 [하단 좌측, 중앙 왼쪽, 왼쪽 상단에서 하단 중앙, 중앙 중간, 상부 중앙, 우하, 중앙, 오른쪽 오른쪽 상단] 순서를 생성하고, "요구 hasDot의"평가 [1,0,0,1,0,1,1,1,0], 이는하다 302때문에 검사에 의해 액세스 될 수있는 이진 i번째 두 성분의 전력을302비트 단위를 사용하여 302&2**i.


매우 좋은 접근 방식과 내가 사용하는 것보다 훨씬 짧습니다 turtle.
돛대

14

애플 소프트 베이직 , 479 476 516 515 483 482 바이트

읽을 수없는 변수 이름을 사용하여 -32 : P
-1 Apple이 마술로 결정하고 내재적 / 존재하지 않는 GOTO를 사용할 수 있기 때문에

다음은 서클을 사용하지 않는 출력의 예에 대한 내 자신의 (매우 훌륭한) 프로그램입니다.

1GR:POKE49234,0:COLOR=15:FORI=0TO39:VLIN0,47ATI:NEXT:COLOR=5:S=21:W=S:H=27:X=INT((40-W)/2):Y=INT((48-H)/2):D=INT(W/3):DX=D:C=Y+H:G=X+W:FORI=0TO3:VLINY,C ATX+I*D:NEXT:D=INT(H/3):FORI=0TO3:HLINX,G ATY+I*D:NEXT:YH=INT(D/2):Z=Y+H-YH:XH=INT(DX/2):COLOR=0:FORI=0TO2:B=Z:A=X+XH+I*DX:GOSUB5:NEXT:B=B-D:GOSUB5:B=B-D:A=A-DX:GOSUB5:K=PEEK(-16384):IFK<128THEN2:K=PEEK(-16368):TEXT:HOME:END 
5VLINB+2,B-3ATA:VLINB+2,B-3ATA-1:VLINB+2,B-3ATA+1:VLINB+2,B-3ATA+2:VLINB,B-1ATA-1:VLINB,B-1ATA+2:RETURN

산출:


1
239 자보다 긴 행 1은 적어도 // e에서 일반 메소드로 입력 할 수 없으므로 이것이 유효한지 확실하지 않습니다.
insert_name_here

1
@insert_name_here 디스크의 파일에 저장해야합니다.
MD XF

14

IA-32 기계 코드, 81 80 바이트

16 진 덤프 :

60 8b f9 b8 50 35 20 20 ab b8 32 35 36 20 ab ab
ab fe 4f fe 33 c9 66 49 51 8a c1 d4 55 50 8a c5
d4 55 5b b2 80 84 c0 74 1f 84 db 74 1b b2 ff 2c
10 3c 35 77 13 93 2c 10 3c 35 77 0c 8d 0c 58 8a
cd b0 e4 d2 e0 79 01 42 92 aa 59 e2 cb aa 61 c3

제공된 버퍼에서 이미지를 PGM 형식으로 반환 하는 fastcall함수 doit입니다. 용법:

char buf[256 * 256 + 256];
doit(buf);

FILE* f = fopen("k.pgm", "wb");
fwrite(buf, 1, sizeof buf, f);
fclose(f);

산출:

해커의 로고

때문에 256 × 256 해상도를 사용 멋지다 그것은 나를에 픽셀의 인덱스를 분할 할 수 있습니다 ecx좌표로 자동 ychxcl. 또한 PGM 파일 형식의 이미지 헤더에는 숫자 255가 필요합니다.

내부 정사각형은 54x54입니다 (영역 별 셀의 41 %).

소스 코드 (Visual Studio에서 컴파일 가능) :

    pushad;                 // save all registers
    mov edi, ecx;           // edi is now the pointer to output
    mov eax, '  5P';        // PGM file header
    stosd;                  // store it
    mov eax, ' 652';        // the number 256 and a space
    stosd;                  // store the width
    stosd;                  // store the height
    stosd;                  // store maximum brightness
    dec byte ptr [edi-2];   // fix maximum brightness to 255

    xor ecx, ecx;           // initialize the counter of pixels
    dec cx;                 // to 65535
myloop:
    push ecx;

    mov al, cl;             // al = cl = x coordinate in the image
    _emit 0xd4;             // divide by 85
    _emit 85;               // ah = x cell number, al = x coordinate in cell
    push eax;
    mov al, ch;             // al = ch = y coordinate in the image
    _emit 0xd4;             // divide by 85
    _emit 85;               // ah = y cell number, al = y coordinate in cell
    pop ebx;                // bh = x cell number, bl = x coordinate in cell

    mov dl, 0x80;           // gray pixel value
    test al, al             // is cell boundary (y)?
    je output1;
    test bl, bl;            // is cell boundary (x)?
    je output1;

    mov dl, 255;            // white pixel value
    sub al, 16;
    cmp al, 53;
    ja output1;             // if outside the inner square, output white
    xchg eax, ebx;          // exchange the registers to shorten following code
    sub al, 16;
    cmp al, 53;
    ja output1;             // if outside the inner square, output white

    lea ecx, [ebx * 2 + eax]; // cell index = y * 2 + x
    mov cl, ch;
    mov al, 0xe4;           // load the bitmap for the glider pattern
    shl al, cl;             // shift the needed but into SF
    jns output1;            // the bit was 0? - output white
    inc edx;                // the bit was 1? - change to black

output1:
    xchg eax, edx;
    stosb;                  // output the byte

    pop ecx;
    loop myloop;
    stosb;                  // output an additional gray pixel
    popad;
    ret;

세포 패턴

0 1 0
0 0 1
1 1 1

는 7 비트의 "최적화 된"비트 맵으로 표현 될 수있다.

비트는 표현식에 의해 색인화되며 y * 2 + x, 여기서 (x,y)셀의 위치입니다. 이 표현은 2 쌍의 세포에 대해 동일한 색인을 제공합니다. 비트 값이 동일하다는 것은 운이 좋은 우연의 일치입니다.


1
이것은 시원하지만 42*42/85/8524.4 % 만 만듭니다 .
Jonathan Allan

@JonathanAllan : 셀의 흰색 부분은 84x84에 불과하지만 42x42 상자는 84x84 상자의 1/4에 불과합니다.
Nick Matteo

설명을 요청했습니다 (영역으로 이동하면 업데이트하기가 너무 어렵지 않기를 바랍니다).
Jonathan Allan

판결은-지역입니다 ...
Jonathan Allan

나는 검은 점을 42에서 54로 확대했습니다. 최소값으로 면적별로 40 %가되었으며 이미 추악
해지

14

HTML 및 CSS, 155 바이트

HTML이 구문 오류에 대해 실제로 용서하고 있음 이 밝혀졌습니다 .

@Octopus 덕분에 1 바이트 절약 · @Downgoat 덕분에 1 바이트 절약 · @StephenS 덕분에 2 바이트 절약

@Ryan 덕분에 2 바이트 절약 · @styfle 덕분에 3 바이트 절약 · @Ferrybig 덕분에 4 바이트 절약

@SteveBennett 덕분에 13 바이트 절약

p{height:33px;width:33px;border-radius:50%;background:#000;margin:0
<table cellspacing=0 border=1><td><td><p><td><tr><td><td><td><p><tr><td><p><td><p><td><p


2
Opera 45에서는 작동하지 않는 브라우저 (및 버전)를 알려주십시오.
Paŭlo Ebermann

2
Windows에서 Chrome 58.0.3029.110 (64 비트)을 사용하면 스 니펫이 작동하지 않습니다. 어떤 Chrome 버전에서 작동합니까?
Jonathan Allan

macOS Sierra (10.12.4)에서 Safari 10.1이있는 원은 표시되지 않습니다.
R. Kap

Chromium 55.0.2883.87 (64 비트)에는 도트가 표시되지 않습니다.
Dylan Meeus

Android 용 Chrome에서 점을 볼 수 없음 (58.0.3029.83)
Spikatrix

11

R ( 130 (119) 113 바이트)

plot(c(2,4,6,4,6),c(2,2,2,6,4),an=F,ax=F,xli=(l=c(1,7)),yli=l,xaxs="i",yaxs="i",pch=16,cex=19);grid(3,lt=1);box()

여기에 이미지 설명을 입력하십시오


axes=F를 교체 하는 데 사용할 수 있습니다 xaxt="n",yaxt="n". 모든 좌표 값을 두 배로 늘리면 4 바이트를 절약 할 수 있습니다 ( 1:3,2:3트릭 은 사용할 수 없음 ).
user2390246 2018 년

@ user2390246 : 제안을위한 thx. 골프를 할 시간이 많지 않았습니다. 더 많은 개선이있을 것이라고 확신합니다. 나는 추가했다 ;box()으로 axes=F도 프레임을 제거합니다. 또한,로는 axesA는 plot에 전달 된 매개 변수 및하지 par를 통해 ...같은 xaxt/이 yaxt, 그것도 완전히 철자 할 필요가 없습니다.
mschilli 2016 년

1
(1) c(1,7)변수 ( l=c(1,7))로 바꾸어 7 바이트를 줄일 수 있습니다 . (2) 교체 annan; (3) 교환 [xy]li[xy]li; (4)에 두 번째, 중복 인수를 제거 grid: grid(3,lt=1). 사실, 나는 이것을 (검토 중) 편집 할 자유를 얻었습니다.
Konrad Rudolph

1
@KonradRudolph 관련이 보인다 : codegolf.meta.stackexchange.com/questions/1615/…
Matt

@ 매트 흠. 간단한 개선을 구현하는 것이 아니라 근본적으로 다른 최적화를 적용하면 이것이 의미가있는 것 같습니다. 그럴 수 있지.
Konrad Rudolph

9

파이썬 2.7 214 311 309 바이트

from matplotlib.pyplot import*
f,x=subplots()
j=(0,0),(1,0),(2,0),(1,2),(2,1)
for i in j:x.add_artist(Circle((i),.4,color='k'))     
x.tick_params(labelbottom='off',labelleft='off')
for o in x.spines.values():o.set_edgecolor('gray')
for s in 'xy':exec"x.set_"+s+"ticks((.5,1.5,2.5));"+s+"lim(-.5,2.5);"
grid()

이것은 코드 골프에서 처음 시도한 것이므로 이것이 향상 될 수 있다고 확신합니다. 나는 한계를 설정하지 않고 싶었지만 matplotlib가 내가 한 곳에 원을 그린 것을 감지 할 수없는 것으로 보입니다. xlim () 및 ylim ()을 설정하지 않으면 맨 아래 두 개의 원만 표시됩니다.

산출:

편집하다

편집 : 테두리의 색상을 수정하고 눈금 번호를 제거했습니다. matplotlib은 매우 조밀하고 축 색상 변경에 너무 친숙하지 않다고 말해야합니다.

@DJMcMayhem 덕분에 3 바이트가 줄었습니다.

편집 : set_ticks 함수 내에서 틱을 내 틱으로 설정하여 2 바이트를 제거하십시오.


그래프의 숫자는 허용되지 않습니다. 또한 테두리가 회색입니까?
MD XF

3
사이트에 오신 것을 환영합니다! 이것은 좋은 첫 번째 대답입니다. :)
DJMcMayhem

1
내가 본 몇 가지 작은 골프 : 1) 5 번과 6 번 줄을 합쳐서 하나의 공백과 줄 바꿈 (-2 바이트)을 제거 할 수 있습니다. 2) set xy_ticks 및 xy_lim의 순서가 중요하지 않으면 다음과 같이 할 수 for s in'xy':exec"x.set_"+s+"ticks(a);"+s+"lim(-.5,2.5);"있습니다. (나는 그것을 테스트하지 않았으므로 긍정적이지 않다)
DJMcMayhem

8

Bash + ImageMagick, 233,226

convert xc: +antialias -resize 31 -draw "stroke gray fill none ${r=rectangle} 0,0 10,30$r 20,0 30,30$r 0,0 30,10$r 0,20 30,30stroke #000 fill #000 ${c=circle} 15,5 15,8$c 25,15 25,18$c 5,25 5,28$c 15,25 15,28$c 25,25 25,28" x:

샘플 출력 :

배쉬와 ImageMagick으로 그린 ​​글라이더

Bash + ImageMagick, 215 자

convert xc: -resize 31 -draw "stroke gray fill none ${r=rectangle} 0,0 10,30$r 20,0 30,30$r 0,0 30,10$r 0,20 30,30stroke #000 fill #000 ${c=circle} 15,5 15,8$c 25,15 25,18$c 5,25 5,28$c 15,25 15,28$c 25,25 25,28" x:

질문 소유자가 앤티 앨리어싱 질문 에 아직 답변하지 않았 으며 일부 다른 솔루션에도 앤티 앨리어싱에 의해 추가 된 회색 음영이 추가되었으므로 지금은이 짧은 버전도 허용됩니다.

샘플 출력 :

Bash 및 ImageMagick으로 그린 ​​글라이더-앤티 앨리어싱


8

루비 144 166 164 148 144 바이트

require'ruby2d'
set background:'grey'
c=482;g=2,13,24;d=0
g.map{|y|g.map{|x|Square.new(x,y,9);Square.new(x+2,y+2,5,"black")if c[d]>0;d+=1}}
show

산출:

산출

편집 : 이제 회색 눈금 선이 있습니다.


3
여기 몇 가지 골프 기회가 있습니다. 우선, d=d+1짧은 형식 ( d+=1)을 가지며 ==1여기에 해당합니다 >0. 당신이 배열 대신 Fixnum이라는로 C를 설정하면 또한 :-) 무슨 생각
RJHunter

1
@RJHunter 나는 교수형 과일을 놓쳤다! 그리고 c로 비트 필드를 만드는 것과 같은 것들에 대해 생각했지만 실제로 구현 시간이 더 짧은 방법을 생각해 낼 수 없었습니다.
Mark Thomas

2
아마도 놀랍게도 루비에는 실제로 비트 필드 지원이 내장되어 있습니다! []마치 비트 배열 인 것처럼 정수에 액세스 할 수 있습니다 (읽기 전용이지만 여기서는 괜찮습니다).
RJHunter 2016 년

@RJHunter 감사합니다! 내가해야 할 일은 c를 적절한 숫자로 변경하는 것입니다. 상당히 줄었습니다.
Mark Thomas

당신은 변경할 수 있습니다 g=[2,13,24]g=2,13,24와 교체 eachmap.
Jordan

8

PNG, 105100 바이트

PNG 이미지    (이 이미지 파일)

HTML과 다른 비 프로그래밍 언어가 허용 된다는 것을 고려할 때 , 나는 기본 비교 기능을 제공하기 위해 일반 브라우저 디스플레이 가능 이미지를 얼마나 골프화 할 수 있는지 궁금했습니다. 결과는 오픈 소스 도구 optipng ( -o7 -zm1-9 -strip all) 및 pngwolf로 압축 됩니다. 나는 또한 zopflipng 실험을 했지만 결과는 더 컸습니다. 다른 폐쇄 소스 압축 도구는 몇 바이트를 더 줄일 수 있습니다.

base64의 이미지 데이터 :

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAA
fCAAAAAA6xUnlAAAAK0lEQVR42mM4gB8wHPgPAwf+M0DAf4TYqDwp
4Ydp0qg8ofBDqMXKGpXHDwDDq0qBspApTgAAAABJRU5ErkJggg==

편집 픽셀 패턴에서 반복성을 높이고 압축 비율을 향상시키기 위해 점이 셀의 상단과 하단에 닿도록했습니다. 그러나 걱정하지 마십시오. 점은 여전히 ​​셀의 (7 * 9) / (9 * 9) ≈ 78 % 만 채 웁니다.


비표준 PNG, 88 바이트

@anatolyg 에서 지적했듯이 IEND 청크 (12 바이트)를 제거하면 골프 잠재력이 있습니다. 기술적으로 IEND는 표준에 필요합니다 . 그러나 각 PNG 청크에는 자체 크기 및 체크섬 정보가 포함됩니다. 따라서 엔드 마커를 반드시 가질 필요는 없습니다. 실제로 테스트 한 모든 브라우저는 문제없이 이미지를 표시 할 수 있습니다.

불행히도 (또는 다행히도)이 비표준 이미지는 imgur에 의해 거부되므로 실제로 업로드 할 수 없습니다. 이것은 base64 인코딩입니다.

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAA
fCAAAAAA6xUnlAAAAK0lEQVR42mM4gB8wHPgPAwf+M0DAf4TYqDwp
4Ydp0qg8ofBDqMXKGpXHDwDDq0qBspApTg==


이것이 유효한지 확실하지 않습니다. PNG프로그래밍 언어가 아닙니다.
DJMcMayhem

4
MD XF 감사합니다. @DJMcMayhem 어느 쪽도 HTML이 아닙니다. 그러나 이미지의 작은 크기를 고려하여 이미지를 흥미로운 외부 항목으로 제출했습니다.
Meyer


4
또한 @Meyer PPCG에 오신 것을 환영합니다! :)
Martin Ender 2016 년

1
파일 끝에서 몇 바이트를 제거해도 여전히 이미지를 가질 수 있습니다. 그래도 시청자에게 의존 할 수 있습니다. 나는 대부분의 시청자가 예를 들어 엔드 청크가 필요하지 않다고 생각합니다.
anatolyg 2018 년

7

옥타브 , 127124 바이트

Luis 덕분에 3 바이트가 제거되었습니다. grid충분합니다 (대신 grid on).

spy([0,1,0;0,0,1;1,1,1],'.k',300),set(gca,'XTick',.5:4,'XTickLabel','','YTick',.5:4,'YTickLabel',''),axis(.5+[0,3,0,3]),grid

출력 (저장 후) :

플롯 창에 출력에 회색 격자 선이 표시됩니다. 저장하면 검은 색으로 바뀝니다 (어떤 이유로 든).

여기에 이미지 설명을 입력하십시오

글쎄, 그것은 길고 지저분했다! 이것이 사양을 준수하도록 많은 수정 을 거쳐야했습니다 .

설명하고 희망적으로 골프가 올 것입니다 ...


그것은 스쿼시처럼 보이지는 않지만 OP가 비슷한 결과로 답변을 한 이후 괜찮습니다 ..
L3viathan

2
높이 / 너비 비율은 플랫폼에 따라 다릅니다. 'square'모든 플랫폼에서 정사각형으로 추가하십시오 . spy([0,1,0;0,0,1;1,1,1],'.k',80),set(gca,'XTick',.5:4,'XTickLabel','','YTick',.5:4,'YTickLabel',''),axis(.5+[0,3,0,3],'square'),grid on.
Stewie Griffin

7

처리 중, 212 198 바이트

background(-1);noFill();stroke(99);rect(0,0,99,99);rect(0,33,99,33);rect(33,0,33,99);fill(0);int f=25;ellipse(15,83,f,f);ellipse(50,83,f,f);ellipse(83,83,f,f);ellipse(83,50,f,f);ellipse(50,15,f,f);

기본적으로 간단한 처리를 사용하여 흰색 배경을 그린 다음 격자에 사용되는 사각형의 투명도를 설정하고 획을 회색으로 그립니다. 사각형을 정의하고 채우기 값을 다시 설정하여 원을 검은 색으로 채우고 5 개의 원을 정의합니다.

oil!

여기에 이미지 설명을 입력하십시오

추가 할 수 있습니다

strokeWidth(2); 

스트로크 색상을 더 잘 볼 수 있습니다.

(저의 첫 번째 Code-Golf입니다. 모든 것을 올바르게했으면 좋겠습니다.)

편집 : Kritixi Lithos 덕분에! 개행을 제거하고 int f = 25로 변경하고 백그라운드에서 -1을 사용했습니다 (float)


1
위대한 첫 골프, PPCG에 오신 것을 환영합니다!
MD XF

1
줄 바꿈을 제거하고 대신에 float f=25;를 변경 int f=25;하여 background(-1)대신 바이트를 절약 할 수 있습니다.background(255);
Kritixi Lithos

6

Tikz, 193 (175) 170 바이트

\documentclass[tikz]{standalone}\begin{document}\tikz{\def\a{)rectangle(}\def~{)circle(1)(}\draw(4,6\a2,0)(0,\a6,6)(0,2\a6,4);\fill(1,1~3,1~5,1~5,3~3,5~,)}\end{document}

출력은 다음과 같습니다.

산출


3
@MDXF 잘려나 가지만 완벽한 원과 사각형이므로 사각형의 π / 4를 차지하며 사각형의 약 79 %에 해당합니다.
밀 마법사

젠장, 도전을보고 정확히 같은 생각을했다;)
racer290

4

MATL , 74 69 68 64 62 바이트

4:6B&f,.5+w]'k.'5Y08W5$XG7lZG1$3ZG1tZG4:"@th1Kh'k'3$XG1Mbw3$XG

MATL Online 에서 사용해보십시오 ! (몇 초가 걸립니다.)

온라인 통역사의 출력 :

여기에 이미지 설명을 입력하십시오


4

처리 중, 134 바이트

@Zep에서 영감을 얻은 다음은 처리 원 라이너 (및 첫 번째 코드 골프)입니다.

stroke(127);for(int i=0;i<9;i++){int x=i%3*30;int y=i/3*30;fill(255);rect(x+5,y+5,30,30);if(i==1||i>4){fill(0);ellipse(x+20,y+20,23,23);}};

몇 바이트를 깎는 데 도움이되는 @Kritixi Lithos에게 감사의 말을 전합니다!

가공중인 글라이더


언어 및 점수 줄을 포함하십시오 .
Theraot

PPCG에 오신 것을 환영합니다. Theraot에 명시된 바와 같이 모든 제출물에는 언어와 바이트 수를 포함하는 헤더가 있어야합니다. 또한 for 루프의 모든 변수를 선언 하여 루프의 본문에 for(int i=0,x,y;...놓을 수 있도록 바이트를 골프화 할 수 있습니다 int. 또한, fill(255);그냥 될 수 있습니다fill(-1);
Kritixi Lithos

나는이 테스트를하지 않은,하지만 난 당신이 떨어질 수 있다고 생각 +20의 값을 설정하는 동안 x그리고 y당신이 변경할 수 있도록, rectrect(x+5,y+5,30,30);ellipseellipse(x+20,y+20,23,23);와 2 바이트를 저장합니다.
Kritixi Lithos

4

LaTeX + Tikz, 155 바이트

\documentclass[tikz]{standalone}\begin{document}\tikz{\draw(0,0)grid(3,3);\foreach\x/\y in{0/0,1/0,2/0,2/1,1/2}\fill(\x+.5,\y+.5)circle(.5);}\end{document}

결과


1
그게 1/0분열입니까?
wizzwizz4 2016 년

죄송하지만 아니요 쌍 xy좌표 의 간단한 구분 기호입니다 .
TonioElGringo

당신은 당신의 있도록, 2에 의해 모든 것을 확장하여 몇 바이트를 저장 할 수 있어야한다 .5's의 단지가 될 1.
Chris

@Chris 그리드 내장은 기본적으로 단위 길이의 셀 [step=2]을 생성하며 더 큰 그리드를 생성하려면 약 8 바이트가 더 걸립니다 (추가 ). 원 그리기의 좌표를 단순화하면 충분한 바이트를 절약 할 수 없습니다. (만약 157 바이트를받습니다)
TonioElGringo

@TonioElGringo 아, 맞아. 먼저 테스트하지 않고 댓글을 달도록 가르쳐줍니다.)
Chris

4

SmileBASIC, 125 바이트

GCLS-1GCOLOR #GRAY
GBOX.,8,30,38GBOX 10,8,20,38GBOX.,18,30,28G.,1G 1,2G-1,3G.,3G 1,3DEF G X,Y
GPUTCHR X*10+12,Y*10,58081,.END

58081 ( "개인 사용 영역"블록에있는 U + E2E1)은 원 기호의 문자 코드입니다. 문자열에 넣으면 작동하지만 UTF-8에서는 3 바이트로 인코딩되므로 길이가 동일합니다 (여기에는 올바르게 표시되지 않음).

마크 다운이 끔찍하다


1
기본 답변 을 보는 것은 항상 상쾌 합니다!
Taylor Scott

3

C #, 333 바이트

using System.Drawing;_=>{var b=new Bitmap(31,31);var g=Graphics.FromImage(b);g.FillRectangle(Brushes.White,0,0,31,31);for(int x=0,y;x<3;++x)for(y=0;y<3;++y){g.DrawRectangle(Pens.Gray,x*10,y*10,10,10);if(x==1&y<1|x>1&y==1|y>1)g.FillEllipse(Brushes.Black,x*10+1,y*10+1,8,8);}b.Save("t.png");System.Diagnostics.Process.Start("t.png");};

풀 / 포맷 버전 :

using System.Drawing;
Action<int> a = _ =>
{
    var b = new Bitmap(31, 31);
    var g = Graphics.FromImage(b);

    g.FillRectangle(Brushes.White, 0, 0, 31, 31);

    for (int x = 0, y; x < 3; ++x)
        for (y = 0; y < 3; ++y)
        {
            g.DrawRectangle(Pens.Gray, x * 10, y * 10, 10, 10);
            if (x == 1 & y < 1 | x > 1 & y == 1 | y > 1)
                g.FillEllipse(Brushes.Black, x * 10 + 1, y * 10 + 1, 8, 8);
        }

    b.Save("t.png");
    System.Diagnostics.Process.Start("t.png");
};

아이디어는 간단합니다. 이미지에서 그래픽스 객체를 만들어 이미지를 모두 흰색으로 만듭니다. 그런 다음 경계 사각형을 그리는 이미지의 각 사각형을 반복합니다. 그것이 점의 위치 중 하나라면 우리도 그 위치를 그립니다. 마지막으로 이미지를 파일로 저장하고 Windows에서 이미지를 여는 방법을 결정하도록합니다. 제 경우에는 Windows Photo Viewer로 열립니다.

를 사용 Process하여 이미지를 표시하고 파일로 저장하는 것은 Windows 클래스 또는 WPF 앱을 만드는 것보다 훨씬 더 짧습니다.

산출:

산출


나는 당신이 Process.Start를 사용할 필요가 없다고 생각합니다. 예를 들어 Titus는 이미지를 출력하고 열지 않습니다.
Jeremy Thompson

규칙 상태 @JeremyThompson 당신은 이미지를 표시해야합니다
TheLethalCoder

3

PHP, 221 + 2 바이트

<?imagefill($i=imagecreatetruecolor(31,31),0,0,~0);function q($i,$x,$y,$f){imagerectangle($i,$x*=10,$y*=10,$x+10,$y+10,5e6);$f?:imagefilledellipse($i,$x+5,$y+5,8,8,0);}for($p=16;$p--;)q($i,$p&3,$p>>2,53>>$p&1);imagepng($i);

파일로 저장; 브라우저에서 전화하십시오. 브라우저가 횡설수설로 표시되면 앞에
삽입하십시오 .header("Content-Type:image-png");imagepng($i);

산출점은 둥글 지 않습니다. 그것은 작은 비율 때문입니다.

고장

function q($i,$x,$y,$f){        # function to draw quadrant:
    imagerectangle($i,$x*=10,$y*=10,$x+10,$y+10,5e6);   # draw lines in 0x4c4b40
    $f?:imagefilledellipse($i,$x+5,$y+5,8,8,0);         # if bit not set, draw dot
}

imagefill($i=
    imagecreatetruecolor(31,31) # create image
    ,0,0,~0);                   # fill with 0xffffff (white)
for($p=16;$p--;)q($i,           # loop through positions, call function
    $p&3,                           # $x=lower two bits
    $p>>2,                          # $y=upper two bits
    53>>$p&1                        # $f=one bit from %0000 0000 0011 0101
);                                      # (reversed inverted bit mask for dots)
imagepng($i);                   # output image

나는 그것이 0x4c4b40대략 회색으로 자격이 있다고 생각합니다 . 그렇지 않은 경우 4 바이트를 추가하십시오.


3

R 313 236 바이트

l=c(1,7)
bmp('r',400,400)
plot(x=c(4,6,2,4,6),c(6,4,2,2,2),cex=14,pch=19,xlim=l,ylim=l,xlab='',ylab='',xaxs='i',yaxs='i',axes=F)
a=function(s,...){axis(s,labels=F,tck=1, col="gray",lwd=9,...)}
a(1,xaxp=c(l,3))
a(2,yaxp=c(l,3))
dev.off()

@ user2390246의 주석을 기반으로 수정 된 코드는 77 바이트를 절약했습니다. 도움을 주셔서 감사합니다.

또한 @mschilli의 짧은 R 솔루션에 콜 아웃을 추가하려고합니다. R 그래픽 기본값 문제를 해결하는 우아한 방법을 보여줍니다.

산출

파일 이름 "r"로 이동합니다. 생략하고 확장하면 4 바이트가 절약되었습니다. 그러나 파일 확장자를 "bmp"로 다시 편집하여 업로드했습니다. 아마 그 4 바이트에 대한 크레딧을 얻지 않아야합니다.

해커 로고

해설

"그 그래픽은 5 개의 점이있는 단순한 그래프 일뿐입니다. 강력한 데이터 그래픽 기능이있는 언어로 구현하는 것은 간단합니다. R에서 시도해 봅시다." 그러나 R의 그래픽 기본값을 사용하여 바이트의 80 % 정도를 소비해야했습니다.

작업에 대한 잘못된 도구를 사용하십시오 ....

bmp 생성자를 호출 한 다음 dev.off ()를 호출하는 것보다 그래픽의 크기와 종횡비를 보장하는 덜 장황한 방법을 찾을 수 없었습니다. 이 조합은 25 바이트를 차지합니다. R 세션이 올바르게 설정되면 해당 바이트를 소비하지 않고 다소 정확 해 보이는 그래픽을 얻을 수 있지만 신뢰할 수 없거나 일관성이 없습니다.


1
몇 가지 제안 : 데이터 프레임 b을 전혀 정의하지 말고 이름이 지정되지 않은 두 벡터를 plot함수에 직접 넣으십시오 . 사용 c(l,3)을 위해 xaxpyaxp. 당신은 F그것을 정의 할 필요없이 거짓으로 사용할 수 있습니다 . 그리고 a(x,...)호출 axis(x)하지만 레이블, tck 등의 기본값이 있는 새 함수 를 정의하여 두 번 모두 지정할 필요가 없습니다.
user2390246 2016 년

axes=F대신에 사용할 수도 있습니다 xaxt='n',yaxt='n'. 그리고 나중에 그 트릭을 사용했지만 .5정의 할 때 사용 하는 것을 잊었습니다 l.
user2390246 2016 년

1
실제로, 모든 성가심을 .5완전히 없애기 위해 모든 좌표 값을 두 배로 늘리면 어떻게 될까요?
user2390246 2016 년

1
이미 .bmp파일 확장자를 제거하려는 경우 파일 이름을 지정할 수도 있습니다 r.
MD XF

@ user2390246-제안에 감사드립니다. 70 바이트 단위로 누적 저장됩니다. 이것은 R에서 골프를 치기위한 첫 번째 노력이었고, 아마도 내가 보았을 것 같은 많은 티로의 오류를 발견했습니다. 다음에 나는 더 잘 알 것이다.
CCB60

3

TI-BASIC, 218 (140) 137 바이트

참고 :이 바이트 수는 약간 팽창되었습니다. 이 프로그램은 85 개의 토큰 만 사용하지만 137 바이트로 저장됩니다. 또한 색상이 아닌 계산기를 사용하는 경우 색상을 지정할 필요가 없으므로 (기본적으로 파란색) 다른 4 개의 토큰을 저장할 수 있지만 화면이 충분히 큰지 알 수 없습니다. 이 도전은 내가 소유하지 않기 때문에.

prgmHACKER (138 바이트, 86 개 토큰) :

{0,1,2,1,2}→L1
{0,0,0,2,1}→L2
.3→R
For(I,0,5
L₁(I)+.5→A
L₂(I)+.5→B
For(N,0,R,dX
√(R²-N²
Line(A+N,B-Ans,A+N,B+Ans,BLACK
Line(A-N,B-Ans,A-N,B+Ans,BLACK
End
End

올바르게 표시하려면이 프로그램에서 Xmin = Ymin = 0, Xmax = Ymax = 3, Xscl = Yscl = 1이어야합니다. dX도 올바르게 설정해야하지만 다른 창 변수를 설정할 때 계산기가이를 수행합니다. RAM 에서이 변수가 얼마나 많은 공간을 사용하는지 알 수 없었습니다.

또한 형식 설정은 {RectGC, CoordOff, GridLine, GridColor : MEDGRAY, Axes : OFF, ExprOff, BorderColor : 1, Background : OFF} 여야하지만이 값은 전환 된 값이며 설정에 따라 추가 공간을 사용하지 않습니다.


목록 아래로 골프에, 당신은 이러한 표현 할 수 {0,1,2,1,2}{0,0,0,2,1}다음 추가 할 0.5각 항목에.
wizzwizz4 2016 년

그것을 시도했지만 목록에서 사용하는 RAM의 양은 변경되지 않았습니다. 그러나 RAM에서 목록을 제거하고 프로그램이 실행될 때이를 정의하여 78 바이트를 RAM에 저장하는 아이디어를 내게주었습니다.
latias1290

골프 사람들에게 주문하세요! 이미 사용하고 있으므로 L1and L2L₁and로 변경하십시오 L₂. }, 및 L₁(I)+.5→A=> .5+L₁(IL₂(I)+.5→B=> 제거 할 수 있다고 생각합니다 .5+L₂(I→B.
Zacharý

3

R, 119 (114) 111 바이트

( 3 바이트를 절약 해 준 @JayCe 덕분 에)

다른 R 솔루션 보다 짧지 만 완전히 다른 접근법 :

layout(matrix(c(1,9,2:8),3,,T))
par(mar=0*1:4)
for(i in 1:9){frame();if(i>4)points(.5,.5,,19,cex=29);box(fg=8)}

첫 번째 4 개의 플롯이 빈 셀이고 다른 5 개의 플롯이 점이있는 레이아웃을 사용합니다.

글라이더


위치 인수를 사용하여 다른 솔루션보다 짧게 만들 수 있습니까? here
JayCe

@JayCe 정말 감사합니다!
plannapus

3

Excel VBA, 180 바이트

기본 워크 시트 개체 ( Sheet1)에 입력 및 출력을받지 않는 익명의 VBE 즉시 창 기능 .

Cells.RowHeight=48:Cells.Interior.Color=-1:[B2:D4].Borders.Color=7434613:For Each s In[{21,32,13,23,33}]:Sheet1.Shapes.AddShape(9,48*(s\10)+4,Mid(s,2)*48+4,40,40).ShapeStyle=8:Next

댓글 버전

Cells.RowHeight=48                      ''  Make the Cells square
Cells.Interior.Color=-1                 ''  Remove the default grid
[B2:D4].Borders.Color=7434613           ''  Create the 3x3 gray grid at range `B2:D4`
For Each s In [{21,32,13,23,33}]        ''  Assign and iterate over a list of where
                                        ''  to place the dots; This list is a range that 
                                        ''  is coerced into a numeric array

    Sheet1.Shapes.AddShape(         _   ''  Add a shape to the Sheet1 object
                9,                  _   ''  An Oval (msoShapeOval)
                48*(s\10)+4,        _   ''  At the calculated value from the left
                Mid(s,2)*48+4,      _   ''  At the calculated value from the top
                40,                 _   ''  that is 40 units wide
                40                  _   ''  and is 40 units tall
                ).ShapeStyle=8          ''  and is black filled with a black outline

Next                                    ''  repeat to end of list

산출

해커 로고

[{21,32,13,23,33}]over 를 사용하기위한 -6 바이트Split("21 32 13 23 33")

Mid(s,2)over 를 사용하기위한 -2 바이트Right(s,1)

(s\10)over 를 사용하기위한 -3 바이트Left(s,1)


2

옥타브 107 94103 바이트

scatter([1:3,3,2],[1,1,1:3],1e5,zeros(5,3),'.');axis off;a=[1,7]/2;for i=.5:3.5;line(a,i);line(i,a);end

또는

plot([1:3,3,2],[1,1,1:3],'k.','markersize',250);axis off;a=[1,7]/2;for i=.5:3.5;line(a,i);line(i,a);end

두 솔루션 모두 103 바이트입니다.


2
나는 점들이 검은 색이어야한다고 믿는다
TheLethalCoder

아, 흥미롭게도, MATLAB은 스칼라를 방송하는 대신 점으로 해석합니다. 그래서 대신에 line([x1,x2],y)당신이해야 할line([x1,x2],[y,y])
Tasos Papastylianou

2

Apple Swift (iOS-CoreGraphics / QuartzCore)-832 바이트

Apple iOS 장치에 Quartz를 사용하여 모양을 완전히 그렸습니다. 불행히도 이것은 특히 규모가 큰 언어가 아니기 때문에 결과가 상당히 크지 만 얻을 수있는만큼 작습니다.

UIGraphicsBeginImageContext(CGSize(width:60,height:60));let c=UIGraphicsGetCurrentContext()!;UIColor.lightGray.setStroke();c.addRect(CGRect(x:0,y:0,width:60,height:60));c.move(to: CGPoint(x:20,y:0));c.addLine(to: CGPoint(x:20,y:60));c.move(to: CGPoint(x:40,y:0));c.addLine(to: CGPoint(x:40,y:60));c.move(to: CGPoint(x:0,y:20));c.addLine(to: CGPoint(x:60,y:20));c.move(to: CGPoint(x:0,y:40));c.addLine(to: CGPoint(x:60, y:40));c.strokePath();UIColor.black.setFill();c.addEllipse(in:CGRect(x:22,y:2,width:16,height:16));c.addEllipse(in:CGRect(x:42,y:22,width:16,height:16));c.addEllipse(in:CGRect(x:2,y:42,width:16,height:16));c.addEllipse(in:CGRect(x:22,y:42,width:16,height:16));c.addEllipse(in:CGRect(x:42,y:42,width:16,height:16));c.fillPath();let i=UIGraphicsGetImageFromCurrentImageContext();sub.addSubview(UIImageView(image:i))

관심있는 사람을위한 더 읽기 쉬운 버전 :

    UIGraphicsBeginImageContext(CGSize(width: 60, height: 60))
    let c = UIGraphicsGetCurrentContext()!

    UIColor.lightGray.setStroke()
    c.addRect(CGRect(x: 0, y: 0, width: 60, height: 60))
    c.move(to: CGPoint(x: 20, y: 0))
    c.addLine(to: CGPoint(x: 20, y: 60))
    c.move(to: CGPoint(x: 40, y: 0))
    c.addLine(to: CGPoint(x: 40, y: 60))
    c.move(to: CGPoint(x: 0, y: 20))
    c.addLine(to: CGPoint(x: 60, y: 20))
    c.move(to: CGPoint(x: 0, y: 40))
    c.addLine(to: CGPoint(x: 60, y: 40))
    c.strokePath()

    UIColor.black.setFill()
    c.addEllipse(in: CGRect(x: 22, y: 2, width: 16, height: 16))
    c.addEllipse(in: CGRect(x: 42, y: 22, width: 16, height: 16))
    c.addEllipse(in: CGRect(x: 2, y: 42, width: 16, height: 16))
    c.addEllipse(in: CGRect(x: 22, y: 42, width: 16, height: 16))
    c.addEllipse(in: CGRect(x: 42, y: 42, width: 16, height: 16))
    c.fillPath()

    let i = UIGraphicsGetImageFromCurrentImageContext()
    sub.addSubview(UIImageView(image: i))

iOS 시뮬레이터에서 생성 된 출력은 다음과 같습니다. 산출



2

SVG HTML +, 146 138 135 133 바이트

<svg>
<path fill=none stroke=#ccc d=m.5.5h30v30h-30zh10v30h10v-30zv10h30v10h-30 />
<path d=m11,1h9v9m1,1h9v9m-29,1h9v9m1-9h9v9m1-9h9v9>

관대 한 HTML 파서 덕분에 xmlns="http://www.w3.org/2000/svg"선언과 속성 따옴표 및 닫는 태그를 생략 할 수 있습니다. 이 버전은 다른 HTML 솔루션의 일부 문제를 해결합니다.

  • "도트"는 셀의 최소 40 %를 채 웁니다 (§1).
  • 글꼴 글리프 (§2, §6)와 같은 외부 그래픽을 사용하지 않습니다.
  • 격자는 완전히 정사각형입니다 (§5)

편집 서브 패스 를 채우기 위해 닫을 필요가 없다는 사실을 이용하여 8 바이트 를 줄 였습니다.

편집 svg grammar 에 따르면 숫자가 아닌 숫자를 쉼표 ( .5,.5) 로 구분할 필요는 없습니다 . 또한 명시 적 채우기를 포기하여 한 줄의 그리기 방향을 음수에서 양수로 변경하여 대시를 저장했습니다. 마지막으로 후행 줄 바꿈을 포함하지 않도록 카운트를 조정했습니다.이 신인 실수로 죄송합니다.

codegolf에 대한 다른 답변 에서 학습을 편집 하여 결승 9 />을 로 대체했습니다 9>. 이것은 테스트 된 모든 브라우저에서 제대로 작동합니다.


2

Python 3 + PyGame, 238 바이트

from pygame import*
d=display
s=d.set_mode([55]*2)
s.fill([255]*3)
f=lambda*a:draw.line(s,[128]*3,*a)
for x in[0,18,36,54]:
 f((x,0),(x,55));f((0,x),(55,x))
for x,y in zip([3,5,1,3,5],[1,3,5,5,5]):draw.circle(s,[0]*3,(x*9,y*9),7)
d.flip()

겉보기에 임의의 상수는 바이트를 희생시키지 않고 이미지를 최대한 크게 만들려고합니다.

인쇄 할 수없는 문자, 229 바이트

from pygame import*
d=display
s=d.set_mode([55]*2)
s.fill([255]*3)
f=lambda*a:draw.line(s,[128]*3,*a)
for x in b'\0␒$6':
 f((x,0),(x,55));f((0,x),(55,x))
for x,y in zip(b'␃␅␁␃␅',b'␁␃␅␅␅'):draw.circle(s,[0]*3,(x*9,y*9),7)
d.flip()

목록을 바이트 리터럴로 교체하여 많은 문자를 저장했지만 인쇄되지 않는 문자는 여기에 올바르게 표시 할 수 없습니다. 인쇄용이 아닌 문자를 표시 용 그래픽 U + 2400-U + 2421로 대체했습니다.

스크린 샷

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