프랑스의 국기를 그립니다


106

프랑스의 국기 에는 다른 많은 도전 과제가 게시되었지만 하나는 없습니다 . 이번주 는 적절한 시간 인 것 같습니다.

가능한 최소 바이트로이 플래그를 생성하십시오.

프랑스 국기

  • 이미지의 너비는 최소 78 픽셀, 높이는 52 픽셀 인 3 : 2의 비율이어야합니다.
  • 각 스트라이프는 너비의 1/3을 차지합니다.
  • : 왼쪽에서 오른쪽으로 스트라이프 색상은 RGB이다 (0, 85, 164), (255, 255, 255), (239, 65, 53).
  • 이미지는 파일에 저장하거나 모든 일반 이미지 파일 형식으로 STDOUT에 파이프 원시로 표시하거나 표시 할 수 있습니다.
  • 또는 ANSI 색상 코드 를 사용하여 플래그를 표시하는 공백이 아닌 문자로 만들어진 너비가 78 자 이상인 텍스트 블록 을 색상으로 출력하십시오. (파란색, 흰색 및 빨간색 표준을 사용하십시오.)
  • 내장 플래그 이미지 / 라이브러리는 허용되지 않습니다.

바이트 단위의 가장 짧은 코드가 이깁니다.

리더 보드

이 게시물의 하단에있는 스택 스 니펫은 답변 a) 언어별로 가장 짧은 솔루션 목록으로, b) 전체 리더 보드로 답변에서 리더 보드를 생성합니다.

답변이 표시되도록하려면 다음 마크 다운 템플릿을 사용하여 헤드 라인으로 답변을 시작하십시오.

## Language Name, N bytes

N제출물의 크기는 어디에 있습니까 ? 당신이 당신의 점수를 향상시킬 경우에, 당신은 할 수 있습니다 를 통해 눈에 띄는에 의해, 헤드 라인에 오래된 점수를 유지한다. 예를 들어 :

## Ruby, <s>104</s> <s>101</s> 96 bytes

헤더에 여러 개의 숫자를 포함 시키려면 (예 : 점수가 두 파일의 합이거나 인터프리터 플래그 페널티를 별도로 나열하려는 경우) 실제 스코어가 헤더 의 마지막 숫자 인지 확인하십시오 .

## Perl, 43 + 2 (-p flag) = 45 bytes

언어 이름을 링크로 만들면 스 니펫에 표시됩니다.

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


4
해당 RGB 값이 이미지와 일치하지 않습니다. : 내가 보는 바로는, 당신은 RGB있어 (0, 35, 149), (255, 255, 255),를 (237, 41, 57).
beaker

8
지정된 팔레트를 컴팩트하게 저장하는 것은 아마도 대부분의 언어에서이 문제의 가장 까다로운 부분 일 것입니다. 따라서 표준 팔레트를 사용하여 ANSI 출력을 허용하는 그래픽 솔루션은 다소 불공평합니다. 왜 그래픽 솔루션이 경기장을 평평하게하기 위해 순수한 (0, 0, 255) / (255, 255, 255) / (255, 0 0)을 사용하도록 허용하지 않습니까?
JohnE

15
각 스트라이프는 너비의 1/3을 차지합니다. 해군 변형을 사용하는 것이 더 흥미로울 수 있습니다. 1853 년 5 월 17 일자 규정에 따라 해군은 30:33:37 비율로 되돌아갔습니다. halyard는 더 작아 보인다.
벤 잭슨

34
echo 🇫🇷충분히 크지 않음
Digital Trauma

5
@JohnE 동의합니다. 색상 규칙은 ASCII 아트 솔루션에 큰 이점을 제공합니다. 또한 임의의 색상을 사용할 수있는 언어에 대해서는 더 이상 "어려운"문제 (실제로 바이트를 추가하는 것)에 도전하지 않으며 임의의 색상을 수행 할 수없는 몇 가지 멋진 언어를 실격시킵니다.
스파게티

답변:


38

CJam, 23 22 바이트

00000000: 27 9b 22 5c 22 25 1f 22 66 7b 69 27 6d 32 37 2a  '."\"%."f{i'm27*
00000010: 7d 4e 5d 32 36 2a                                }N]26*

위는로 되돌릴 수있는 16 진 덤프입니다 xxd -r.

2 바이트의 추가 비용 (총 24 바이트)이 대신 배경색을 사용하여 출력을 조금 더 예쁘게 만들 수 있습니다.

00000000: 27 9b 22 2c 2f 29 00 22 66 7b 69 27 6d 53 32 36  '.",/)."f{i'mS26
00000010: 2a 7d 57 4e 74 32 36 2a                          *}WNt26*

작동 원리

두 프로그램 모두에서 우리는 ANSI 이스케이프 시퀀스 사용 \x9bXYm- X이다 3전경색과 4배경색 및 Y사용할 색상을 지정 - 플래그의 세 가지 색상 사이를 전환 할 수 있습니다.

'<CSI>       Push the '\x9b' character (Control Sequence Introducer).
"\"%<US>"    Push the string of the ISO 8859-1 characters with code
             points 34, 37, and 31.
f{           For each character in the string, push the CSI and that
             character; then:
  i            Cast the character to integer.
  'm27*        Push 27 m's. The first completes the control sequence,
               the remaining 26 will be printed.
}
N]           Wrap the generated array and "\n" in an array.
26*          Repeat it 26 times.

다른 프로그램도 비슷합니다.

산출

산출


현재 "이미지"를 얼마나 키가 커야할지 잘 모르겠습니다.
Dennis

나는 78x30으로 대답했다. Lucida Console 9 pt (xterm의 기본 글꼴)의 치수는 3 : 2에 가장 가깝습니다.
Mego

'예쁜'을 위해 전체 블록을 사용할 수 있습니다
Matthew Roh

75

순수 배쉬 (OSX), 84

기본 OSX 터미널은 풀 컬러 이모지를 지원합니다. 이것이 텍스트 또는 그래픽 출력으로 계산되는지 확실하지 않습니다.

printf -vs %26s
for i in {1..26}
do echo ${s// /🔵}${s// /⚪️}${s// /🔴}
done

출력은 다음과 같습니다.

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


또는

OSX 유틸리티를 사용한 배쉬, 56

yes `dc -e3do26^d1-dn2/*p|tr 201 🔵🔴⚪️`|sed 26q

dc표현 :

  • 3^26-1삼항으로 계산 하고 인쇄합니다.22222222222222222222222222
  • 이 값을 2로 나눈 다음을 곱합니다 3^26. 삼항 출력은1111111111111111111111111100000000000000000000000000

tr그런 다음 210자를 🔵⚪️🔴로 변환합니다. yes이 줄을 무기한으로 출력합니다. sed 26q26 줄에서 출력을 멈 춥니 다.


51
이모지를 지원하는 터미널. 와.
rr-

6
첫 번째 솔루션은 올바른 RGB 값을 사용하지 않거나 표준 ANSI 색상을 사용합니까?
손잡이

@Doorknob 당신은 물론 솔루션도 아니므 로이 대답은 선을 넘어서고 있습니다. OP에 설명을 요청했습니다
Digital Trauma

3
그냥 유니 코드입니다.
undergroundmonorail은

1
@ 스티브 정말이 대답은 너무 인기가 기대되지 않은, 특히 있다는 것을 주어진 유효성에 관한 질문 . 그것이 타당하다고 생각하는지에 대해 yay 또는 nay를 줄 수 있습니까? 감사!
Digital Trauma

51

데스 모, 30 12 바이트

3x>10
3x<-10

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

이것이 유효한지 확실하지 않습니다. 문제가 있으면 알려주십시오.


3
@ CᴏɴᴏʀO'Bʀɪᴇɴ 기본 색상은 순서대로 빨간색과 파란색이므로 믿지 않아도됩니다.
스파게티

7
@ CᴏɴᴏʀO'Bʀɪᴇɴ 그렇다면 그것은 랜덤 플래그 생성기입니다;)
DanTheMan

3
@ CᴏɴᴏʀO'Bʀɪᴇɴ 그들은 나에게 무작위 적이 지 않습니다. 두 개의 불평등을 수동으로 입력하면 지속적으로 빨간색, 파란색으로 표시됩니다.
Mego

1
이건 이상해. 빨간색과 파란색도 나옵니다.
lirtosiast

2
나는 그것이 ... 종횡비에 정확하게 맞지 않는다고 생각하지 않습니다.
Doorknob

51

파이썬 2, 47 바이트

s="[3%smF";print(s%4*26+s%7*26+s%1*26+"\n")*30

인쇄 할 수없는 요소를 포함합니다-다음은 16 진 덤프입니다 (가역 가능 xxd -r).

00000000: 733d 221b 5b33 2573 3b31 6d46 223b 7072  s=".[3%s;1mF";pr
00000010: 696e 7428 7325 342a 3236 2b73 2537 2a32  int(s%4*26+s%7*2
00000020: 362b 7325 312a 3236 2b22 5c6e 2229 2a33  6+s%1*26+"\n")*3
00000030: 30                                       0

ANSI 이스케이프 코드를 사용하여 컬러 문자를 STDOUT에 인쇄합니다. 프랑스에서는 "F"를 선택했습니다. ideone이 출력에서 ​​ANSI 이스케이프 코드를 지원하지 않기 때문에 온라인 링크가 없습니다.

훌륭한 팁을 주신 Dennis와 xnor에게 감사합니다.

xterm 스크린 샷 :

깃발


1
거기에 여분의 공간이 있습니다. in [0]->in[0]
mbomb007

2
1. 대신 실제 ESC 바이트를 사용할 수 있습니다 \x1b. 2. 볼드체가 필요하지 않은 것 같습니다. 3. 그것이 ANSI 아트에도 적용되는지 확실하지 않지만 질문은 3 : 2 비율을 요구하는 것 같습니다.
Dennis

형식화로 매개 변수를 서브하는 것이 더 짧습니다 print("\x1b[3%s;1mF"*78+"\n")%((4,)*26+(7,)*26+(1,)*26)*30.
xnor

16
F를 눌러 경의를 표합니다
Riking

4
문자는, 예를 들어 약간 낫 네요 print("\x1b[3%s;1m█"*78+"\n")%((4,)*26+(7,)*26+(1,)*26)*30
ali_m

44

HTML / SVG, 76 바이트 87 88121122149

@insertusername 덕분에 27 바이트 절약

@Joey 덕분에 9 바이트 절약

@sanchies 덕분에 1 바이트 절약

@Neil 덕분에 1 바이트 절약

<svg><path fill=#0055a4 d=m0,0h26v52H0 /><path fill=#ef4135 d=M52,0h26v52H52

HTML 구문 남용을 많이 사용하면 상당히 짧아 질 수 있습니다.


출력 스크린 샷 :

프랑스 국기 출력


또는 시도해보십시오 (브라우저가 SVG를 지원하는지 확인하십시오) :

<svg><path fill=#0055a4 d=m0,0h26v52H0 /><path fill=#ef4135 d=M52,0h26v52H52


3
CSS로 당신을이기려고 노력했으며 이제는 CSS 솔루션보다 SVG가 작다는 SVG를 골프화했습니다. : D 이것은 Safari, Chrome 및 Firefox에서 작동 할 수있는 최단 길이입니다. 길이는 122 바이트 입니다.<svg><rect width=78 height=52 fill="#ef4135"/><rect width=52 height=52 fill="#fff"/><rect width=26 height=52 fill=#0055a4>
insertusernamehere

1
@insertusernamehere 감사합니다. 27 바이트를 절약했습니다! 나는 이것을 놀라운 88 바이트로 더 골프를
쳤다

3
fill=#0055a4 />에게도 (no ") 작동 하여 전체 바이트를 절약합니다.
Sanchises

3
@sanchises 전체 바이트? o_O wow : D
developerbmw 5

4
@developerbmw 사실, 생각할 때 반 바이트를 절약하는 것이 더 인상적입니다.
Sanchises

29

Brainfuck $ , 153 바이트

+++++++++++++[->>>++>+++++++>++++>>>>++++++++>+++<<<<<<<<<<]>>>+>>#->$#>$#+++++++>$--->+++++[<]<<+++++[->+++++>++++++<<]>+#>($#([-]>[.>]<[<])>>>>+++<<<<)

ANSI 색상 코드로 이미지를 출력합니다. 나는 Mego처럼 30의 높이를 선택했다 .

esolangs 페이지에 연결된 2009 년의 참조 구현이 누락되었습니다. esolangs 페이지의 모든 것을 지원하는이 인터프리터를 사용하여 실행할 수 있습니다.

Brainfuck, 258 바이트

이것은 기본적으로 같은 것이지만, 평범한 오래된 Brainfuck에 있습니다.

>>+++++++++++++[-<<++>>>>++>+++++++>++++>++++>+++++>++++>++++++++>+++[<]<]>>+>>->>------>--->+++++[<]<<<++++[>+++++[->+++++<]>+[>>[.>]<[<]<-]>>>>>+++[<]+++++[-<+++++>]<+[>>[.>]<[<]<-]>>>>>------[<]+++++[-<+++++>]<+[>>[.>]<[<]<-]>>>>>+++[<]<++++++++++.[-]<<-]

또는 oOo CODE (984 바이트) 에서이 코드 를 선호하는 경우 :

one day ThERe WIlL Be PEaCE iN ThIS wORlD
OnE DaY ThERe WiLl Be peaCe iN ThIS wOrld
one day theRe WIlL be pEaCE iN ThIS wORlD
OnE DaY theRe WIlL Be PEaCe in ThIS wORlD
OnE day ThERe WIlL Be PEaCe in ThIS wORlD
OnE day ThERe WIlL Be PEaCE iN ThIS wOrld
OnE DaY ThErE wilL bE PeaCe IN this woRlD
one day There will Be pEacE in ThiS woRld
one Day TheRe will Be PEaCE iN ThIS wOrLd
onE dAY thEre WilL Be PEaCE iN ThIs World
OnE DaY ThERe WIlL bE pEace in ThIS wORlD
OnE DaY thErE Will Be PeAce in this WoRLd
one dAY thErE wilL bE PeaCE in tHIs world
one day theRe WIlL Be PeAce iN tHIS wORlD
OnE DaY ThErE wIll be PEaCE iN ThIS wORlD
one dAY thERe WiLl be peace In THis worLD
onE dAy thErE WilL Be peACe in this world
one Day TheRe wIll Be pEace In thIs WORlD
OnE DaY ThERe WiLl Be peaCE iN ThIS wORlD
OnE day tHEre WIlL bE peace in tHiS World
oNE daY tHere WiLL be PEace IN this world
one day ThERe WIlL bE peaCe IN thIS wORlD
OnE DaY ThERe WIlL Be PEaCE iN THis WoRld
oNE daY thERe wiLL

25

배쉬 + ImageMagick, 60 77 73 바이트

convert -sample 78x52\! - a<<<"P3 3 1 255 0 85 164 255 255 255 239 65 53"

(웃음, 이전에 눈치 채지 못한 색 요구 사항으로 인해 +17 문자 ...)

anetpbm 형식으로 파일에 출력 합니다.

llama@llama:~$ convert -sample 78x52\! - a<<<"P3 3 1 255 0 85 164 255 255 255 239 65 53"
llama@llama:~$ file a
a: Netpbm image data, size = 78 x 52, rawbits, pixmap

파일 이름을 a.png(+4 자) 로 변경하면 PNG로 출력 할 수도 있습니다 .

산출:

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


1
convert -sample 78x52\! - a<<<"P3 3 1 255 0 85 164 255 255 255 239 65 53"
Digital Trauma

@DigitalTrauma 감사합니다! 4 문자를 저장하고 오류와 함께 종료되지 않습니다. (또한 ImageMagick이 STDIN에서 읽고 쓸 수 있다는 것을 전혀 몰랐습니다.)
Doorknob

-scale대신에 사용할 수 있습니다 -sample; 또한 백 슬래시는 필요하지 않은 것 같습니다
aditsu

25

LaTeX, 139 바이트

21 바이트를 절약 한 @WChargin에게 감사합니다.

\documentclass{proc}\input color\begin{document}\def\z#1!{{\color[rgb]{#1}\rule{4cm}{8cm}}}\z0,.33,.64!\z1,‌​1,1!\z.94,.25,.21!\end{document}

이렇게하면 A4 페이지에 다음 12cm * 8cm 이미지가 인쇄됩니다.

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

"페이지 1"도 페이지 하단에 인쇄됩니다.


1
글쎄, 이것은 내 asymptote솔루션 보다 약 100 바이트 짧습니다 ...
Arcturus

1
s.\newcommand\z[1].\def\z#1많은 바이트를 저장합니다. 또한, 사용하여 몇 가지를 면도 할 수 \def\z#1!{…}\z0,.33,.64!\z1,1,1!\z.94,.25,.21!IS, 그룹에 대한 자신 구분 기호 대신 괄호를 사용하여 - 즉
wchargin

1
당신은 또한\input color
wchargin

1
완성도를 \documentclass{proc}\input color\begin{document}\def\z#1!{{\color[rgb]{#1}\rule{4cm}{8cm}}}\z0,.33,.64!\z1,1,1!\z.94,.25,.21!\end{document}
높이기

24

Pyth, 27 바이트

 .w*52[smmdGc3CM"\0U¤ÿÿÿïA5

인쇄 할 수없는 문자가 있으므로 다음은 16 진수 덤프입니다.

00000000   2E 77 2A 35  32 5B 73 6D  6D 64 47 63  33 43 4D 22  .w*52[smmdGc3CM"
00000010   5C 30 55 A4  FF FF FF EF  41 35                     \0U.....A5

o.png너비가 정확히 78 픽셀이고 높이가 52 픽셀 인 파일이 생성됩니다 .

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

설명:

.w*52[smmdGc3CM"........
               "........  a string containing the bytes 
                          0, 85, 164, 255, 255, 255, 239, 65, 53
             CM           convert them to integers
           c3             split into 3 lists
      smmdG               duplicate each list 26 times
     [                    put them into a list
  *52                     and duplicate it 52 times
.w                        save it as an image o.png

1
잠시 동안, 나는 PNG 사양을 잘못 이해했다고 생각했습니다.
primo

1
save it as an image o.png하지만 ".png"는 어디에 있습니까?
rev

1
@AsidShout 프로그램을 어떻게 호출합니까? 을 사용 python3 pyth.py code.pyth하면 동일한 디렉토리에서 찾을 수 있습니다.
Jakube

20

HTML (쿼크 모드), 68 바이트

이것은 쿼크 모드를 사용하여 플래그를 렌더링합니다.

HTML은 매우 유효하지 않지만 기본 Android 4.4.2 브라우저 및 Firefox 42.0 (Windows 7 x64)에서 작동합니다.

<table width=78 height=52><td bgcolor=0055a4><td><td bgcolor=ef4135>

깃발은 올바른 크기와 표준 빨강 및 파랑 색상으로 렌더링됩니다. 모든 웹 페이지는 표준 흰색 배경으로 시작합니다.



대안으로 :

완벽하게 유효한 HTML5 버전 (141 바이트) :

<!DOCTYPE html><title>x</title><table style=width:78px;height:52px><tr><td style=background:#0055a4><td><td style=background:#ef4135></table>

https://html5.validator.nu/ 의 유효성을 확인하십시오.

결과의 인쇄 화면 :

유효성 검사 결과


1
확실합니까? 이 줄만있는 HTML 파일이 있으면 Firefox, Chrome 및 Safari에서 작동하지 않습니다. 파일에 해당 줄 다음에 다른 HTML 요소가 포함되어 있으면 효과가 있습니다. 따라서 후행을 버릴 수 >없습니까?
insertusername 여기

1
"완전히 유효한"? 그것이 style="..."두 번째 예에서 진행하려는 것이어야합니다 .
mbomb007

3
@ mbomb007 내가 원하는 것은 가장 작은 유효한 HTML 코드를 만드는 것입니다. 공식 유효성 검사기로 유효성을 검사하므로 완벽하게 유효한 HTML입니다. 믿지 않으면 직접 시도해 볼 수 있습니다.
Ismael Miguel

1
@ mbomb007 또한, 따옴표가없는 것이 가장 작은 문제입니다., no <html>, no <head>, no <body>, no </tr>, no </td>및 누락 된 모든 태그가 닫히지 않습니다.
Ismael Miguel

1
@insertusername 여러분이 맞았습니다. 안드로이드에서도 버그가 발생했습니다. jsfiddle에서 테스트했습니다. 그러나에 액세스 할 때 data:text/html,<table width=78 height=52><td bgcolor=0055a4><td><td bgcolor=ef4135>작동하지 않았습니다. 지금 수정하고 링크를 사용하여 테스트하십시오.
이스마엘 미겔

17

TI 기본, 52 44 42 바이트

GridOff
AxesOff
11
Shade(-Ans,Ans,Xmin,Xmin/3
Shade(-Ans,Ans,Xmax/3,Xmax,1,1,Ans

([-10,10,1] 그래프 영역으로 기본 [-10,10,1] 가정)

처음 두 줄이 없으면 4 바이트가 짧아 지지만 기본적으로 축이 있고 멋지게 보이지 않습니다.

다음과 같습니다 :

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

도전에 음영이 유효하지 않은 경우 알려주십시오!

처음 두 줄이 없으면 다음과 같습니다.

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


또한 처음 세 줄이없는 버전을 비교 용으로 포함시킬 것입니다.
GamrCorps

1
Ymin에서 Ymax로 갈 수 있다고 생각합니다. 또한 기본 화면을 -10에서 10으로 가정 할 수 있습니다. 빨간색과 파란색 영역은 절반 만 음영 처리되므로 유효성이 확실하지 않습니다.
lirtosiast

@ThomasKwa Ymin과 Ymax 만 사용하지 않은 이유를 보여주기 위해 게시물을 편집했습니다. 기본 화면을 사용할 수 있다는 것을 몰랐지만 기본 화면이 무엇인지 확실하지 않습니다. 명확하게 설명해 주시겠습니까? "반 음영"에 대해서는 TI-Basic이 물건을 음영 처리하는 방식입니다. 그것이 유효하지 않으면 즉시 변경합니다.
DanTheMan

1
기본 화면은 Ymin = Xmin = -10, Ymax = Xmax = 10입니다. 계산기는 해당 창 설정과 AxesOn 등으로 시작하므로 가정 할 수 있습니다.
lirtosiast

1
@Doorknob 내가 아는 한, 마법에 의존하지 않고는 불가능합니다.
DanTheMan

17

FFmpeg은, 110 113 116 117 119 108 100 바이트

ffplay를 사용하여 100 바이트 표시 :

ffplay -f lavfi color=#0055a4:49x98[r];color=white:49x98[w];color=#ef4135:49x98[b];[r][w][b]hstack=3

ffmpeg, 108 바이트를 사용하여 파일로 저장 :

ffmpeg -lavfi color=#0055a4:49x98[r];color=white:49x98[w];color=#ef4135:49x98[b];[r][w][b]hstack=3 -t 1 .png

현재 버전의 명령은 오류와 함께 중단되지만 아래와 같이 단일 이미지 ".png"를 출력합니다.

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


8
와. ffmpeg를 사용하여 이미지 만들기 ...
Cole Johnson

허, 나는이 질문을보고 같은 일을한다고 생각했다. 컴팩트하게 만드는 직업. 허용되는 경우 white대신 다음을 사용하여 약간 작게 만들 수 있습니다 #ffffff. 값은 같아야합니다.
llogan

알아. 귀찮게하지 않았다. 지금하겠습니다.
Gyan

#fff가 작동합니까?
ev3commander

아니요. 그러나 f.png에서 f를 건너 뛸 수 있습니다
Gyan

16

CSS, 127 128 144 바이트

body:before,body:after{content:'';float:left;width:33%;height:100%;background:#0055a4}body:after{float:right;background:#ef4135}

다른 태그가 필요 없으며 body-element 와만 작동합니다 .

편집

  • 및 일부 를 제거하여 16 바이트절약display:block; 했습니다 ;.
  • 1 바이트를 저장 하고 후행을 제거했습니다 }.

6
기술적으로 CSS는 정의에 의한 프로그래밍 언어가 아닙니다.
Conor O'Brien

10
@ CᴏɴᴏʀO'Bʀɪᴇɴ 알고 있습니다 – 단지 SVG 를 이기고 싶었습니다 .
insertusername 여기

4
@ CᴏɴᴏʀO'Bʀɪᴇɴ가 맞습니다. 올바른 답변이 아닙니다.
Mego

2
@ CᴏɴᴏʀO'Bʀɪᴇɴ SASS는 스크립팅 언어이기 때문에 CSS가 SASS 파일로 저장되었습니다.
fcalderan

6
예, 일반 CSS는 유효한 SASS 파일입니다.
ev3commander

16

자바 스크립트, 140 143 147 151 153 바이트

   with(document)with(body.appendChild(createElement`canvas`).getContext`2d`)for(i=2;i--;fillRect(i*52,0,26,52))fillStyle=i?"#ef4135":"#0055a4"


편집

  • 로 교체 하여 2 바이트절약2*i*26 했습니다 i*52. Cᴏɴᴏʀ O'Bʀɪᴇɴ 감사합니다 .
  • 저장된 4 바이트를 리팩토링에 의해 for-loop을. ETHproductions 에게 감사합니다 .
  • -statement 를 사용하여 2 바이트저장with 했습니다. Dendrobium 에게 감사합니다 .
  • 증가분을 감소시켜 2 바이트절약했습니다 . Shaun H 에게 감사합니다 .
  • 로 교체 하여 3 바이트절약fillStyle=["#0055a4","#ef4135"][i] 했습니다 i?"#ef4135":"#0055a4".

3
2*i*2652*i아니 될 수 있습니까?
코너 O'Brien

7
@ CᴏɴᴏʀO'Bʀɪᴇɴ 물론 가능합니다. 감사. 내 취침 시간을 초월합니다.
insertusername 여기

2
다음 with명령문 을 사용하여 2 바이트를 줄일 수 있습니다 .with(document)with(body.appendChild(createElement`canvas`).getContext`2d`)for(i=0;i<2;fillRect(i++*52,0,26,52))fillStyle=["#0055a4","#ef4135"][i]
Dendrobium

2
바이트 저장 : x=(d=document).body.appendChild(d.createElementcanvas ).getContext2d;for(i=3;--i;x.fillRect(i*52,0,26,52))x.fillStyle=[,"#ef4135","#0055a4"][i]
Shaun H

2
@Dendrobium 잘 됐네요. 고마워
insertusername 여기

13

R, 59 바이트

frame();rect(0:2/3,0,1:3/3,1,,,c("#0055a4",0,"#ef4135"),NA)

출력이 표시됩니다 :

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

또한 49 바이트를 사용할 수 있습니다

barplot(rep(1,3),,0,col=c("#0055a4",0,"#ef4135"))

축과 경계를 신경 쓰지 않으면 :

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


2
비율이 잘못된 것 같습니다. 깃발 전체에 3 : 2 비율이 아닌 단색 직사각형에 2 : 3 비율이 있다고 생각합니다.
페이탈 라이즈

플로팅 창의 크기를 조정하여 비율을 수동으로 조정할 수 있습니다.
flodel

3
자격을 갖추려면 출품작이 '즉시'작동해야합니다. 그렇지 않으면 누구나 6 픽셀 솔루션을 게시하고 '수동으로 확대 할 수 있습니다'라고 말할 수 있습니다.
Sanchises

4
당신은 '축', 나는 '플래그 폴'이라고 말합니다.

2
@sanchises : 저는 프랑스어이고 f ** k라고 말합니다. 리 베르테!
flodel

12

블리츠 2D / 3D , 154108 바이트

이것은 질문에 주어진 예와 정확히 같은 것을 만듭니다 (색이 만나는 가장자리의 앤티 앨리어싱 제외).

Graphics 800,533
ClsColor 255,255,255
Cls
Color 0,35,149
Rect 0,0,267,533
Color 237,41,57
Rect 533,0,267,533

출력이 표시되고 다음과 같습니다.

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


12

Mathematica, 63 94103 바이트

이 도전을 처음 보았을 때 나는 Sweet 라고 생각했습니다 ! Mathematica는 이것에 완벽 할 것입니다! 내장이 금지 된 것을 알 때까지 : '(

하지만 기다려! 막대 그래프를 사용할 수 있습니다!

r=RGBColor;BarChart[{1,1,1},ChartStyle->{r@"#0055a4",White,r@"#ef4135"},BarSpacing->0,AspectRatio->2/3]

(5 바이트를 줄이지 만 16을 추가 한 Martin Büttner에게 감사합니다)

다음과 같습니다 :

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

추가 ,Axes->None하면 다음과 같습니다.

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

테두리를 신경 쓰지 않으면 다음을 사용할 수 있습니다 : (95 바이트)

r=RGBColor;BarChart[{1,1},ChartStyle->{r@"#0055a4",r@"#ef4135"},BarSpacing->1,AspectRatio->2/3,Axes->None]

다음과 같습니다 :

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

축이없는 경우 :

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


3
Axes->None. 당신은 또한 사양해야합니다 AspectRatio->2/3. 이름 바꾸기 RGBColor는 간단 r=RGBColor;...r["..."]합니다. 접두사 표기법을 사용하여 2 바이트를 더 절약 할 수도 있습니다 r@"#0055a4".
Martin Ender

개요가 필요하지 않으면을 시도하십시오 BarChart[{1, 1}, ChartStyle -> {RGBColor["#0055a4"], Red}, BarSpacing -> 1]. 빨강이 충분히 가까이 보입니다.
DavidC

@DavidCarraher Meh, 질문은 특정 RGB 값을 지정하므로 정확하게 사용해야합니다.
Martin Ender

나의 주요 권장 사항은 세 개가 아닌 두 개의 사각형을 그리는 것이 었습니다. 그러나 빨간색에 대해서는 기술적으로 정확합니다.
DavidC

막대 주위의 경계가이 솔루션을 무효화하지 않습니까?
LegionMammal978

11

자바 스크립트 (ES6) 117 바이트

콘솔에 그립니다

for(i=c=s=[];i<156;c[i++]=`color:${[,'blue','#fff'][i%3]||(s+=`
`,'red')}`)s+='%c'+'+'.repeat(26);console.log(s,...c)


2
들어 'white'나는 그것을 할 짧은 생각 : #fff. 또한 빨강 및 파랑 색상은 사양에 지정된 색상과 일치해야합니다
Downgoat

1
약간 도움이 될 수있는 색상을 업데이트 한 후 i=c=s=[]대신 몇 바이트를 절약 할 수 있습니다 i=0,c=[],s=''.
Dom Hastings

1
@ Vɪʜᴀɴ 텍스트로 출력 할 때 표준 색상 ( redblue)을 사용할 수 있습니다 . 아래에서 세어 2 점입니다. 이것은 사양 내에 있습니다.
Ismael Miguel

@DomHastings 멋진 팁, 똑똑한 강제 사용. 감사!
George Reith

1
@sysreq 콘솔의 텍스트 ... 콘솔의 높이를 제어 할 수 없습니다. 키는 78 자이고 키는 78 자입니다.
George Reith

10

pb , 68 바이트

cw[Y!52]{cccw[X!26]{b[77]>}ccccw[X!52]{b[77]>}cw[X!78]{b[77]>}<[X]v}

와우, pb가 실제로 좋은 도전입니다! 그것들은 거의 없으며 사이에 있습니다.

pb에 대한 사양을 작성할 때 주로 농담으로 컬러 출력을 포함 시켰습니다. 언어는 "붓"왜 것의 이름을 따서 명명 되지 색상을합니까? 예제 프로그램 이외에도, 내가 사용한 것은 이번이 두 번째입니다. 질문에 따라 ANSI 코드로 구현됩니다.

나는 상당히 조밀하기 때문에 출력 할 문자로 'M'을 사용했습니다.

산출:

글자가 정사각형이 아니기 때문에 스크린 샷을 세로로 높이의 2/3로 조정했습니다. 출력은 78 x 52이지만 원래 스크린 샷은 실제로 잘못 보입니다.

의견과 들여 쓰기 및 정크 :

c               # Increase output colour by 1
                # 0 (White) -> 1 (Red)
                # Loop ends with output colour == 1, this is cheaper than
                # setting it back to white every time.

w[Y!52]{        # While the brush's Y coordinate is not 52:
    ccc           # Increase output colour by 3
                    # 1 (Red) -> 4 (Blue)

    w[X!26]{      # While the brush's X coordinate is not 26:
        b[77]       # Write 'M' at the brush's coordinates
        >           # Increase X coordinate by 1
    }             

    cccc          # Increase output colour by 4
                    # 4 (Blue) -> 8 mod 8 = 0 (White)

    w[X!52]{      # While the brush's X coordinate is not 52:
        b[77]       # (same as before)
        >         
    }             

    c             # Increase output colour by 1
                    # 0 (White) -> 1 (Red)

    w[X!78]{      # While the brush's X coordinate is not 78:
        b[77]       # (same as before)
        >
    }

    <[X]          # Set X back to 0
    v             # Increase Y by 1
}

78x30은 터미널 출력에 필요한 치수를 제공합니다.
Mego

@ Mego 그래, 그것이 허용되는지 확실하지 않습니다.
undergroundmonorail

기본 글꼴에서 xterm의 결과 출력은 지정된 차원과 일치합니다.
Mego

그래도 "문자"이외의 콘솔 출력의 크기를 측정하는 것이 이상하게 느껴집니다.
undergroundmonorail

1
캐릭터의 너비가 1.2 배인 키는 아주 좋은 픽셀을 만들지 않습니다.
Mego

10

C, 115 바이트

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

#define c"[48;2;%d;%d;%dm%9c"
d=255;main(a){while(a++<9)printf(c c c c,0,85,164,0,d,d,d,0,239,65,53,0,0,0,0,10);}

인쇄 할 수없는 것을 포함합니다 :

00000000: 2364 6566 696e 6520 6322 1b5b 3438 3b32  #define c".[48;2
00000010: 3b25 643b 2564 3b25 646d 2539 6322 0a64  ;%d;%d;%dm%9c".d
00000020: 3d32 3535 3b6d 6169 6e28 6129 7b77 6869  =255;main(a){whi
00000030: 6c65 2861 2b2b 3c39 2970 7269 6e74 6628  le(a++<9)printf(
00000040: 6320 6320 6320 632c 302c 3835 2c31 3634  c c c c,0,85,164
00000050: 2c30 2c64 2c64 2c64 2c30 2c32 3339 2c36  ,0,d,d,d,0,239,6
00000060: 352c 3533 2c30 2c30 2c30 2c30 2c31 3029  5,53,0,0,0,0,10)
00000070: 3b7d 0a                                  ;}.

이 프로그램이 작동하려면 몇 가지 사실이 필요합니다.

  • 터미널은 ESC [48;2;<r>;<g>;<b>m"truecolor"이스케이프 시퀀스를 지원합니다 .
  • 터미널은 xterm이 아니며 xterm의 위 구현으로 약간 잘못된 색상이 생성됩니다.
  • 터미널은 NUL 문자를 완전히 무시합니다.

단말기의 배경이 검은 색인 경우에도 더 좋습니다.

플래그의 높이로 변경하려면 명령 행 인수를 프로그램에 전달하십시오. 전달 된 모든 인수에 대해 플래그는 한 줄 더 짧아집니다. 버그가 아니라 기능입니다!

산출:

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


gcc(버전 5.1.1)로 컴파일하는 데 문제가있었습니다 . 컴파일에 필요한 특정 플래그? "ac : 1 : 10 : 경고 : ISO C99 뒤에 매크로 이름 #define c 뒤에 공백이 필요합니다"\ x1b [48; 2; % d; % d; % dm "
steve

1
@Steve는 우리의 오류라는 경고입니까?
Functino

1
@Steve 방금 다시 테스트했습니다. gcc 5.2.1. 플래그가 없습니다. 12 개의 경고를 생성했지만 작동하는 이진을 만들었습니다.
Functino

사과-잘 작동합니다-경고에 혼란스러워했습니다 (코드가 나와 같은 C 초보자에게 매우 암호처럼 보입니다)
steve

9

MATLAB, 82 79 78 바이트

x=[0 1 1 0];y(3:4)=2;fill(x,y,[0 85 164]/255,x+1,y,'w',x+2,y,[239 65 53]/255)

출력은 다음과 같습니다.


1
MATLAB의 어느 버전입니까? 색상이 [0,1] 범위의 10 진수 여야하므로 r2013a에서는 작동하지 않습니다.
톰 카펜터

1
다음 줄은 작동 fill(x,y,[0 85 164]/255,x+1,y,'w',x+2,y,[239 65 53]/255)하고 2 바이트를 절약합니다. :) 나는 또한 여분의 물건이 인쇄되지 않도록 줄 바꿈 대신 세미콜론을 사용합니다.
톰 카펜터

1
@TomCarpenter 나는 0-1 색상 스케일로 간격을 두었습니다. 색상을 지정해야하기 때문에 조금 오래되었습니다. 세미콜론 / 줄 바꿈에 관해서는, 나는 콘솔 쓰기를 통해 가독성을 선택했다,하지만 난 내 대답을 변경 한
costrom

9

Visual Basic + Excel, 618137 바이트

이것이 어떻게 골프를 칠 수 있는지 궁금합니다.

편집 : @Neil 및 @JimmyJazzx 덕분에 호기심이 생겨 618 바이트가 137 바이트로 줄었습니다.

Sub a(): Columns("A:C").ColumnWidth = 26: Range("A1:A13").Interior.Color = RGB(0, 85, 164): Range("C1:C13").Interior.Color = RGB(239, 65, 53): End Sub

엑셀 깃발


1
매크로를 기록하면 매우 비효율적 인 코드가 생성됩니다. 시도 Range("A1:C13").Interior.ColorIndex = 5하고 Range("G1:I13").Interior.ColorIndex = 3어느 것으로 충분합니다.

2
죄송합니다. Excel 2003이므로 ActiveWorkbook.Colors정확한 RGB 값을 지정 하기 위해를 포함하는 것을 잊었습니다 . Excel 2007에는 추가 색상 옵션이 있지만이를 잘 모르겠습니다.

1
몇 가지 빠른 변경으로 137 바이트를 얻습니다. 나는 당신이 이것을 더 줄일 수 있다고 생각하지만 이것은 쉬운 변화입니다. Sub a():Columns("A:C").ColumnWidth=26:Range("A1:A13").Interior.Color=RGB(0,85,164):Range("C1:C13").Interior.Color=RGB(239,65,53):End Sub
JimmyJazzx

나는 다음과 같이 135를 얻습니다Sub a:Columns("A:C").ColumnWidth=26:Range("A1:A13").Interior.Color=RGB(0,85,164):Range("C1:C13").Interior.Color=RGB(239,65,53):End Sub
Joey

9

CSS 102 110 111 114 바이트

*{background:linear-gradient(90deg,#0055a4 33%,#fff 33%,#fff 66%,#ef4135 66%) 0 0/78px 52px no-repeat


1
* *{background:linear-gradient(90deg,#0055a4,#0055a4 33%,#fff 33%,#fff 66%,#ef4135 66%) 0 0/78px 52px no-repeat}-1 바이트 더 짧은
user2428118

1
실제로 단일 *이면 충분합니다 :) 감사합니다!
Thomas Eschemann

1
+1; 후행을 제거하여 다른 바이트를 저장할 수 }있습니다.
insertusername 여기

1
첫 번째 색상을 삭제할 수 있으며 8 바이트를 절약 할 수 있습니다.
Awashi

당신은 마지막으로 교체 할 수 있습니다 66%0.
Mr_Green

8

디아 로그 APL ( 47 44)

⎕SM←↑1 21 41{(''⍴⍨2/20)1⍺,⍵,⍨4↑0}¨2*8 11 10

결과:

깃발


2
당신은 할 수 2*8 11 10있습니까?
lirtosiast

1
@ThomasKwa : 감사합니다
marinus

8

iKe , 43 바이트

,(0 0;"|"\"#0055A4|#FFF|#EF4135";52#,&3#26)

이것은 "raw tuple"iKe 프로그램의 예입니다. 이것은 원점 ( 0 0), 팔레트 ( 3 7#"#0055A4#FFFFFF#EF4135") 및 비트 맵 ( +52#'&3#26)에 대한 설명 일뿐 입니다. 이와 같은 설명을 함수로 감싸거나 애니메이션을 적용하려면 뷰에 대한 참조를 사용해야합니다.

팔레트는 일련의 CSS 색상을 만드는 매우 간단한 방법으로 16 진수 사양에 해당합니다.

  3 7#"#0055A4#FFFFFF#EF4135"
("#0055A4"
 "#FFFFFF"
 "#EF4135")

색상 요구 사항이 덜 엄격한 경우 iKe의 내장 팔레트 중 하나를 사용하여 상당한 수의 문자를 저장할 수 있습니다.

windows@7 0 4

깃발

브라우저에서 사용해보십시오 .

편집하다:

#FFF흰색 줄무늬에 짧은 CSS 색상을 사용하여 1 바이트를 저장했습니다 .

,(0 0;3 7#"#0055A4#FFFFFF#EF4135";+52#'&3#26)
,(0 0;"|"\"#0055A4|#FFF|#EF4135";+52#'&3#26)

다른 사람이 iKe를 가지고 노는 것에 관심이 있다면 github repo 에 매뉴얼이 있습니다 . 여기 iKe를 사용하여 해결 한 다른 문제가 있습니다.

편집 2 :

비트 맵을 구성하는 간단한 방법으로 1 바이트를 저장했습니다.

+52#'&3#26
52#,&3#26

OP의 내 질문에 대한 답변이 없지만 더 유연한 색상 요구 사항이 허용되는 경우 Windows 3.1 팔레트를 사용 하여이 프로그램의 크기는 30 바이트입니다.

,(0 0;windows@7 0 4;52#,&3#26)

flag2

이 문제가 게시 된 이후, iKe는 위치없이 그려진 텍스처를 자동으로 중앙에 배치하여 3 바이트를 더 절약 할 수있는 기능을 얻었지만 이는 규칙에 위배됩니다.

,(;windows@7 0 4;52#,&3#26)

7

옥타브, 77 76 바이트

s(98,49)=0;imshow(cat(3,[s w=s+255 w-18],[s+35 w s+41],[s+149 w s+57])/255);

이미지를 표시합니다 :

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


7

처리, 100 바이트

size(78,52);background(255);noStroke();fill(#0055A4);rect(0,0,26,52);fill(#EF4135);rect(52,0,26,52);

이것을 표시합니다 : 프랑스

(순진한 솔루션은 첫 번째 솔루션보다 짧습니다.)


픽셀 프로세싱보다 프로세싱의 드로잉 명령이 나올 수 있다고 생각합니다.size(78,52);noStroke();int[]p={0xFF0055A4,255,0xFFEF4135};for(int c:p){translate(26,0);fill(c);rect(0,0,-26,52);}
JohnE

@ JohnE Lol, 예, 나는 단지 그것을 알아 차 렸습니다.
geokavel

@JohnE 내 기본 솔루션조차 당신보다 짧습니다!
geokavel

haha- 둘 다 너무 복잡해 보입니다
JohnE

스케일 명령을 남용하는 것은 어떻습니까? 이것은 sketchpad.cc에서 작동하지만 처리 3에서 깨질 수 있습니다.size(78,52);scale(26,52);fill(#EF4135);stroke(#0055A4);rect(0,-1,0,2);stroke(255);rect(1,-1,3,3);
JohnE

7

루비, 56 47 45 바이트

ASCII

$><<"\e[34z\e[37z\e[31z\n".gsub(?z,?m*27)*52

그래, 이것은 내 것보다 낫다. 중간 막대를 제외하고 흰색이어야합니다.
iamnotmaynard

@iamnotmaynard True, 고정. 감사!
피터 Lenkefi

7

PHP, 70 바이트

0000000: 424d 0000 0000 0000 0000 2300 0000 0c00  BM........#.....
0000010: 0000 2001 c000 0100 0800 a455 00ff ffff  .. ........U....
0000020: 3541 ef3c 3f66 6f72 283b 3665 343e 2469  5A.<?for(;6e4>$i
0000030: 3b29 6563 686f 2063 6872 2824 692b 2b2f  ;)echo chr($i++/
0000040: 3936 2533 293b                           96%3);

위의 16 진 덤프는로 바뀔 수 있습니다 xxd -r. 또는 다음 PHP 스크립트를 사용하여 생성 할 수도 있습니다.

<?=hex2bin('424d0000000000000000230000000c0000002001c00001000800a45500ffffff3541ef3c3f666f72283b3665343e24693b296563686f206368722824692b2b2f39362533293b');

나는 .ini가 없기 때문에 기본 설정을 가정합니다 ( -n옵션으로 로컬 .ini를 비활성화 할 수 있습니다). 파일로 파이프해야하는 .bmp 이미지 (288 x 192)를 생성합니다. 이것은 바이트 수에 영향을 미치지 않고 만들 수있는만큼 큽니다.


샘플 사용법

$ xxd -r in.hex > france.php
$ php -n france.php > out.bmp
$ out.bmp

산출

프랑스 국기


이 색상들은 옳지 않습니다. 그들은 질문에 지정된 RGB 값을 사용합니까?
Doorknob

@Doorknob 그들은 않습니다. 바이트 26에서 시작하여 3 개의 값 컬러 팔레트가 정의됩니다 (bgr) : A45500, FFFFFF, 3541EF.
primo

6

ShaderToy (GLSL), 147 바이트

void mainImage(out vec4 o,vec2 i){float x=i.x/iResolution.x*3.0;vec3 w=vec3(255,255,255);o=vec4((x<1.0?vec3(0,85,164):x<2.0?w:vec3(239,65,53))/w,1);}

여기를 참조하십시오

특히 흥미롭지 않습니다. 더 골프를 치는 방법이 있다고 확신합니다. 집에 도착하면 금이 갈 거예요


3
링크는 shadertoy.com/error : /로 리디렉션됩니다 .
Quentin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.