해커 로고 표시


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좌표로 자동 y에 ch와 x에 cl. 또한 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) 교체 ann와 an; (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와 교체 each로 map.
— 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당신이 변경할 수 있도록, rect에 rect(x+5,y+5,30,30);와 ellipse에 ellipse(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 년

죄송하지만 아니요 쌍 x과 y좌표 의 간단한 구분 기호입니다 .
— 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)을 위해 xaxp와 yaxp. 당신은 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 L2를 L₁and로 변경하십시오 L₂. }, 및 L₁(I)+.5→A=> .5+L₁(I및 L₂(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.