RGBカラーグリッドを生成する


47

この!RGBカラーグリッドです...

基本的なRGBグリッド

基本的には、次の2次元マトリックスです。

  • 最初の行と最初の列は赤です。
  • 2番目の行と2番目の列は緑色です。
  • 3番目の行と3番目の列は青です。

以下に、文字R、G、およびBを使用して、グラフィカルに説明する色を示します。

行と列の図

グリッド上の各スペースの色の計算方法は次のとおりです。

  • 赤+赤=赤(#FF0000)
  • 緑+緑=緑(#00FF00)
  • 青+青=青(#0000FF)
  • 赤+緑=黄(#FFFF00)
  • 赤+青=紫(#FF00FF)
  • 緑+青=ティール(#00FFFF)

挑戦

  • RGBカラーグリッドを生成するコードを記述します。
  • それはコードゴルフですので、最小バイト数でそれを試みてください。
  • プログラミング言語またはマークアップ言語を使用して、グリッドを生成します。
  • 私が気にすること:
    • 結果は、定義された色でRGBグリッドをグラフィカルに表示する必要があります。
  • 気にしないこと:
    • 出力が画像、HTML、SVG、またはその他のマークアップの場合。
    • カラーブロックのサイズまたは形状。
    • ブロック間のまたはブロックの周りの境界線、間隔など。
    • 行と列の色がどうあるべきかを示すラベルを持っている必要はありません。

2
BitmapC#のオブジェクトなど、言語にネイティブなMageオブジェクトを出力できますか?
無知の

1
@EmbodimentofIgnoranceは私には問題ありません。
AJFaraday


4
@manassehkatzデータをハードコーディングすることは、実行するよりも良いゴルフになる可能性がありますか?
AJFaraday

3
それは本当に重要なことではありませんが、私は個人的に青緑(または他の何か)の代わりにシアンマゼンタを使用していました。私の知る限り、これらはCMYKなどの印刷または減法混色モデルで使用される公式用語です。
アーナルド

回答:


34

バッシュ、44

  • @NahuelFouilleulのおかげで2バイト節約
  • @manatworkのおかげで2バイト節約
printf "${f=^[[3%dm.}$f$f
" 1 3 5 3 2 6 5 6 4

ここで、ブロックは.キャラクターです。 ^[リテラルASCIIエスケープ文字(0x1b)です。

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

このスクリプトは次のように再作成できます。

base64 -d <<< cHJpbnRmICIke2Y9G1szJWRtLn0kZiRmCiIgMSAzIDUgMyAyIDYgNSA2IDQ= > rgbgrid.sh

11
一体何?説明してください:)
flawr

1
シェル拡張を使用して2バイトを保存できますprintf ${f=\\e[3%dm.}$f$f\\n 1 3 5 3 2 6 5 6 4
Nahuel Fouilleul

1
これは私の一日を本当に明るくしました、ありがとう!
AJファラデー

4
printf \\e[3%dm. 1'展開\\e[31m.のためのANSIエスケープコードであるというようにして.印刷するための文字です。
Fredrik Pihl

3
@NahuelFouilleulの提案を続けて、二重引用符で囲みますprintf "${f=^[[3%dm.}$f$f␤" 1 3 5 3 2 6 5 6 4^[リテラルエスケープ文字= 1バイト、andリテラル改行文字= 1バイトです)
manatwork

26

8088アセンブリ、IBM PC DOS、  44  43バイト

リスト:

BE 0122     MOV  SI, OFFSET CTBL    ; load color bar table into [SI]
        LOOP_COLOR: 
B9 0001     MOV  CX, 1              ; display 1 char and clear CH (changed by INT 10H:3)
AC          LODSB                   ; load next color byte 
8A D8       MOV  BL, AL             ; move new color to BL
3C 10       CMP  AL, 010H           ; if this is third color in row: SF=0, CF=0 
                                    ; else if last color: SF=1, CF=0
                                    ; else continue on same row: CF=1
B8 09DB     MOV  AX, 09DBH          ; AH=9 (write char with attr), AL=0DBH (a block char) 
CD 10       INT  10H                ; call PC BIOS, display color block
B4 03       MOV  AH, 3              ; get cursor position function
CD 10       INT  10H                ; call PC BIOS, get cursor
72 04       JC   NEXT_COL           ; if not last in row, move to next column 
78 09       JS   EXIT               ; if last color, exit 
B2 FF       MOV  DL, -1             ; otherwise move to first column and next row 
        NEXT_COL:
42          INC  DX                 ; move to next column (and/or row)
B4 02       MOV  AH, 2              ; set cursor position function 
CD 10       INT  10H                ; call PC BIOS, set cursor position
EB E2       JMP  LOOP_COLOR         ; loop to next color byte 
        EXIT:
C3          RET                     ; return to DOS
CTBL    DB  0CH, 0EH, 1DH, 0EH, 0AH, 1BH, 0DH, 0BH, 91H ; color table

これは、IBM PC BIOS INT 10Hビデオサービスを使用して、画面にカラーグリッドを書き込みます。残念ながら、特定の色属性を記述する唯一の方法は、カーソルを次の正しい位置に配置するコードを記述することも必要とするため、そのための余分なコードがたくさんあります。

IBM PC CGA(40x25テキストモード)で実行する出力を以下に示します。

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

DOS用RGBGRID.COMをダウンロードしてテストします。


1
これはDOSで動作しますか?
マーシャルクラフト

@marshalcraftはい、実際、これはDOS、またはDOSBox、pcjs.orgなどのDOSエミュレーターを使用する場合にのみ機能します。実行可能ファイルをダウンロードするためのリンクを追加して、試してみます。
640KB

Windowsには、おそらくコマンドプロンプトと呼ばれる制限されたdosエミュレーターが付属していますが、これはcmdまたはPowerShell haha​​で動作する場合はクールだと思います。
マーシャルクラフト

1
@marshalcraft正しいですが、DOS用であるため16ビットの実行可能ファイルであり、32ビットバージョンのWindowsをお持ちの場合は、16ビットランタイム環境があるため実際に実行する必要があります。ただし、Windowsの64ビットエディションは32ビットランタイムのみであるため、実行されません。
640KB

1
神はこれはクールな答えです
サミーベンチェリフ


18

80386マシンコード、IBM PC DOS、38バイト

hex:

B0 13 CD 10 68 00 A0 1F 66 C7 06 00 00 28 2C 24
00 66 C7 06 40 01 2C 30 34 00 66 C7 06 80 02 24
34 20 00 CD 16 C3

asm:

mov al,13h
int 10h ; initialize vga 13h mode (320x200x256 colors)
push 0a000h
pop ds ; push video buffer address to ds
mov dword ptr ds:0, 242c28h ; print 3 pixels
mov dword ptr ds:320, 34302ch ; print 3 pixels
mov dword ptr ds:640, 203424h ; print 3 pixels
int 16h ; wait for any keypress
ret ; exit to os

dosboxからのスケーリングされた出力:

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


mov al, 13hDOSBox ah = 0がプログラムのエントリポイントにあることが保証されていない限り、これは正しくないことに注意してください。
マーガレットブルーム

@MargaretBloom 斧は0ミリ秒ドスのCOMアプリケーションの起動時に
イリヤBursov

Iłyaに感謝します。
マーガレットブルーム

18

Excel VBA(イミディエイトウィンドウ)、80バイト

For i=1To 9:Cells(i Mod 3+1,(i+1)/3).Interior.ColorIndex=Mid(673486857,i,1):Next

Excel VBA(関数)、96バイト

Sub g()
For i=1To 9
Cells(i Mod 3+1,(i+1)/3).Interior.ColorIndex=Mid(673486857,i,1)
Next
End Sub

仕事のための恐ろしいツールではありません... Excelが既にグリッドを表示しているので、背景色を設定するだけの問題です。

Excelカラーグリッド

43バイトの節約ColorIndexColorつながる代わりに使用することを提案してくれた@Neilの功績。

@Keetaのおかげで-21バイト

「即時ウィンドウ」を提案してくれた@Chronocidalに感謝

@i_saw_dronesのおかげで-2バイト

元の投稿からの多くの変更:)


1
おそらく、とのより良い行うことができますColorIndexそれはあなたが文字列か何かでエンコードする可能性がある、ここで3から8までの数だと。
ニール

@Neil-確かに:)それを使用して、かなり短くすることができました。ヒントをありがとう。
ダナ

これをSub F()およびEnd Subに変更して、さらに節約することを妨げるものは見当たりませんでした。
キータ

1
それを機能させると、21バイトドロップするイミディエイトウィンドウでこれを実行しないでください:for i=1 To 3:for j=1 To 3:Cells(i,j).Interior.ColorIndex=Mid("367408005",i*j,1):next j,i
Chronocidal

1
文字列から引用符を削除することもできます。VBAは番号を自動的に文字列に強制します。
i_saw_drones

16

GFA Basic 2.02(Atari ST)、48バイト

.LST形式の手動で編集されたリスト。コードが括弧内に表示されている多くの印刷できない文字が含まれています。

?"[ESC]c[SOH] [ESC]c[ETX] [ESC]c[ENQ] "[CR]
?"[ESC]c[ETX] [ESC]c[STX] [ESC]c[ACK] "[CR]
?"[ESC]c[ENQ] [ESC]c[ACK] [ESC]c[EOT] "[CR]

Atari STのオペレーティングシステムは、ここで使用される拡張VT52コマンドを定義します。

出力

24×248×8

出力

Steem SSEのスクリーンショット


信頼できる古いSTをすべてノスタルジックにしてくれた+1。
Wossname

16

SVG、210 182バイト

<svg><path d="h3v3h-3" fill=#f0f/><path d="h2v2h-2" fill=#ff0/><path d="m1 1h2v2h-2" fill=#0ff/><line x2=1 stroke=red/><path d="m1 1h1v1h-1" fill=#0f0/><path d="m2 2h1v1" fill=#00f/>

カラーブロックのサイズや形状は重要ではないので、このわずかに奇妙なレイアウトでかなりのバイトを使い切ることができます。

svgレイアウト


このソリューションの工夫が本当に好きです。
AJFaraday

16

HTML + CSS、121 120バイト

私が書いた最悪のHTML。@Gust van de Walのおかげで1バイト節約

b{color:#ff0}a{color:cyan}i{color:lime}u{color:blue
<pre><body bgcolor=#f0f text=red><b>█
█<i><a>█
 █<u>

HTML + CSS、114バイト(半有効)

青は正確には#0000FF青ではなく、リンクをクリックしていないことに依存しているため、これを半有効としています。

@Lynnのアイデアに感謝

b{color:#ff0}i{color:lime}c{color:cyan
<pre><body bgcolor=#f0f text=red><b>█
█<i><c>█
 █<a href=x>


3
CSSの最後の閉じ括弧は省略できます。また、信じられないほどの(そして不快な)仕事です!
ガストファンデワル

3
あなたは、例えば、書式設定のデフォルトCSSを回避するために、タグ名を変更することができ<w><x><y>、と<z>
darrylyeo

1
<a href=x>█デフォルトでは青になり、CSSの数バイトを節約できます:)
Lynn

15

ditaa、118バイト

/----+----+----\
|cF00|cFF0|cF0F|
+----+----+----+
|cFF0|c0F0|c0FF|
+----+----+----+
|cF0F|c0FF|c00F|
\----+----+----/

これは、-Eオプションを使用した出力です。

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


13

R、89 50 48バイト

最新バージョン:

image(matrix(c(6,4,5,2:4,1,2),3),col=rainbow(6))

3x3マトリックスを満たすのに十分な要素がベクターにないため、最初の要素をラップして再利用します。

古いバージョン:

image(matrix(c(6,4,5,2:4,1,2,6),3),col=rainbow(6))

image(matrix(c(3,5,6,2,4,5,1:3),3),col=c('red','yellow','magenta','green','cyan','blue'))

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


3
PPCGへようこそ!
無知の具現化


@alephalpha Yikes、私はそれを見逃したとは信じられません。先に進み、最も古いバージョンと文字数を修正しました
アンジャマ

12

Excel-VBA、89 73 72 70バイト

編集:イミディエイトウィンドウを使用し、Sub/ End Subを省いて16バイトを節約できます。

For i=1To 9:[A:C].Cells(i).Interior.ColorIndex=Mid(367648785,i,1):Next

元の回答:

Sub a()
For i=1To 9
[A1:C3].Cells(i).Interior.ColorIndex=Mid(367648785,i,1)
Next
End Sub

これは、この答えに関するニールの提案に触発され、私の最初の提出です!

結果:

結果グリッド

-2バイト:セルの行番号の削除-Taylor Scottに感謝!


3
PPCGへようこそ!
ヨハンデュトワ

1
ありがとうございました!うまくいけば、私はマスターからいくつかのトリックを学びます:)
i_saw_drones

For i=1To 9:[A:C].Cells(i).Interior.ColorIndex=Mid(367648785,i,1):Next70
テイラースコット

11

Perl 6(およびおそらく多くの言語で同様)(31バイト)

{'ÿ   ÿÿÿ ÿ ÿÿ  ÿ ÿÿÿ ÿ ÿÿ  ÿ'}   # replace spaces with ASCII 00
                                  # which I can't seem to enter

これにより、ファイル拡張子.rawでPhotoshopによって生成されたヘッドレスTIFFファイルが出力されます。これは、開くときに別の方法で指定されない限り、正方形であると推定されます。色の深さ(可能であれば)をいじってみると、これをさらに減らすことができます。


11

ffplay(ffmpeg)、93バイト

ffplay -f rawvideo -s 3x3 -pix_fmt rgb24 "data:/;base64,/wAA//8A/wD///8AAP8AAP///wD/AP//AAD/"

古い

ffplay -f lavfi -i testsrc=s=3x3,geq=r=255*not(X*Y):g=255*not((X-1)*(Y-1)):b=255*not((X-2)*(Y-2))

10

TEX(MathJax), 122bytes

Golf'd:

$\def\c#1{\color{#1}{\rule{5em}{5em}}}\c{red}\c{yellow}\c{fuchsia}\\\c{yellow}\c{lime}\c{aqua}\\\c{fuchsia}\c{aqua}\c{blue}$

Ungolf'd:

$$
\def\coloredBox#1{\color{#1}{\rule{5em}{5em}}}
\coloredBox{red}
\coloredBox{yellow}
\coloredBox{fuchsia} \\
\coloredBox{yellow}
\coloredBox{lime}
\coloredBox{aqua}    \\
\coloredBox{fuchsia}
\coloredBox{aqua}
\coloredBox{blue}
$$

編集:

  1. 色を修正する方法を指摘してくれた@flawrに感謝します!

  2. 削り取ることができ交換することによりと、等which'dルック14bytes\rule{5em}{5em}

    、しかしまったく同じに見えません。

  3. 意図した色に容認できるほど類似した色の名前を見つけることで、おそらくさらに数バイトを削ることができます。

  4. これのきちんとバージョンがどのようになるかを示すためだけに:TEX'd

    RedGreenBlueRedGreenBlue.


1
あなたの色は正しくないと思います。しかし、それとは別に、タイトルのみの場合はあなたの投稿に
賛成します

@flawrええ、それらは質問文のものとは異なりますが、もしそれがが質問文で与えられた名前でそれらの色をレンダリングするなら、うまくいけば十分に近いと思いました。= PTEX
ナット

1
mathjaxはcss色名を使用しているようです。だから、置き換えることができpurplefuchsiatealaquagreenlime私が思う正しいだろう、その後の事。
flawr

それに注意してください:上記のものは、いくつかを削除することでもう少しゴルフすることができます{}。しかし、それは私の正気のためにあまりにも多くのクリーンなコーディング原則に違反するでしょう。= P
ナット

5
PPCGコミュニティは正気で有名ではなかったことに注意してください。おそらくその欠如のために何か。
flawr

10

Luaの+ LOVE / Love2D186の 183バイト

t={[0>1]=0,[0<1]=1}l=love g=l.graphics function l.draw()for i=1,3 do for j=1,3 do g.setColor(t[i<2 or j<2],t[i==2 or j==2],t[i>2 or j>2])g.rectangle('fill',j*10,i*10,10,10)end end end

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

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

私の最初のコードゴルフエントリー!


1
コードゴルフへようこそ!よくやった!
AJファラデー

1
真理値表で式を使用できると思います:t={[0>1]=0,[0<1]=1}
マナトワーク

1
@manatworkスマート!
シーポリューション

ここでお会いできてうれしい
Lycea


9

Octave / MATLAB57 56 40バイト

@ExpiredDataのおかげで-17バイト!彼らのよりゴルファーの解決策をチェックしてください!

image(reshape(de2bi(126973007),[3,3,3]))

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


1
imshowの代わりに画像だけが機能しますか?任意のより多くのMatlabのライセンスを持っていると私は電話でよので、それをテストすることはできませんしないでください
期限切れデータ

2
@ExpiredData本当にありがとうございます。
flawr

2
あなたもおそらくこれを行うことができますオンラインで試してみてください!
期限切れデータ

1
@ExpiredData ---非常に素晴らしいトリック、ありがとう!:)---これを独自の回答として投稿してみませんか?
flawr

3
[OK]を私はそれを行います
データ期限切れ

9

Factorio Blueprint String、705バイト

私は認めている、私はちょうど解決策としてカウントされるものの限界を押し進めている。

0eNrdWNGOqyAQ/ReedeNo0daH/ZHNTYOW7ZJFNAi91zT99wua7ZpdaaT1pb40oQ6HOecwA3pGBde0kUwolJ8RK2vRovztjFp2FITb/1TXUJQjpmiFAiRIZUdtzYkMGyIoR5cAMXGg/1AOlz8BokIxxegA0w+6vdBVQaUJuAKQstSV5kTV0qA2dWvm1MKuZ3FecIA6lIf4BV8uwS+YeDKPXzBhPKAkUxjJPAy4AbG5QljZFBEqLOuqYGKa1Vc6YAQzE5Ss+b6gH+TETLQJeWdcUemQ/8Sk0oSPHOgjQkkPqMfT1kEYWzEsI2hpc2gtFtgfO2NkDTMjbIKnCOLv1SrCechJ1UzwSm7zKpksNVN78+xwnffOZKv2s2kS0akPJo4D10FslEd2UDVE9oLn6NU+1i01S/HaKqmkpvNl2DhkSGfJEK1Eha1DhWyWCmvZCzuHCtu7aj5asuQ7ynn99/GqT0f07BjAwXnnx3kohEW7XMPE5+OEs5+EUwdhiL4T0IVh3LNzHlMwfUoB+LTPeK19A2LPkoGbety1f46SUvH4BoLExTHxOCKe3mmIXTJ43ogGp5MlnS47soTR+GeryFyUscex+PzOu65IkPr0OrzW2wFkHn0Ar3c3eN6S4pt63NUH7GvtAn3AafTOo+yf3+jhbDcv9/1XgHz00SBAJ+NNn3uWRJDiDcDWXIf+Aya7oEk=

ゲーム内に配置したときに生成される出力(低いグラフィック設定を使用):

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

有効なソリューションであることを証明するには、仕様に正確に一致するこのピクセルグリッドをサンプリングする必要があります。

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

画像の残りの部分は、質問で述べたように、重要ではない境界線または間隔として分類されます。



8

HTML / CSS、278 141 137バイト

r{color:red}y{color:#ff0}m{color:#f0f}g{color:#0f0}c{color:#0ff}l{color:#00f
<pre><r><y><m><y><g><c><m><c><l>

コメンターのおかげで-137バイト、特に顕著なのは@data @Einacioの
おかげで-4バイト

「ブロック」にUnicode (U + 2588)を使用し、CSSクラス/インラインスタイルを使用して色付けします。

<font>タグをもっとゴルフすることができると思いますが<a>color属性を壊すなどの短いタグに変更する


1
アウトのまま</td>、ブラウザが自動的にこの終了タグを追加するスマート十分である
Ferrybig

3
非推奨の要素を使用する場合は、次を使用してセルの背景色を指定することもできます<td bgcolor=#f00>
Ferrybig

2
noobの質問かもしれませんが、テーブルの使用を避けて、█を印刷して<br>で新しい行に移動することはできませんか?
frarugi87

1
@ frarugi87はい-合計235:<span style="color:red">█<span class=a>█<span class=b>█<br><span class=a>█<span style="color:#0f0">█<span class=c>█<br><span class=b>█<span class=c>█<span style="color:#00f">█
ASCIIのみ

1
@ASCIIのみb {color:#ff0} u {color:#f0f} i {color:#0ff} <pre> <font color = red>█<b>█<u>█<b>█<font color =ライム>█<I>█<U>█<I>█<フォント色=青>█
データ

7

JavaScript、108 102バイト

console.log(`%c█%c█%c█
`.repeat(3),...[...`320251014`].map(c=>`color:#`+`f0ff00f0`.substr(c,3)))

これは実際のブラウザコンソールでのみ機能し、スニペットのコンソールでは機能しないため、スニペットはありません。編集:スクリーンショットを提供してくれた@AJFaradayに感謝します。説明:ブラウザーでは、の最初のパラメーターconsole.logに置換を含めることができます。%c置換は、パラメータを受け取り、(消毒)CSSとしてそれを適用します。したがって、各ブロックはf0ff00f0、3桁の16進数のカラーコードとして解釈される適切なサブストリングを使用して色付けされます。

コード実行の例


1
これがどのように機能するのかわかりませんか?
マーシャルクラフト

1
@marshalcraftは、%c引数がそれの後にテキストのCSSスタイルをされて、フォーマット文字列を作成するために使用される
ASCIIのみ

1
だからこれは基本的にDOSバージョンのようなものですが、クロムブラウザで?
マーシャルクラフト

1
好奇心が強いですが、どのようにしてfs / 0の可能な限り短いチェーンを見つけて使用しましたか?
マリー

2
@Marie私ff0ffはすべての混合色を00f00含み、すべての純粋な色を含むことに注意することから始めました。あなたがそれらを連結した場合、あなたはの重複位置を取得ff0し、f00あなたは、最初と最後の文字を削除することができます。その後、8文字が最適であることを確認するために、すべての7文字の文字列をチェックする短いスクリプトを作成しました。
ニール

7

HTML(GIF)、108バイト

ウェブベースの画像フォーマットの戦いです!(TIFやJPGの競合はありますか?)

@ACによる回答。

<img src=data:image/gif;base64,R0lGODdhAwADAMIGAAAA//8AAP8A/wD/AAD/////AAAAAAAAACwAAAAAAwADAAADBhglNSQEJAA7>


HTML(BMP)、116 115バイト

@ ASCII-onlyで回答します。

<img src=data:image/bmp;base64,Qk0+AAAAQVNDTxoAAAAMAAAAAwADAAEAGAD/AP///wD/AAAAAAAA//8A/wD//wAAAAAAAP8A////AP8AAAA>


HTML(WebP)、116バイト

@Hohmannfanによる回答。

<img src=data:image/webp;base64,UklGRjYAAABXRUJQVlA4TCoAAAAvAoAAAC8gEEjaH3qN+RcQFPk/2vwHH0QCg0I2kuDYvghLcAoX0f/4Hgc>


HTML(PNG)、151 136 135バイト

@Hohmannfanのおかげで-15バイト。

<img src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAFElEQVR4AWP4z8Dw/z8DEIIodB4A4D0O8pOGuTgAAAAASUVORK5CYII>


また、CSSSVGの回答もご覧ください。


3
良い考えですが.. 9ピクセルの画像の89バイトのファイルは少し大きすぎるように思えます。たぶん、BMPヘッダーを手動で記述すると、これが解決される可能性があります。私が間違っていなければ、最低限のヘッダーは26バイトで、実際のデータの12(4ピクセルの3行)は画像を38バイトにトリミングできます
。base64

2
118: <img src="data:image/bmp;base64,Qk0+AAAAQVNDTxoAAAAMAAAAAwADAAEAGAD/AP///wD/AAAAAAAA//8A/wD//wAAAAAAAP8A////AP8AAAA=">。14バイトのファイルヘッダー、12バイトのアプリケーションヘッダー、行ごとに9つの実際のデータ(+3で4の倍数にパディング)、ええ
ASCIIのみ

2
数えていません<img src="data:image/gif;base64,R0lGODdhAwADAMIGAAAA//8AAP8A/wD/AAD/////AAAAAAAAACwAAAAAAwADAAADBhglNSQEJAA7">が、もっと短いのではないかと疑っています
AC

2
ここでBase64エンコード時に15の方が小さいバイトだPNGファイルがあります:iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAFElEQVR4AWP4z8Dw/z8DEIIodB4A4D0O8pOGuTgAAAAASUVORK5CYII=
Hohmannfan

2
フォーマットの戦いを続けるために、ロスレスWebPソリューションを紹介します。仕様に違反することなくこれを削減することはできないため、116バイトでBMPにわずかに負けました。<img src=data:image/webp;base64,UklGRjYAAABXRUJQVlA4TCoAAAAvAoAAAC8gEEjaH3qN+RcQFPk/2vwHH0QCg0I2kuDYvghLcAoX0f/4Hgc>
Hohmannfan

6

dc(xtermで)、64バイト

Fi16[AP]sF36dD6r31 101dD6rD1[1CP61P[38;5;]Pn[mX]Pz3%0=Fz0<M]dsMx

色の代わりに奇抜なエスケープコードの束を取得するだけですが、それでもオンラインで試すことができます!

私の理解では、16の基本的なANSIカラーは端末がどのように望んでも自由に解釈できます。一方、xtermカラーキューブの216色には、明示的なRGB値があります。私はこれらのコードを使用して、グリッドを印刷していますX

bunchaカラフルな 'x's

まず、で基数15に入力基数を設定しますFi。これには2バイトかかりますが、3バイトが返されるため、1バイトの正味のゲイン(および読みやすさの大きな損失)になります。次に、色の値をスタックに取得しようとしています。10進数では、これはになり21 51 201 51 46 226 201 226 196ますが、奇抜なモードなので、になります16 36 D6 36 31 101 D6 101 D1。ある時点で定義する必要があるマクロにスロットを[AP]sF挿入することにより、スペースの1つを削除します(単に改行を印刷します)。我々は、縮小することができ36 D6 36及び101 D6 101(スワップ次に、それを複製し、スタック上の最初の値を確定する第二の配置とすることにより36dD6r101dD6r)。

マクロMは印刷などを処理します。1CPエスケープ文字を出力します。ブラケットは文字列を区切るために使用されますが、私が知る限り、エスケープすることはできません。したがって、ASCII値でブラケットを印刷する必要もあり61Pます。[38;5;]P「番号付きリストから前景色を設定する」コードです。n改行なしでスタックの先頭から値を表示し、ポップします。[mX]Pコードを終了し、「X」を出力します。必要に応じz3%0=Fてラインフィードマクロを実行して、スタック深度mod 3をチェックしますF。スタックに何かがある限り実行しz0<M続けMます。dsMx走る。

これをxtermのdcで実行すると、前景色が青のままになることに注意してください。1CP61P74P(スクリーンショットに示されている入力)はこれをリセットする必要があります。


6

ブロックリータートル、45ブロック

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

仕事に最も馬鹿げたツールを見つけるという小さなゲームをしてみませんか?

出力:

この見事な断片的なプログラミングの素晴らしい成果

プログラム(追加の異端のスクリーンショットとして):

追加異端のスクリーンショットとしてのプログラム

注:グレー表示されたブロックもメトリックにカウントされます。


1
それが標準のPCGチャレンジになることを願っています!代わりに、いくつかのコードゴルフパズルで有機的に発生します
AJFaraday

5

Node.js、79バイト

require('fs').writeFile(a='P',a+[...'3331100110101110010011101011001'].join` `)

カラーグリッドを含むPPM形式の「P」という名前のファイルを作成します。


5

TI-Basic、xバイト(可能な場合に得点します)

注:コンテンツフィルターにより、これらの各コマンドのトークンサイズを検索できません。誰かが私のために得点したい場合は、それのために行きます。

TextColor(11
Text(0,0,"0"
TextColor(19
Text(0,2,"0"
Text(2,0,"0"
TextColor(13
Text(4,0,"0"
Text(0,4,"0"
TextColor(14
Text(2,2,"0"
TextColor(18
Text(2,4,"0"
Text(4,2,"0"
TextColor(17
Text(4,4,"0"

これは私の小さな計算機画面では本当に見た目が悪いです。しかし、ちょっと、形状は重要ではありません:^)

ゴルフ出力: 8倍の大きな出力に変更:

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



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



TI-BASIC、xバイト

テキストの代わりにPxl-Onを使用する:

Pxl-On(0,0,11
Pxl-On(0,1,19
Pxl-On(0,2,13
Pxl-On(1,0,19
Pxl-On(1,1,14
Pxl-On(1,2,18
Pxl-On(2,0,13
Pxl-On(2,1,18
Pxl-On(2,2,17

出力: 約11倍に拡大:

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



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


改行を除く180文字です。コードゴルフで改行がどのように/カウントされるかはわかりません。
ナット

4
はい。ただし、TI-BASICはトークン化された言語です。たとえば、インタープリターはTextColor、@ Nat
Benjamin Urquhart

4

C ++、SFML、177バイト

#include<SFML/Graphics.hpp>
int d[]={255,65535,0xFF00FF,65535,65280,0xFFFF00,0xFF00FF,0xFFFF00,0xFF0000};void f(){sf::Image g;g.create(3,3,(sf::Uint8*)d);g.saveToFile("a.jpg");}

sf::Image::create(int,int,unsigned char*)メソッドを使用して、RGB値を含む画像を作成します


0xFF0000として書き込むことで、1バイトを削ることができ255<<16ます。
Broxzier

1
:ビットさらにそれを取って、配列の前に変数にR / G / Bカラー値を定義することによって、13のバイトを保存することができint b=255<<16,g=65280,r=255,d[]={r,g|r,b|r,g|r,g,b|g,b|r,b|g,b};
Broxzier

4

C位、248の 204 198バイト

class P{static void Main(){for(int i=0;i<12;i++){foreach(dynamic n in Enum.GetValues(typeof(ConsoleColor)))if((""+n)[0]=="RYMRYGCRMCBR"[i])Console.BackgroundColor=n;Console.Write(i%4<3?" ":"\n");}}}

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



3

Wolfram言語(Mathematica)72バイト

Grid@Partition[RGBColor/@Unitize[Total/@Tuples[IdentityMatrix@3,{2}]],3]

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.