아이슬란드의 국기를 그립니다


107

올해 UEFA 유로 ​​2016은 끝났고 몇 가지 부정적인 헤드 라인 외에도 아이슬란드 축구 국가 대표팀 이라는 매우 긍정적 인 놀라움이있었습니다 . 그들의 국기를 그려 봅시다.

입력

글쎄, 분명히이 도전은 입력이 없습니다.

산출

  • 아이슬란드의 깃발을 최소한 100 x 72 픽셀 또는 25 x 18 자의 적절한 시각적 형식으로 그리 십시오 .
  • 출력을 파일로 저장하거나 즉시 출력 – 예를 들어 png, jpg 등의 이미지, 벡터 그래픽, HTML 캔버스에 그리거나 공백이 아닌 문자를 사용하여 시각화하십시오.
  • 이러한 색상을 사용 : 파란색 : #0048e0, 흰색 : #ffffff빨간색 : #d72828.
  • 언어가 특정 색상 값을 지원하지 않는 경우 ANSI 색상 코드 에서 빨강 , 파랑흰색 의 표준 값을 사용하십시오 .
  • 아래 그림과 같이 올바른 비율로 깃발을 그립니다.

보일러 플레이트

  • 프로그램이나 함수를 작성할 수 있습니다. 익명 함수 인 경우 호출 방법의 예를 포함하십시오.
  • 이것은 이므로 바이트 단위의 최단 답변이 승리합니다.
  • 표준 허점은 허용되지 않습니다.

리더 보드

답을 찾을 수 없으면 리더 보드의 " 정보 섹션 "에 설명 된대로 언어와 바이트 수를 형식화하십시오 .


이 도전은 프랑스의 국기를 그 립니다.


20
올해 유로에서 예상했던 것보다 훨씬 더 좋은 나라 인 웨일즈의 국기가 훨씬 더 어려울 것입니다. :-)
Gareth

24
@Gareth 나는 용의 방수 사양을 기대하고 있습니다. ;)
Martin Ender

4
위의 이미지에서 파란색은 실제보다 어둡습니다#0048e0
Luis Mendo

10
@MartinEnder 석재로 조각합니까? 방수입니다.
immibis

5
@MartinEnder Mathematica에는 하나가 있습니다.
gcampbell

답변:


259

파이썬 3 190 172 171 169 167 160 159 147 143 바이트

더 이상 사용되지 않지만 제거되지 않은 오프셋 방법이있는 PIL 버전 1.1.7 사용

from PIL.ImageDraw import*
i=Image.new('RGB',(25,18),'#d72828')
Draw(i).rectangle((1,1,23,16),'#0048e0',~0)
i.offset(9).resize((100,72)).show()

빨간색으로 채워진 25 * 18 픽셀 이미지를 만든 다음 한 픽셀의 흰색 윤곽선으로 파란색으로 채워진 23 * 16 픽셀의 사각형을 그립니다. 그런 다음 이미지를 (9,9)만큼 오프셋하여 가장자리를 감싸고 100 * 72로 크기를 조정 한 다음 창에 표시합니다.

오프셋 전 플래그 :

여기에 이미지 설명을 입력하십시오 (100 * 72로 크기 조정)

산출:

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

생기 있는:

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

Edit1 : 25 * 18 이미지를 처음 생성하여 자르기를 제거하여 18 바이트를 기록했습니다.

Edit2 : #fff대신을 사용하여 1 바이트의 골프를 쳤다 white.

Edit3 : 가져 오기를 별칭으로하여 2 바이트를 골프화했습니다.

Edit4 : 오프셋 메서드의 두 번째 인수를 제거하여 2 바이트를 골퍼했습니다.

Edit5 : 저장하는 대신 이미지를 표시하여 7 바이트를 골프로 연결했습니다. (유닉스에 설치된 imagemagick 필요)

Edit6 : 가져 오기를 다시 작성하여 1 바이트의 골프를 쳤다.

Edit7 : 다시 가져 오기를 다시 작성하여 12 바이트를 기록했습니다. (@Dennis 덕분에)

편집 8 : 애니메이션이 추가되었습니다.

Edit9 : 마지막 프레임이 없어 애니메이션이 업데이트되었습니다.

Edit10 : Albert Renshaw 덕분에 4 바이트 골프!


42
정말 좋은 답변입니다.
insertusername 여기

17
이것은 천재입니다! 바이킹.
Ioannes

25
와우에 대한 코드 골프 유형 질문에 투표하는 것은 드문 일이지만, 그렇게하기 위해 완전히 새로운 커뮤니티에 참여하는 것은 훨씬 드 r니다. 이 오프셋 해킹은 당신이 젊은 whippersnappers가 당신의 작업을하기 위해 당신의 oodlebytes의 메모리를 갖기 전에해야했던 것을 연상시킵니다. 훌륭한 직업.

5
천재, 정말로! 💡
InuYaksa

3
당신이 경우에 from PIL.ImageDraw import*, IImageD.Draw됩니다 Draw11 바이트를 저장.
Dennis

117

DOS COM 용 x86 리얼 모드 머신 코드, 69 65 63 62 바이트

아이슬란드 깃발 제작

이 코드는 DOS COM 실행 파일로 실행됩니다.

특별한 감사

  • meden 은 4 바이트를 절약했습니다.
  • meden 은 2 바이트를 절약하고 깜박임을 제거했습니다.

기계 코드 (16 진 바이트)

68 00 A0 07 B8 13 00 CD      10 BE 23 01 AD 91 AD 91 
AC E3 FE 60 30 ED F3 AA      61 81 C7 40 01 FE CD 75 
F2 EB E9 FA B4 00 00 09      28 B4 46 00 0F FA 28 80 
57 0F 14 B4 0C 50 00 FA      14 0C 00 64 00 00

조립 소스

출처는 NASM입니다.

ORG 100h

push 0a000h
pop es

mov ax, 13h
int 10h

mov si, data


_draw:
 lodsw
 xchg ax, cx

 lodsw
 xchg ax, di

 lodsb

_cycle:
 jcxz _cycle

 ;al = color
 ;cl = col
 ;ch = row

rect:
 pusha
 xor ch, ch
 rep stosb
 popa
 add di, 320
 dec ch
 jnz SHORT rect

jmp SHORT _draw


data: 

        db 250d
        db 180d
        dw 0000h
        db 09h


        db 40d
        db 180d
        dw 0070d
        db 0fh


        db 250d
        db 40d
        dw 22400d
        db 0fh

        db 20d
        db 180d
        dw 80d
        db 0ch


        db 250
        db 20
        dw 25600d 
        db 0ch


        dw 0000h

13
이것은 정말 멋진 첫 번째 대답입니다! 어서 오십시오!
AdmBorkBork

5
16 시간에는 'test cx, cx / jz'를 'jcxz'로 바꾸면 'mov'를 'xchg'로 바꾸고 2 시간 동안 2 바이트를 절약 할 수 있습니다.
meden

3
더 많은 생각. 프로그램이 무한 루프에서 실행되므로 루프를 짧게 만들어 깜박임을 피할 수 있습니다 _loop: jcxz _loop. 당신이 적재 순서 변경하는 경우 또한 데이터 청크의 끝에서 2 바이트를 줄일 수 cxdi
meden

다시 @meden에게 감사드립니다. 플리커 효과는 완전히 불필요 : I은 또한 제거 mov bx, 320및 이동 (320) 에이 add di, 320(이전 add di, bx).
마가렛 블룸

큰. 이제이 과제에서 모든 머신 코드 답변에 대해 확실한 우위를 점하게되었습니다. 정확성을 기하기 위해 : 데이터 끝을 지나서 바이트를로드하지 않도록 jcxz _cycle바로 이동하는 것이 좋습니다 xchg ax,cx. 그리고 출처에 오해의 소지가있는 의견이 있습니다 : ;dx = row. dx코드의 어느 곳에서도 사용되지 않습니다.
meden

55

C, 194 (191) 183 바이트

#define C "\x1b["
#define A "@@@@@@"
y;f(){for(;y++<14;)printf(y>5&&y<10?y>6&&y<9?C"31m"A A A A"@\n":C"0m"A"@@"C"31m@@"C"0m"A A"@@@\n":C"34m"A"@"C"0m@"C"31m@@"C"0m@"C"34m"A A"@@\n");}

-3 첨가 한 @#define A
-11 첨가 [#define C

용법

main(){f();}

산출

영상

OP의이 의견을 바탕으로 유효한

이중 크기 출력, 204 바이트

#define C "\x1b["
#define B "████"
#define A B B B
y;f(){for(;y++<28;)printf(y>10&&y<19?y>12&&y<17?C"31m"A A A A"██\n":C"0m"A B C"31m"B C"0m"A A B"██\n":C"34m"A"██"C"0m██"C"31m"B C"0m██"C"34m"A A B"\n");}

이미지 2


22
5 번째 upvote는 +810 응답 네트워크를 트리거했습니다 ... 감사합니다! (예, 그것은 200 명의 담당자에게 도달 한 첫 번째 사이트입니다. D)
Giacomo Garabello

1
결과가 "단위가 픽셀 또는 문자 인 최소 100 x 72 단위"가 아니어야합니까? 이것은이 요구 사항을 충족하지 않지만 OP가 해당 정의를 공식화 할 때 실수를 한 것으로 보입니다.
Kritzefitz

4
@Kritzefitz 글쎄, 캐릭터는 많은 픽셀을 차지하므로 캐릭터 대신 픽셀이 될 수 있습니다. 구멍을 찾았습니다.
Outgolfer Erik

@GiacomoGarabello 당신이 +150을 얻은 at pic의 첫 번째 사이트는 무엇입니까? 아이콘이 인식되지 않습니다.

@LegoStormtroopr PPCG입니다 !! 이 GitHub 프로젝트를
Giacomo Garabello

31

엑셀 VBA, 254 228 153 바이트

Excel에서 처리하는 방식으로 인해 열 / 행 크기를 픽셀로 설정하는 방법을 찾을 수 없었습니다 (따라서 정사각형으로 만들기).

편집 1 : RGB를 -26 바이트의 색상에 대한 반환 값으로 대체

편집 2 : -75 바이트만큼 많은 제안을 추가하려고했습니다. 나는 &48e0색상 으로 사용할 수 없었고 왜 그런지 잘 모르겠습니다. 모두 감사합니다

Sub e()
c "A1:CV72", rgbBlue
c "AC1:AR72", -1
c "A29:CV44", -1
c "AG1:AN72", 255
c "A33:CV40", 255
End Sub

Sub c(d, f)
Range(d).Interior.Color = f
End Sub

그림: 아이슬란드 깃발


세포를 어떻게 사각형으로 만들었습니까? 수동으로 했습니까, 아니면 다른 스크립트는 포함되어 있지 않습니까? 점수가 매겨진 프로그램의 일부가 아닌 경우에도보고 싶습니다.
mbomb007

수동으로 했으므로 셀 너비를 변경하는 코드는 추가 할 수있을 정도로 충분히 쉽지만 행 / 열 또는 모니터 해상도간에 크기가 일치하지 않습니다. 내가 찾을 수있는 것. 내가 읽은 것에서 해상도를 찾아서 함수가 허용하는 크기로 픽셀을 변환하는 수학을 수행해야합니다.
tjb1

1
또한 픽셀로 변환하는 코드는 해상도의 일부 또는 PPI를 하드 코딩 해야하는 것처럼 보입니다 (실제로 수식을 이해하지 못함). 모든 장치에서 작동하지 않는 것 같습니다.
tjb1

2
그리고 완전성을 위해 (솔루션 자체가 아닌 정사각형 셀을 설정하는 것과 관련하여) 페이지 레이아웃보기로 전환하면 셀 높이와 너비를과 같은 특정 값으로 설정할 수 있습니다 0.2cm. 이것은 다시 전환하면 유지되며 기괴한 Excel 종횡비를 시도하지 않아도됩니다. :-) 그런데 더 멋진 Excel 트릭을 원한다면 Joel Spolsky의 "You suck at Excel"비디오를 찾으십시오.

3
여분의 공백은 나중에 자동으로 추가되지만 제거 할 수 있다고 생각합니다.
Outgolfer Erik

29

MATL , 57 56 52 49 48 바이트

7:g2IvtPvt!9Mh2$X>2YG[0E28]8*255/7B[43DD]51/v2ZG

다음 그림이 생성됩니다 (Matlab 및 Octave에서 실행되는 컴파일러에서 테스트 됨).

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

편집 : MATL Online 에서 실험적으로 시도 할 수 있습니다 ! 처음에 작동하지 않으면 페이지를 다시로드해야 할 수도 있습니다.

작동 원리

7:g         % Range from 1 to 7 converted to logical: push array [1 1 1 1 1 1 1]
2           % Push 2
I           % Push 3
v           % Concatenate vertically into a 9×1 array
tPv         % Duplicate, flip vertically, concatenate. Gives a 18×1 array
t!          % Duplicate, transpose: 1×18 array
9M          % Push [1 1 1 1 1 1 1] again
h           % Concatenate horizontally: gives 1×25 array
2$X>        % Maximum of the two arrays, with broadcast. Gives a 18×25 array
            % with 1 for blue, 2 for white, 3 for red
2YG         % Show image with default colormap
[0E28]8*    % Push array [0 72 224] (blue)
255/        % Divide each entry by 255. Colors are normalized between 0 and 1
7B          % 7 converted into binary: push array [1 1 1] (white, normalized)
[43DD]51/   % Push array [215/255 40/255 40/255] (red, normalized)
v           % Concatenate vertically. Gives a 3×3 array
2ZG         % Use as colormap

26

CSS, 285 284 264 바이트

*,:before,:after{background:#fff;width:100;height:72}body{background:#0048e0;margin:0}:before,:after{content:"";position:fixed}:after{background:#d72828}html:before{top:28;height:16}body:before{left:28;width:16}html:after{top:32;height:8}body:after{left:32;width:8

@insertusername으로 1 바이트를 절약했습니다.

모든 pxs 를 제거하여 @ user2428118 덕분에 20 바이트를 절약했습니다 . 이를 위해서는 페이지가 쿼크 모드로 렌더링되어야하므로 스택 스 니펫에서는 작동하지 않습니다.

오프셋으로 이미지를 감싸는 Python 접근 방식을 복사 할 수는 있지만 흥미롭지는 않습니다.

언 골프 드 :

*, *::before, *::after {
  background: #fff;
  width: 100px;
  height: 72px;
}

body {
  background: #0048e0;
  margin: 0;
}

*::before, *::after {
  content: "";
  position: fixed;
}

*::after { background: #d72828 }

html::before { top: 28px; height: 16px }
body::before { left: 28px; width: 16px }
html::after { top: 32px; height: 8px }
body::after { left: 32px; width: 8px }

이 의사 요소 (HTML에 기록되지 아니 요소)를 사용 ::before하고 ::after플래그에 선을 만들 수 있습니다. HTML없이 작동하는 이유는 HTML5에서 <html><body>요소가 선택 사항이므로 브라우저가없는 경우 자동으로이를 작성하기 때문입니다.

더 재미있는:


2
로 교체 하여 1 바이트 를 절약 할 수 있습니다 . white#fff
insertusername 여기

@insertusername 여기 감사합니다.
gcampbell

1
쿼크 모드 (doctype이없는 페이지)에서 CSS를 적용하면 px어디에서나 생략하여 264 바이트로 줄일 수 있습니다.
user2428118

@ user2428118 HTML이 없기 때문에 더 유용합니다 <!doctype html>!
wizzwizz4

@ user2428118 어떤 이유로 든 모바일 Safari에서는 작동하지 않습니다. 다음에 컴퓨터를 볼 때 살펴 보겠습니다.
gcampbell

26

배쉬 + Imagemagick 7, 94 90 86 85 바이트

magick -size 84x56 xc:#0048e0 ${s=-splice 8x8}+28+28 -background \#d72828 $s+32+32 x:

@manatwork 덕분에 8 바이트, @ GlennRanders-Pehrson 덕분에 1 바이트 절약


5
x:출력 파일 이름 대신 지정 convert하면 결과가 창에 표시되며 허용됩니다. 그리고 날카로운 것을 피하기에 충분하며 인용 할 필요가 없습니다 \#d72828.
manatwork

2
일반적으로 Bash + Imagemagick 와 같은 답변에 레이블을 지정 합니다. 에 bash면 다른 4 개 문자를 저장할 수 있습니다 convert -size 84x56 xc:#0048e0 ${s=-splice 8x8}+28+28 -background \#d72828 $s+32+32 x:.
manatwork

바보 같은 질문 : 할 수 있습니까 ${s=-splice 8x8}+56?
Outgolfer Erik

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ +56는로 취급 +56+0되지 않습니다 +28+28.
bodqhrohro

2
최신 버전의 ImageMagick을 사용하여 다른 바이트를 저장할 수 있습니다. 그러면 "convert"대신 "magick"명령이 될 수 있습니다.
글렌 랜더스-피어슨

20

ZX 스펙트럼 BASIC, 210 (141) 92 바이트

1 LET n=-VAL "8.5": FOR y=n TO -n: FOR x=n TO VAL "16": LET p=VAL "271"(PI-(ABS x<SQR PI OR ABS y>SQR PI)-NOT INT ABS x*INT ABS y): PRINT PAPER p; BRIGHT p>PI;" ";: NEXT x: PRINT : NEXT y

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

크기는 테이프를 통한 BASIC 프로그램의 크기로 결정됩니다 SAVE. FacebookZX Spectrum 그룹 회원 , 특히 @impomatic 및 Johan Koelman 에게 많은 골프 크레딧을 제공합니다.


사람들을보고 PAPER하고 BRIGHT:-) 너무 많은 좋은 추억을 제공합니다
루이스 Mendo

ZX Spectrum BASIC 프로그램의 메모리 용량에 대한 정보가 있습니까? 나는 즉, 내가 기대, 그것은 "토큰 화"언어라고 생각 FOR, NOT각 단지 1 아니면 2 바이트를 차지하는 등
루이스 Mendo

1
@LuisMendo 예, 토큰 화되어 FOR있습니다. 정확히 1 바이트입니다. 그러나 숫자는 텍스트와 이진 형식 으로 저장되며 예상보다 5 바이트 더 많이 차지하므로 NOT PI0 이 아닌 "토큰 화되지 않습니다" .
Philip Kendall

AT를 제거하고 경계 테스트를 조정하여 132 바이트 twitter.com/john_metcalf/status/752760203007791105
impomatic

1
추가 최적화 기능이있는 122 바이트 twitter.com/john_metcalf/status/752783690179211264
impomatic

15

ZX Spectrum Z80 어셈블리, 65 바이트

    ld hl,22528
    ld b,7
    ld de,120*256+8 ; white, blue
    ld a,16         ; red

; create the first row

blueleft:
    ld (hl),e
    inc hl
    djnz blueleft

    ld (hl),d
    inc hl
    ld (hl),a
    inc hl
    ld (hl),a
    inc hl
    ld (hl),d
    inc hl

    ld b,14
blueright:
    ld (hl),e
    inc hl
    djnz blueright

; copy the first row to the next 17 rows

    ld l,b
    ld de,22528+32
    ld bc,17*32
    ldir

; add the horizontal stripe

    ld hl,22528+7*32
    dec d
    ld e,b
    ld c,2
midrep:
    ld b,25
midstripe:
    cp (hl)
    jr z,red
    ld (hl),120
red:
    ld (de),a
    inc hl
    inc de
    djnz midstripe

    ld hl,22528+10*32
    ld e,9*32
    dec c
    jr nz,midrep
    ret

아이슬란드 깃발


14

마인 크래프트 1.10.2, 734 자

734 자일 수 있지만 지금까지 실제 양모 로 만들어진 유일한 제출물입니다 !

summon FallingSand ~ ~1 ~ {Block:log,Time:1,Passengers:[{id:FallingSand,Block:redstone_block,Time:1,Passengers:[{id:FallingSand,Block:activator_rail,Time:1,Passengers:[{id:MinecartCommandBlock,Command:"fill 0 ~ 0 100 ~ 72 wool 11"},{id:MinecartCommandBlock,Command:"fill 28 ~ 0 44 ~ 72 wool"},{id:MinecartCommandBlock,Command:"fill 0 ~ 28 100 ~ 44 wool"},{id:MinecartCommandBlock,Command:"fill 32 ~ 0 40 ~ 72 wool 14"},{id:MinecartCommandBlock,Command:"fill 0 ~ 32 100 ~ 40 wool 14"},{id:MinecartCommandBlock,Command:setblock ~ ~ ~1 command_block 0 replace {Command:fill ~ ~-3 ~-1 ~ ~ ~ air}},{id:MinecartCommandBlock,Command:setblock ~ ~-1 ~1 redstone_block},{id:MinecartCommandBlock,Command:kill @e[type=MinecartCommandBlock]}]}]}]}

약 -5x -5z로 이동하여 임펄스 명령 블록에 붙여넣고 "항상 활성"으로 설정하고 완료를 누르십시오.

플래그는 0, 0 내지 100, 72에 걸쳐 있으며; 배치 된 명령 블록 위의 3 블록입니다. 그것은 상당히 큰 그림자를 캐스트 , 몬스터는 그 아래에 산란. 그러나 이것이 아이슬란드 국가에 정확한지 여부는 누구나 추측 할 수 있습니다.

공정한 경고- MinecartCommandBlock네 명의 캐릭터를 구하기 위해 세계 모든 사람들을 죽일 것 입니다. 과도하게 연결된 세상에서는 이것을 실행하지 마십시오.

깃발

MrGarretto의 명령 결합기를 사용 하고 출력을 약간 조정했습니다 (808-> 734).


1
"이것이 아이슬란드의 나라에 정확한지 ..."😂
Jordan Jordan

2
대상 선택기 인수없이 kill @e를 사용할 수 없습니까? 그것은 플레이어를 죽일 것이다. 그러나 이봐 깃발은 여전히 ​​거기있을 것이다
Kuilin Li

11

로고, 216 188 바이트

사용 Calormen.com의 구현을 . 순수 주의자에게는 구현에 안티 앨리어싱을 사용하여 가장자리를 약간 깃털로 만듭니다. 그래도 거북이를 숨기고 3 바이트를 낭비 했으므로 그것을 보완해야합니다.

로고 구현으로 창의 크기를 설정할 수 있으면 크게 줄일 수 있습니다. 그런 다음 wrap거북이를 쟁기질로 뚫고 네 번의 스트로크로 십자가를 만들고 테두리로 자르지 않아도됩니다.

생성 된 플래그 스크린 샷

TO X :C :S
setpc :C
setpensize :S
home
pd
setx 100
setx 36
bk 36
fd 72
pu
END
setpc "#48e0
fill
X 7 16
X "#d72828 8
fd 4
pe
pd
setx -4
bk 80
setx 104
fd 80
setx 0
ht

영어 버전의 로고가 있는지 몰랐습니다!
Vincent

1
물론. 30 년 전 애플 IIe에서 처음 본 것 같습니다. 또한 TRS-80 컬러 컴퓨터에도 설치했습니다. 학교에서 공식적으로 배우기 몇 년 전에 기하학에서 각도를 사용하는 것이 처음 맛이었습니다.
기타 피커

왜 주변에 흰색 테두리가 있습니까?
Solomon Ucko

1
나는 큰 펜을 사용하여 선을 그렸습니다. 십자가의 끝 부분에 둥근 모서리가 남았으므로 큰 지우개로 그 주위를 쓸어 넘겨야했습니다. 로고에서 완전히 다른 방법을 사용하고 더 작은 것으로 판명 된 다른 버전을 작성 중입니다. 또한 큰 유니 코드 라틴 십자가를 인쇄하고 페인트하는 세 번째 버전을 작업하고 있었지만 비율이 맞지 않고 크기 가이 것을 초과하는 것처럼 보였습니다.
GuitarPicker

10

Java 8, 449 447 바이트 :

import java.awt.*;import javax.swing.*;class A extends JPanel{public void paintComponent(Graphics G){super.paintComponent(G);G.setColor(new Color(0,72,224));G.fillRect(0,0,175,126);G.setColor(Color.WHITE);G.fillRect(49,0,28,126);G.fillRect(0,49,175,28);G.setColor(new Color(215,40,40));G.fillRect(56,0,14,126);G.fillRect(0,56,175,14);}public static void main(String[]a){JFrame J=new JFrame();J.add(new A());J.setSize(175,147);J.setVisible(true);}}

가장 늦게 답변이자 가장 긴 답변이기도합니다. 용도 java.awt.Graphics만들고 파란색 블록, 빨간색 줄무늬의 흰색 줄무늬 2, 2 1로 구성된 총 5 개 사각형으로 만들어 그 안에있는 플래그가있는 창을 엽니 다 클래스를. 7 픽셀 : 1 단위 비율을 사용합니다. 즉, 각 유닛마다 7 픽셀이 사용된다. OS X 10.11이 설치된 Macintosh에서의 출력 이미지는 다음과 같습니다.

출력 예

이제 골프를 조금 더하는 방법을 찾으려면 ...


paint대신 재정의 를 시도하십시오 paintComponent. JPanel에 익명 클래스 사용을 고려하십시오. BufferedImage를 사용하고 파일로 출력하는 것을 고려하십시오.
Justin

@Justin 사실, 나는 이미 Blue배경에 거대한 사각형 하나를 사용하고있었습니다. 방금 이것과 파이썬으로 만든 다른 버전이 섞여 있습니다. 그럼에도 불구하고 다른 팁에 감사드립니다! :)
R. Kap

추가 제안 사항 :을 사용하지 JPanel말고을 재정의하십시오 JFrame. 이렇게 그냥 오버라이드 (override)하는 경우 paint, 당신은 스윙, 단지 AWT를 필요로하기 때문에 변경하지 마십시오 JFrameFrame하고 가져 오기를 제거합니다. 전화하지 마십시오 super.paint. 주요 방법을 재정렬하십시오. setSize를의 paint메소드 로 옮기고 Frame변수를 제거 하고 익명 클래스의 끝에 J추가하십시오 .setVisible(true). 마지막으로, 변경 .setVisible(true)show()예는 사용되지 않는 방법입니다,하지만 짧은입니다. 를 사용 하여 기본 방법에서 interface를 제거하십시오 public.
Justin

338 자에서의 최종 결과 (프레임이므로 높이를 변경해야 함) :import java.awt.*;interface A{static void main(String[]a){new Frame(){public void paint(Graphics G){setSize(175,119);G.setColor(new Color(0,72,224));G.fillRect(0,0,175,126);G.setColor(Color.WHITE);G.fillRect(49,0,28,126);G.fillRect(0,49,175,28);G.setColor(new Color(215,40,40));G.fillRect(56,0,14,126);G.fillRect(0,56,175,14);}}.show();}}
Justin

1
더 좋은 방법 : 첫 번째 사각형을 페인트하지 말고 전화하십시오 setBackground(color)(크기도 여전히 잘못되었습니다). 현재 317 :import java.awt.*;interface A{static void main(String[]a){new Frame(){public void paint(Graphics G){setSize(175,126);setBackground(new Color(0,72,224));G.setColor(Color.WHITE);G.fillRect(49,0,28,126);G.fillRect(0,49,175,28);G.setColor(new Color(215,40,40));G.fillRect(56,0,14,126);G.fillRect(0,56,175,14);}}.show();}}
Justin

10

R, 197 195 187 바이트

w="white";r="#d72828";png(w=100,h=72);par(mar=rep(0,4),bg="#0048e0",xaxs="i",yaxs="i");frame();rect(c(0,7,0,8)/25,c(7,0,8,0)/18,c(1,.44,1,.4),c(11/18,1,5/9,1),c=c(w,w,r,r),b=NA);dev.off()

새로운 줄과 설명으로 들여 쓰기 :

w="white"
r="#d72828"
png(w=100,h=72) #Creates in working directory a png called Rplot001.png 
                #with a width and a height of 120 and 72 pixels respectively.
par(mar=rep(0,4), #No margin around the plot
    bg="#0048e0", #Blue background
    xaxs="i",yaxs="i") #Axes fits range exactly
frame() #Creates an empty plot which range is xlim=c(0,1) & ylim=c(0,1)
rect(c(0,7,0,8)/25, #Because rect is vectorized
     c(7,0,8,0)/18,
     c(1,.44,1,.4), #i. e. c(25,11,25,10)/25
     c(11/18,1,5/9,1), #i. e. c(11,18,10,18)/18
     c=c(w,w,r,r), # c= is the same as col=, thanks to argument name completion
     b=NA)#No borders
dev.off()

섬 깃발

편집 : 밝혀 frame()반대로, plot()또는 plot.new()의미는 기본적으로 플롯에 테두리를 추가하지 않습니다 bty="n"여기에 불필요한이었다.


9

Atari 8 비트 실행 파일, 123 바이트

또 다른 "재미있는"항목 인이 프로그램은 Atari 8 비트 컴퓨터 또는 에뮬레이터에서 실행됩니다. 예를 들어 Atari800에 프로그램을로드하려면 다음을 실행하십시오.

atari800 iceland.xex

기계 코드 (16 진 바이트)

ff ff 00 06 74 06 a9 1b 8d 30 02 a9 06 8d 31 02
a9 44 8d c4 02 a9 0f 8d c5 02 a9 84 8d c6 02 d0
fe 70 70 70 48 57 06 48 57 06 48 57 06 48 57 06
48 57 06 48 57 06 48 57 06 48 61 06 48 6b 06 48
6b 06 48 61 06 48 57 06 48 57 06 48 57 06 48 57
06 48 57 06 48 57 06 48 57 06 41 1b 06 ff fe 5b
ff ff ff c0 00 00 00 aa aa 5a aa aa aa 80 00 00
00 55 55 55 55 55 55 40 00 00 00

어셈블러 소스 코드 ( MADS 로 컴파일 가능 ) :

        org $0600
        lda <dlist
        sta $0230
        lda >dlist
        sta $0231
        lda #$44
        sta $02c4
        lda #$0f
        sta $02c5
        lda #$84
        sta $02c6
loop    bne loop
dlist   dta $70, $70, $70
        dta $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1)
        dta $48, a(line2)
        dta $48, a(line3), $48, a(line3)
        dta $48, a(line2)
        dta $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1), $48, a(line1)
        dta $41, a(dlist)
line1   dta $ff, $fe, $5b, $ff, $ff, $ff, $c0, $00, $00, $00
line2   dta $aa, $aa, $5a, $aa, $aa, $aa, $80, $00, $00, $00
line3   dta $55, $55, $55, $55, $55, $55, $40, $00, $00, $00

작동 방식 :

이 프로그램은 ANTIC 모드 8 (라인 당 40 픽셀, 2bpp)을 기반으로하는 사용자 지정 표시 목록을 사용합니다. 반복되는 라인은 동일한 메모리 위치에서로드됩니다. 디스플레이를 설정 한 후 프로그램은 무한 루프로 들어갑니다.

스크린 샷 :

Atari800에서 실행되는 iceland.xex


9

FFmpeg, 339184 바이트

ffplay -f lavfi color=d72828:100x36[r];color=white:64x32[w];color=0048e0:56x28[b];[w][b]overlay=4,split[x][y];[r][x]overlay=-32[d];[d][y]overlay=40,split[t][m];[m]vflip[n];[t][n]vstack

이 아래로 골프를 시도합니다.

아이슬란드 깃발의 100x72 이미지


9

파이썬 119 118 114 112 바이트

특별하고 간단한 것은 없습니다.

b,w,r="\0H\xe0"*28,"\xff"*12,"\xd7(("*8
A,B=28*(b+w+r+w+2*b),4*(8*w+r+15*w)
print"P6 100 72 255 "+A+B+100*r+B+A

이진 PPM으로 출력, 사용법

python golf_iceland.py > iceland.ppm
  • Edit1 : print와 따옴표 사이에 바이트를 넣었습니다.
  • 편집 2 : 이진 PPM보다 약간 짧음
  • Edit3 : \0대신 사용할 수있는 그림\x00

인쇄 할 수없는 ASCII 문자를 직접 사용하는 방법을 아는 사람이 있으면 알려주십시오.

PNG로 변환


2
축하합니다! 너는 나를 많이 때렸다 : D
Gábor Fekete

2
@ GáborFekete는 바이트 단위로 당신을 이겼습니다. 그러나 귀하의 답변은 그 오프셋에 대해 훨씬 더 영리합니다
Karl Napf

탈출 자체 대신 탈출 결과가 나오지 않는 이유는 무엇입니까?
Solomon Ucko

@SolomonUcko b,w,r="\0Hà"*28,"ÿ"*12,"×(("*8Python 3를 사용해 보았지만 작동하지 않습니다.
Karl Napf

@KarlNapf, 어떻게 실패 했습니까? 잘못 그리거나 오류 메시지가 표시 되었습니까? 인코딩 문제 일 수도 있습니다.
Solomon Ucko

8

자바 스크립트, 267 바이트

document.write("<div style='width:250px;height:180px;background:"+[[b="bottom",44.4,d="d72828",55.6],[r="right",32,d,40],[b,38.9,e="fff",61.1],[r,28,e,44]].map(([d,a,c,o])=>`linear-gradient(to ${d+(t=",transparent ")+a}%,#${c} ${a}%,#${c} ${o}%${t+o}%)`)+",#003897'")


1
왼쪽과 오른쪽 파란색 너비의 7-14 비율이 맞습니까?
manatwork

1
@manatwork 죄송합니다. 어떤 이유로 100 / 25 = 5라고 생각했기 때문에 모든 것이 25 % 너무 넓었습니다.
Neil

8

자바, 335 바이트

기능은

void w()throws Exception{int w=100,h=72;BufferedImage i=new BufferedImage(w,h,1);Graphics g=i.getGraphics();g.setColor(new Color(18656));g.fillRect(0,0,w,h);g.setColor(WHITE);g.fillRect(0,28,w,16);g.fillRect(28,0,16,h);g.setColor(new Color(14100520));g.fillRect(0,32,w,8);g.fillRect(32,0,8,h);ImageIO.write(i,"png",new File("f.png"));}

그리고 f.png100x72 크기의 원하는 이미지를 씁니다.

(이것은 파일을 작성하고 화면에 이미지를 표시하지 않기 때문에 Answer by R. Kap 과 직접적인 경쟁자 가 아닙니다.)

컴파일하고 실행할 수있는 ungolfed 버전은 다음과 같습니다.

import static java.awt.Color.WHITE;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

public class Iceland
{
    public static void main(String[] args) throws Exception
    {
        Iceland i = new Iceland();
        i.w();
    }

    void w() throws Exception
    {
        int B=0x0048e0,R=0xd72828,w=100,h=72;
        BufferedImage i=new BufferedImage(w,h,1);
        Graphics g=i.getGraphics();
        g.setColor(new Color(B));
        g.fillRect(0,0,w,h);
        g.setColor(WHITE);
        g.fillRect(0,28,w,16);
        g.fillRect(28,0,16,h);
        g.setColor(new Color(R));
        g.fillRect(0,32,w,8);
        g.fillRect(32,0,8,h);
        ImageIO.write(i,"png",new File("f.png"));
    }
}

관련 질문에 관한 참고 사항 : 아마도 깃발을 칠하기 위해 도전해야 할 수도 있습니다.

  • 인도네시아 공화국
  • 폴란드
  • 핀란드
  • 프랑스
  • 네덜란드
  • 태국
  • 노르웨이

동시에 :

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


7

SVG + 자바, 190 (165) 164 바이트

거기에 전문가가 없으며 색상과 선 너비를 변경하기 위해 하나의 경로를 반복하는 것은 바보 같은 자바 스크립트 ftw입니다!

document.write(`<svg><rect width=100 height=72 fill="#0048e0"/>${a='<path d="M0 36L100 36M36 0L36 72"style="stroke-width:'}16;stroke:#fff"/>${a}8;stroke:#d72828">`)

더 읽기 쉬운 :

document.write(`<svg><rect width=100 height=72 fill="#0048e0"/>
${a='<path d="M0 36L100 36M36 0L36 72"style="stroke-width:'}16;stroke:#fff"/>
${a}8;stroke:#d72828">`)

path d="m0,0h100v72H0"사각형 대신에 2 바이트를 저장할 수 있습니다 . 마찬가지로 M0 36H100M36 0V72다른 경로의 데이터에 사용하면 5 바이트가 더 절약됩니다. 그리고 당신은 삭제할 수 있습니다 style모두 선언에 찬성 속성 stroke-widthstroke속성으로 앞으로 5 바이트를 저장합니다.
Joey

7

136 바이트 처리

size(100,72);noStroke();background(#0048e0);fill(255);rect(28,0,16,72);rect(0,28,100,16);fill(#d72828);rect(0,32,100,8);rect(32,0,8,72);

언 골프

//open the window
size(100,72);
//turn off borders that surround shapes by default
noStroke();
//draw blue as the background
background(#0048e0);
//set color to white
fill(255);
//draw 2 white bars
rect(28,0,16,72);
rect(0,28,100,16);
//set color to red
fill(#d72828);
//draw 2 red bars
rect(0,32,100,8);
rect(32,0,8,72);

산출:

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


1
당신은 사용하여 두 개 이상의 바이트를 면도 할 수 fillrect대신 size하고 background. 134 바이트 :noStroke();fill(#0048e0);rect(0,0,100,72);fill(255);rect(0,28,100,16);rect(28,0,16,72);fill(#d72828);rect(0,32,100,8);rect(32,0,8,72);
GuitarPicker

GuitarPicker의 말에 덧붙이는 fill(-1)것보다 1 바이트가 짧습니다.fill(255)
Cows quack

7

Mathematica 174157 바이트

내장없이 :

157 바이트

r=Rectangle;c=RGBColor;Graphics@{c[{0,72,224}/255],r[{0,0},{25,18}],White,r[{7,0},{11,18}],r[{0,7},{25,11}],c[{43,8,8}/51],r[{8,0},{10,18}],r[{0,8},{25,10}]}

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

또는 대안 적으로

232 바이트

x=Join[Unitize/@Range@7,{0},{2,2},{0},Unitize/@Range@14]&/@Range@7;y=Join[ConstantArray[0,8],{2,2},ConstantArray[0,15]];z=ConstantArray[2,25];ArrayPlot[Join[x,{y},{z,z},{y},x]/.{2->RGBColor[{43,8,8}/51],1->RGBColor[{0,72,224}/255]}]

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


1
천만에요. 두 번째 더 긴 버전에도 동일하게 적용될 수 있습니다. u=Unitize;c=ConstantArray기타 ^ _ ^
Dan Oak

1
잠깐, Mathematica가 내장하지 않은 것이 있습니까? 놀랐어요.
Morgan Thrapp

@MorganThrapp 나는 내장을 사용하여 다른 Mathematica 답변이 있었을 것이라고 확신합니다.
gcampbell

3
있다CountryData["Iceland", "Flag"]
dwa

7

자바 스크립트 (ES6) 231 240

아래 스 니펫 내부의 코드 테스트를 실행하십시오.

d=(w,h,c)=>`<div style=float:left;width:${w}em;height:${h}em;background:#${['0048e0','fff','d72828'][~~c]}>`;document.write(d(25)+(a=[252,61,94,61,476]).concat(b=[261,70,485],810,b,a).map(v=>d(v>>5,v/4&7,v&3)).join(e='</div>')+e+e)


7

ZX Spectrum Z80 어셈블리, 51 바이트

https://github.com/ralphbecket/Z80/blob/master/IcelandFlag/IcelandFlag.asm

                zeusemulate "48K", "ULA+"
ZeusEmulate_PC  equ Main
ZeusEmulate_SP  equ $FF40

                org $8000

MinWhite        equ 7
MinRed          equ MinWhite + 1
TopRed          equ MinRed + 2
TopWhite        equ TopRed + 1
Height          equ TopWhite + MinWhite - 2
Width           equ TopWhite + 2 * MinWhite - 1

White           equ %01111000
Red             equ %01010000
Blue            equ %01001000

Main            ld hl, $5800 + ((Height - 1) * 32) + (Width - 1)
                ld c, Height

YLoop           ld b, Width

XLoop           ld (hl), Red
                ld de, MinRed * $100 + TopRed
                call Test
                jr c, Next

                ld (hl), White
                ld de, MinWhite * $100 + TopWhite
                call Test
                jr c, Next

                ld (hl), Blue

Next            dec hl
                djnz XLoop
                ld de, -(32 - Width)
                add hl, de
                dec c
                jr nz, YLoop
                ret

Test            equ *
TestX           ld a, b
                cp d
                jr c, TestY
                cp e
                ret c
TestY           ld a, c
                cp d
                ccf
                ret nc
                cp e
                ret

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


7

J, 86 84 83 바이트

   load'viewmat'
   (255,0 72 224,:215,2#40)viewmat _9 _9|.2(b=.[,~[,.~[,[,.])0 b 14 21$1

이 접근법은 @ Gábor Fekete의 Python과 동일합니다.

왼쪽 인자 colors에 대한이 viewmat우리의 경우 RGB 값들의 배열이다 :

255 255 255
  0  72 224
215  40  40

그리고 올바른 주장은의 지수 행렬입니다 colors. 각 차원에서 9 개의 항목
(_9 _9 |. matrix)을 이동하도록 지시 matrix합니다.
무서운 건축 은 숫자로 (border ([,~[,.~[,[,.]) matrix)감싼다 . 그리고 사람의 14 × 21 행렬을 만든다.matrixborder
(14 21 $ 1)

출력은 기본적으로 크기 조정이 가능한 별도의 창에 표시됩니다. 여기에 이미지 설명을 입력하십시오

감사

마일-색상을 재정렬하여 2 바이트를 절약 ,하고 모양 계약의 숫자 (255)를 복제하는 기능을 사용했습니다 .


1
깃발의 높이는 25 대신 26
Gábor Fekete

@ GáborFekete hm, 높이가 18 대신 19라는 것을 의미합니까? 언급하지 않은, 단지 당신의 의견 후에 주목
Dan Oak

아 맞다. 나는 높이를 썼지 만 너비 값을 사용했다.
Gábor Fekete

그렇습니다. 나는 가치에 실수를했다. 초기 행렬의 모양은 14 21( 18 25 - 4 4) 이어야합니다 . 수정 중입니다. 감사합니다!
Dan Oak

1
당신은 RGB 값 재정렬 2 바이트를 저장할 수 있습니다(255,0 72 224,:215 40 40)viewmat _9 _9|.2(b=.[,~[,.~[,[,.])0 b 14 21$1
마일

6

TI-BASIC (비경쟁), 323 바이트

TI-84, 83 및 변형 코드가 작성되었습니다. 장치마다 치수가 다르고 코드가 색상이 아닌 것이 문제가되지 않기를 바랍니다.

설정:

:18→Xmax:¯18→Xmin
:10→Ymin:¯10→Ymin
:AxesOff

그림:

:Line(¯15,9,¯8,9)
:Line(¯8,9,¯8,2)
:Line(¯8,2,¯15,2)
:Line(¯15,2,¯15,9)

:Line(¯15,¯9,¯8,¯9)
:Line(¯8,¯9,¯8,¯2)
:Line(¯8,¯2,¯15,¯2)
:Line(¯15,¯2,¯15,¯9)

:Line(¯4,9,10,9)
:Line(¯4,2,10,2)
:Line(¯4,9,¯4,2)
:Line(10,9,19,2)

:Line(¯4,¯9,10,¯9)
:Line(¯4,¯2,10,¯2)
:Line(¯4,¯9,¯4,¯2)
:Line(10,¯9,19,¯2)

:Line(¯15,1,¯7,1)
:Line(¯15,¯1,¯7,¯1)
:Line(¯5,1,20,1)
:Line(¯5,¯1,¯20,¯1)
:Line(¯7,¯1,¯7,¯9)
:Line(¯5,¯1,¯5,¯9)
:Line(¯7,1,¯7,9)
:Line(¯5,1,¯5,9)

골프 :

:18→Xmax:¯18→Xmin:10→Ymin:¯10→Ymin:AxesOff:Line(¯15,9,¯8,9:Line(¯8,9,¯8,2:Line(¯8,2,¯15,2:Line(¯15,2,¯15,9:Line(¯15,¯9,¯8,¯9:Line(¯8,¯9,¯8,¯2:Line(¯8,¯2,¯15,¯2:Line(¯15,¯2,¯15,¯9:Line(¯4,9,10,9:Line(¯4,2,10,2:Line(¯4,9,¯4,2:Line(10,9,19,2:Line(¯4,¯9,10,¯9:Line(¯4,¯2,10,¯2:Line(¯4,¯9,¯4,¯2:Line(10,¯9,19,¯2:Line(¯15,1,¯7,1:Line(¯15,¯1,¯7,¯1:Line(¯5,1,20,1:Line(¯5,¯1,¯20,¯1:Line(¯7,¯1,¯7,¯9:Line(¯5,¯1,¯5,¯9:Line(¯7,1,¯7,9:Line(¯5,1,¯5,9

그렇습니다. 부족 )은 의도적입니다.

크기:

Line(그와 같은 모든 명령은 1 바이트를 차지하며 각 숫자는 1 바이트를 취합니다. 323 바이트입니다.

그것은 절대 지루했습니다. 나는 이것을 에뮬레이터에서 희망적으로 얻을 것입니다 (수동으로 모든 것을 입력해야합니다). 그러나 문자 그대로 깃발 모양의 선입니다.


1
@ Random832 이상하게도 그렇습니다! 여기에서 토큰 크기를 확인하십시오 : tibasicdev.wikidot.com/line 바이트가 정확히 무엇인지 잘 모르겠습니다. 그러나 나는 계산기에서 본질적으로 문자로 취급된다는 것을 알고 있습니다.
charredgrass

1
@ Random832의 바이트 Line(는 0x9C입니다. 1 바이트 토큰 표는 여기에서 볼 수 있습니다. tibasicdev.wikidot.com/one-byte-tokens
f ''

1
당신은 (사용 영역을 사용하여 그래프 수 없습니다 <>그레이 스케일 음영을 얻을 대신 라인)?
mbomb007

7
이것이 경쟁이 아닌 이유는 무엇입니까?
Mego

1
이제 색상 TI-84가 있으므로 약간만 수정해도 색상 TI-84를 실행할 수 있습니다.
Moshe Katz

6

씨#, 384 346 317 292 291 289 바이트

Windows Forms 및 GDI를 사용한 간단한 솔루션

Func<int,int,Point>p=(x,y)=>new Point(x*10,y*10);var b=new Bitmap(250,180);var g=Graphics.FromImage(b);g.Clear(Color.Blue);g.DrawLines(new Pen(Color.White,40),new[]{p(0,9),p(50,9),p(9,-20),p(9,18)});g.DrawLines(new Pen(Color.Red,20),new[]{p(0,9),p(50,9),p(9,-20),p(9,18)});b.Save("b.png");

용법

새 콘솔 프로젝트를 시작하고 위의 코드를 주 메서드에 넣고 System.Drawing-Namespace를 추가하십시오.

작동 원리

코드는 새로운 이미지를 생성하고 그 위에 선을 그립니다. 이미지를 디스크에 저장합니다. 선의 끝점 중 일부는 보이는 영역 밖에 있습니다.

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


PPCG에 오신 것을 환영합니다! 훌륭한 첫 번째 코드 골프이지만 개선 할 수있는 것처럼 보입니다. 먼저, 당신이 여기저기서 약간의 공백을 제거 할 수 있다고 생각합니다 ( b = new=> b=new, using ()=> using(), 뒤에 공백을 사용하지 마십시오 ;. 원한다면 C #에서 골프를위한 팁을 읽고 조언을 찾을 수 있습니다.
Katenkyo

감사합니다. 공백이 제거되고 using 문도 삭제됩니다. 나는 또한 익명 변수를 사용합니다.
soema

물론 필요 Process.Start(f);합니까? 내가 이해하는 것과 비슷합니다 cmd start. 이미지를 저장 또는 표시하도록 선택하고 이미 저장 했으므로 해당 단계는 의미가없는 것 같습니다. 어떤 경우에는 변수 f 선언도 피할 수 있습니다.
manatwork

예! 지금 저장하고 더 이상 열지
마십시오

네임 스페이스 using및 메소드 선언 또는 프로그램 상용구에 대한 바이트 수를 계산해야합니다 . 이것은 필요한 것의 일부입니다 (작업은 함수 또는 프로그램의 선택을 제공하지만 단지 많은 문장의 선택은 제공하지 않습니다).
Joey

6

파이썬 IDLE, 191 (172) 156 바이트

IDLE은 Python의 표준 IDE입니다. 사용자 정의 테마가 없으면 STDOUT파란색, STDERR빨간색 및 배경이 흰색입니다. 따라서 다음 코드는

from sys import*
x=[1]*7;y=[0]*7;z=[0,2,2,0]
f=[x+z+x*2]*4+[y+z+y*2,[2]*25]
for s in f+f[::-1]:[[stderr,stdout][-x].write(' █'[x>0]*2)for x in s];print()

이 출력을 생성합니다.

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

인쇄 문자가 정사각형이 아니기 때문에 약간 벗어 났지만 1 단위를 2 문자, 1 문자 높이로 사용하면 비율이 정확합니다.

너비 차원을 반으로 나누고와 같은 블록에 ASCII 문자를 사용하여 골프를 칠 수 '#'있지만 정확히 같은 효과는 없습니다.


설명

코드 자체는 현재 매우 부끄러워 보이고 확실히 골프를 칠 수 있지만 기본 아이디어는 다음과 같습니다.

  • 0공백을 1나타내며 파란색 블록을 2나타내며 빨간색 블록을 나타내는 행렬을 만듭니다.
    • 전반부는 (주로 목록 슬라이싱 / 곱셈을 통해) 구성되며 전체 플래그를 생성하기 위해 그 반대로 추가됩니다.
  • 행렬을 반복하여 각 값을 공백 또는 블록으로 STDERR/ STDOUT에 인쇄합니다. 각 행 다음에 줄 바꿈을 인쇄하십시오.

6

파이썬 터틀, 176 바이트

또 다른 Python Turtle 구현이지만 이번에 는 그리기 대신 스탬핑을 기반으로합니다. .

from turtle import*
shape("square")
c=color
c("navy")
z=shapesize
z(18,25)
s=stamp
s()
c("white")
z(4,25)
s()
bk(70)
seth(90)
s()
c("#d72828")
z(2,18)
s()
home()
z(2,25)
done()

스탬핑을 사용하고 쉽게 확장 할 수 없도록하면 약 60 바이트의 코드가 절약됩니다.

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

재미있는 부분은 호출 에서 "square"다각형 옵션을 다각형 옵션으로 대체하고 ecogroovy 로고를 얻을 수 있다는 것입니다."turtle"shape()

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


5

펄, 134 바이트

참고 : \x1b실제로 ASCII 이스케이프 문자이며 1 바이트로 계산됩니다.

($b,$w,$r)=map"\x1b[48;5;${_}m",18,15,1;print@l=("$b "x7,"$w $r  $w $b",$"x14,$/)x7,@m=("$w "x8,"$r  ","$w "x15,$/),("$r "x25,$/)x2,@m,@l

용법

다른 이름으로 저장 iceland-flag.pl하고 다음을 통해 실행 하십시오 .

perl iceland-flag.pl

뭉개진 깃발

ANSI 이스케이프 시퀀스를 사용하고 Linux 터미널이 플래그를 표시한다고 가정합니다. 제공된 측정 값을 사용하여 약간 이상하게 보입니다.

펄, 141 바이트

이 버전은 실제 크기에 조금 더 가깝습니다 ...

($b,$w,$r)=map"\x1b[48;5;${_}m",18,15,1;print@l=("$b "x14,"$w  $r    $w  $b",$"x28,$/)x7,@m=("$w "x16,"$r "x4,"$w "x30,$/),("$r "x50,$/)x2,@m,@l

덜 찌그러진 깃발


1
이상한 점은 캐릭터가 너비보다 키가 크다는 것입니다.
Outgolfer Erik

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ 실제로 사각형 너비의 정사각형 글꼴이 있는지 궁금했지만, 그 글꼴이 특히 좋아 보인다고는 생각하지 않습니다! 두 번째 버전을 더 가깝게 보이도록 업데이트 할 수 있습니다 (현재보다 더 많은 바이트를 사용해서는
Dom Hastings

TTY에서 그런 것을 궁금해 할 수 없습니다 . 글꼴은 THE FONT입니다! 마음에 들지 않기 때문에 변경할 수 없습니다.
Outgolfer Erik

5

SpecaBAS-150 바이트

1 a=15,b=250,c=180: FOR i=1 TO 5: READ k,x,y,w,h: RECTANGLE INK k;x,y,w,h FILL: NEXT i
2 DATA 1,0,0,b,c,a,71,0,40,c,a,0,71,b,40,2,81,0,20,c,2,0,81,b,20

잉크 색상, x, y, 너비 및 높이를 읽고 해당 좌표 / 치수를 사용하여 사각형을 그립니다.

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


각각 뒤에 공백이 필요 :합니까? 아, 그리고 그것은 151 바이트입니다.
Outgolfer 에릭
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.