フランスの国旗を描く


106

掲示された他の多くの旗の挑戦がフランスの国旗のためのものではありませんでし今週は適切な時期のようです。

このフラグを可能な限り少ないバイト数で生成します。

フランスの旗

  • 画像のサイズは3:2で、サイズは少なくとも幅78ピクセル、高さ52ピクセルでなければなりません。
  • 各ストライプは幅の3分の1を占めます。
  • :左から右へのストライプの色はRGBです(0, 85, 164)(255, 255, 255)(239, 65, 53)
  • 画像は、一般的な画像ファイル形式でファイルに保存するか、RAWでSTDOUTにパイプするか、表示することができます。
  • または、ANSIカラーコードを使用して、フラグを表す空白以外の文字で構成される少なくとも78文字幅のテキストブロックを出力します。(標準の青、白、赤を使用します。)
  • 組み込みのフラグ画像/ライブラリは使用できません。

バイト単位の最短コードが優先されます。

リーダーボード

この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からリーダーボードを生成します。

回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。

## Language Name, N bytes

N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば:

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

ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。

## 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)
ビーカー

8
指定されたパレットをコンパクトに保存することは、おそらくほとんどの言語でこの問題の最も難しい部分です。それを考えると、標準のパレットでANSI出力を許可するグラフィカルソリューションにはかなり不公平に思えます。グラフィカルなソリューションが純粋な(0、0、255)/(255、255、255)/(255、0 0)を使用して競技場を平準化することを許可しないのはなぜですか?
JohnE

15
各ストライプは幅の3分の1を占めます。 海軍バリアントを使用する方が面白いかもしれません: 1853年5月17日付けの規制によって、海軍はフラグの羽ばたきのように、それは今で使い続け30:33:37の割合を、使用に戻ったが遠くから部分を作りますハリヤードは小さく見える。
ベンジャクソン

34
echo 🇫🇷十分な大きさではない
デジタル外傷

5
@JohnE同意します。色に関する規則は、ASCIIアートソリューションに大きな利点をもたらします。また、任意の色を使用できる言語については、「困難」(実際にはバイトを追加するだけ)に挑戦することはなく、任意の色を使用できないいくつかのクールな言語を失格にします。
spaghetto

回答:


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*

上記は、を使用して元に戻すことができるhexdumpですxxd -r

合計24バイトの2バイトの追加コストで、代わりに背景色を使用して、出力を少しきれいにすることができます。

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.

他のプログラムも同様です。

出力

出力


私は現在、「画像」をどのくらいの高さにするべきかわかりません。
デニス

私の答えは78x30でした。Lucida Console 9 pt(xtermのデフォルトフォント)のこれらの寸法は、3:2に最も近くなりました。
メゴ

あなたは「prettyness」の完全なブロックを使用することができます
マシュー盧

75

Pure Bash(OSX上)、84

デフォルトのOSX端末はフルカラーの絵文字をサポートしています。これがテキストまたはグラフィック出力としてカウントされるかどうかはわかりません。

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

出力は次のようになります。

ここに画像の説明を入力してください


代わりに:

OSXユーティリティを使用したBash、56

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

dc表現:

  • 計算3^26-1し、3進数で出力します22222222222222222222222222
  • これを2で除算し、次にで乗算し3^26ます。これは3進数で出力されます1111111111111111111111111100000000000000000000000000

tr次に、210文字を🔵⚪️🔴に変換します。 yesこの行を無期限に出力します。 sed 26q26行で出力を停止します。


51
絵文字をサポートする端末。ワオ。
rr-

6
最初の解決策は正しいRGB値を使用せず、標準のANSI色も使用しませんか?
ドアノブ

@Doorknobもちろんあなたは正しい-どちらの解決策もそうではない-だから、この答えは一線を越えているかもしれない。 OPに明確化を依頼しました
デジタルトラウマ

3
ただのユニコードです。
地下

1
@steve私は、特にその有効性に関する質問があることを考えると、この答えがそれほど人気になるとは本当に思っていませんでした。あなたはそれが有効だと思うかどうかについて賛成か反対かを言うことができますか?ありがとう!
デジタル外傷

51

デモ、30 12バイト

3x>10
3x<-10

オンラインでお試しください。

これが有効かどうかはわかりませんが、問題がある場合はお知らせください。


3
@CᴏɴᴏʀO'Bʀɪᴇɴデフォルトの色はこの順序で赤と青です(私は信じています)ので、それらを設定する必要はありません。
spaghetto

7
@CᴏɴᴏʀO'Bʀɪᴇɴそれはランダムなフラグジェネレータです;)
DanTheMan

3
@CᴏɴᴏʀO'Bʀɪᴇɴそれらは私にとってランダムではありません-2つの不等式を手動で入力すると、一貫して赤、次に青になります。
メゴ

1
これはおかしい。私も赤と青になっています。
リトシアスト

2
私はそうは思いません...また、アスペクト比に正確に適合しません。
ドアノブ

51

Python 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エスケープコードをサポートしていないため、オンラインリンクはありません。

素晴らしいヒントをくれたデニスとxnorに感謝します。

xtermのスクリーンショット:

国旗


1
そこに余分なスペースがあります。in [0]->in[0]
mbomb007

2
1.の代わりに実際のESCバイトを使用できます\x1b。2.太字は必要ないようです。3.それがANSIアートにも当てはまるかどうかはわかりませんが、3:2の比率が問題になっているようです。
デニス

書式設定付きのパラメーターにsubを指定する方が短い: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 88 121 122 149

@insertusernamehereのおかげで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で確認しました。: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バイトまでさらにゴルフすることに成功しました
-Downgoat

3
私にとっても、fill=#0055a4 />動作します(no ")、バイト全体を保存します。
-Sanchises

3
@sanchises全体のバイト?o_O wow:D
developerbmw

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

Bash + 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"
デジタル外傷

@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}

これにより、次の12cm * 8cmの画像がA4ページに印刷されます。

ここに画像の説明を入力してください

「ページ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!し、グループ化のために、独自の区切り文字の代わりに中括弧を使用する-つまり
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

印刷できない文字がいくつかあるため、hexdumpを次に示します。

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仕様をひどく誤解していたと思った。
プリモ

1
save it as an image o.png、しかし「.png」はどこにもありませんか?
rev

1
@AsidShoutどのようにプログラムを呼び出しますか?を使用する場合python3 pyth.py code.pyth、同じディレクトリで見つけることができます。
ジャクベ

20

HTML(互換モード)、68バイト

これは、フラグをレンダリングするためにQuirksモードを使用します。

HTMLは非常に無効な、しかし(Windows 7のx64の上で)株式のAndroid 4.4.2ブラウザ上とFirefox 42.0で動作します。

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

フラグは、適切なサイズと標準の赤と青の色でレンダリングされます。すべてのWebページは、標準の白い背景で始まります。



代替として:

完全に有効な 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要素が含まれている場合、それは機能します。だから、おそらくあなたは末尾を捨てることはできません>か?
insertusernamehere

1
「完全に有効」?style="..."2番目の例でそれが目的の場合は、そうあるべきです。
mbomb007

3
@ mbomb007私が目指しているのは、最小の有効なHTMLコードを作成することです。公式バリデーターで検証するため、完全に有効な HTMLです。信じられないなら自分で試してみてください。
イスマエルミゲル

1
@ mbomb007また、引用符の欠落は最小の問題です。すべての欠落タグのno <html>、no <head>、no <body>、no </tr>、no、no </td>およびnoがあります。
イスマエルミゲル

1
@insertusernamehereあなたは正しかった。Androidでもバグがありました。jsfiddleでテストしました。しかし、にアクセスするとdata:text/html,<table width=78 height=52><td bgcolor=0055a4><td><td bgcolor=ef4135>、機能しませんでした。今すぐ修正し、リンクを使用してテストします。
イスマエルミゲル

17

TI-Basic、52 44 42バイト

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

(デフォルトの[-10,10,1] x [-10,10,1]グラフ領域を想定)

最初の2行がなければ4バイト短くなりますが、デフォルトでは軸があり、見栄えがよくありません。

次のようになります。

ここに画像の説明を入力してください

チャレンジでシェーディングが無効な場合は、お知らせください!

最初の2行がなければ、次のようになります。

ここに画像の説明を入力してください


比較として、最初の3行のないバージョンも含めます。
GamrCorps

1
YminからYmaxに移動できると思います。また、-10〜10のデフォルト画面を想定することもできます。赤と青の領域は半分しか網掛けされていないため、この有効性についてもわかりません。
リトシアスト

@ThomasKwa投稿を編集して、なぜYminとYmaxだけを使用しなかったのかを示しました。デフォルト画面を想定できるとは思いませんでしたが、そのデフォルト画面が何であるか明確ではありません。明確にしていただけますか?「ハーフシェーディング」について、つまりTI-Basicがシェーディングする方法です。無効な場合は、すぐに変更します。
DanTheMan

1
デフォルト画面はYmin = Xmin = -10、Ymax = Xmax = 10です。電卓は、これらのウィンドウ設定、AxesOnなどで開始されるため、それらを想定できます。
リトシアスト

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のを乱用
コール・ジョンソン

へえ、私はこの質問を見て、同じことをすることを考えました。それをコンパクトにする素晴らしい仕事。許可されている場合は、のwhite代わりにを使用してわずかに小さくすることができます#ffffff。値は同じである必要があります。
llogan

知っている。十分気にしませんでした。今それをします。
ギャン

#fffは機能しますか?
ev3commander

いいえ。しかし、私はf.pngでFを省略することができます
ギャン

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は定義上プログラミング言語ではありませんが。
コナーオブライエン

10
@CᴏɴᴏʀO'Bʀɪᴇɴ私は知っている-ちょうど打ちたかったSVGを
insertusernamehere

4
@CᴏɴᴏʀO'Bʀɪᴇɴは正しい、これは有効な答えではない。
メゴ

2
@CᴏɴᴏʀO'BʀɪᴇɴそれはCSSがSASSファイルとして保存されたということです。SA​​SSはスクリプト言語なので、それは有効な答えでしょうか?
fcalderan

6
ええ、通常のCSSは有効なSASSファイルです。
ev3commander

16

JavaScript、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*26i*52。おかげCᴏɴᴏʀO'Bʀɪᴇɴ
  • -loop をリファクタリングして4バイトを節約しましたforETHproductionsに感謝します
  • -statement を使用して2バイトを保存withました。Dendrobiumに感謝します。
  • インクリメントをデクリメントに変換することで2バイトを節約しましたショーンHに感謝します。
  • 置き換えて3バイトを節約しましfillStyle=["#0055a4","#ef4135"][i]i?"#ef4135":"#0055a4"

3
2*i*26になることができ52*iますか?
コナーオブライエン

7
@CᴏɴᴏʀO'Bʀɪᴇɴもちろんできます。ありがとう。それは私の就寝時間をはるかに超えています。
insertusernamehere

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.createElementキャンバス).getContext2D;for(i=3;--i;x.fillRect(i*52,0,26,52))x.fillStyle=[,"#ef4135","#0055a4"][i]
ショーンH

2
@Dendrobiumいいね。どうもありがとう。
ここにユーザー名を挿入します

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に比率があると思います。
15年

比率は、プロットウィンドウのサイズを変更することで手動で調整できます。
flodel

3
資格を得るためには、エントリは「そのまま」機能する必要があります。そうでなければ、誰でも6ピクセルのソリューションを投稿して、「手動でズームインできます」と言うことができます。
-Sanchises

4
あなたは「軸」と言い、私は「旗竿」と言います。

2
@sanchises:私はフランス人で、f ** kと言います。LIBERTE!
flodel

12

Blitz 2D / 3D154108バイト

これにより、質問で与えられた例とまったく同じ結果が得られます(ただし、色が交わるエッジでのアンチエイリアスを除きます)。

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バイト

この挑戦を初めて見たとき、私は甘いと思いましたMathematicaはこれに最適です!ビルトインが禁止されていることに気付くまで: '(

ちょっと待って!棒グラフを使用できます!

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

(5バイトを削って16バイトを追加してくれたMartinBü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["..."]。prefix-notationを使用して、さらに2バイトを節約することもできますr@"#0055a4"
マーティンエンダー

アウトラインが必要ない場合は、を試してくださいBarChart[{1, 1}, ChartStyle -> {RGBColor["#0055a4"], Red}, BarSpacing -> 1]。赤は十分近くに見えます。
DavidC

@DavidCarraher Meh、質問では特定のRGB値が指定されているため、正確に使用する必要があります。
マーティンエンダー

私の主な推奨事項は、3つではなく2つの長方形を描くことでした。ただし、Redについては技術的に正しいです。
DavidC

バーの周りの境界線はこのソリューションを無効にしないでしょうか?
LegionMammal978

11

Javascript(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=''...少しを助けるかもしれない色を更新した後
ドムヘイスティングス

1
@Vɪʜᴀɴテキストで出力する場合、標準色(redおよびblue)を使用できます。下から数えて2番目のポイントです。これは仕様内です。
イスマエルミゲル

@DomHastings素敵なヒント、強制の巧妙な使用。ありがとう!
ジョージリース

1
@sysreqコンソール内のテキスト...コンソールのラインハイトを制御できません。幅78文字、高さ52文字です。
ジョージリース

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の仕様を書いていたとき、私は色付きの出力をほとんど冗談として含めました。この言語は「絵筆」にちなんで命名されましたが、なぜ色を塗らないのですか サンプルプログラムを除いて、これは私がこれを使用したのは2度目です。質問に必要なANSIコードで実装されています。

かなり密集しているため、出力する文字として「M」を使用しました。

出力:

文字が正方形ではないため、スクリーンショットを縦にサイズ変更して、高さの3分の2にしました。出力は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ええ、しかし許可されているかどうかはわかりません。
地下

デフォルトのフォントでxtermに出力される結果は、指定された寸法と一致します。
メゴ

ただし、「文字」以外のコンソール出力のサイズを測定すると奇妙に感じます。
地下

1
キャラクターの高さが幅の1.2倍の場合、非常に良いピクセルにはなりません。
メゴ

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「トゥルーカラー」エスケープシーケンスをサポートしています。
  • ターミナルはxtermではありません。xtermの上記の実装はわずかに間違った色を生成するためです。
  • 端末はNUL文字を完全に無視します。

また、端末の背景が黒の場合、見栄えが良くなります。

フラグの高さを変更するには、コマンドライン引数をプログラムに渡します。渡される引数ごとに、フラグは1行短くなります。これはバグではなく、機能です!

出力:

ここに画像の説明を入力してください


gcc(バージョン5.1.1)でこれをコンパイルするのに問題がありました。コンパイルに必要な特定のフラグはありますか?"AC:1:10:警告:ISO C99マクロ名の#define Cの後に空白を必要とする" 48 [\のX1B; 2;%のD、%のD、%のDM」
スティーブ・

1
@Steveはそれがエラーであるという警告ですか?
Functino

1
@Steveもう一度テストしました、gcc 5.2.1。フラグなし。12個の警告を生成しましたが、作業バイナリを作成しました。
Functino

謝罪-正常に動作します-警告(および私のようなC初心者にとってコードがかなり不可解に見えるという事実)で混乱しました
スティーブ

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、618 137バイト

これがどのようにゴルフできるかを知りたいだけです。

編集:好奇心が満たされ、@ 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

Excelフラグ


1
マクロを記録すると、ひどく非効率的なコードになります。試してみてRange("A1:C13").Interior.ColorIndex = 5Range("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
ジョーイ

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

1
実際には単一の*で十分です:)ありがとう!
トーマスエシェマン

1
+1; 末尾のを削除することで、もう1バイト節約できます}
insertusernamehere

1
最初の色を削除して、8バイト節約できます。
Awashi

あなたは最後に置き換えることができます66%0
Mr_Green


8

iKe、43バイト

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

これは「生のタプル」iKeプログラムの例です。これは、オリジン(0 0)、パレット(3 7#"#0055A4#FFFFFF#EF4135")、ビットマップ(+52#'&3#26)の単なる説明です。このような説明を関数でラップするか、アニメーション化する場合はビューへの参照を使用する必要があります。

パレットは、一連のCSSカラーを作成する非常に簡単な方法で、16進数の仕様に相当します。

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

色の要件がそれほど厳しくない場合は、iKeの組み込みパレットの1つを使用して、かなりの数の文字を保存できます。

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リポジトリにマニュアルがあります。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);

これを表示します: フランス

(単純なソリューションは、私の最初のソリューションよりも短いです。)


Processingの描画コマンドは、ここでプッシュするピクセルよりも先に出てくると思います。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

ハハ
-JohnE

スケール指示を乱用するのはどうですか?これはsize(78,52);scale(26,52);fill(#EF4135);stroke(#0055A4);rect(0,-1,0,2);stroke(255);rect(1,-1,3,3);
sketchpad.cc


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);

上記はhexdumpであり、で逆にすることができます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彼らはそうします。バイト26から、3つの値のカラーパレット(bgr)が定義されます:A45500、FFFFFF、3541EF。
プリモ

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にリダイレクトされます:/
クエンティン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.