RGB renk ızgarası oluşturun


47

Bu! RGB renk ızgarasıdır ...

Temel rgb ızgara

Temel olarak, içinde 2 boyutlu bir matris var:

  • İlk satır ve ilk sütun kırmızıdır.
  • İkinci satır ve ikinci sütun yeşildir.
  • Üçüncü satır ve üçüncü sütun mavidir.

İşte R, G ve B harflerini kullanarak grafiksel olarak açıklanan renkler.

satır ve sütun diyagramı

Izgaradaki her boşluğun rengini şu şekilde hesaplıyoruz.

  • Kırmızı + Kırmızı = Kırmızı (# FF0000)
  • Yeşil + Yeşil = Yeşil (# 00FF00)
  • Mavi + Mavi = Mavi (# 0000FF)
  • Kırmızı + Yeşil = Sarı (# FFFF00)
  • Kırmızı + Mavi = Mor (# FF00FF)
  • Yeşil + Mavi = Yeşil (# 00FFFF)

Meydan okuma

  • RGB renk ızgarası oluşturmak için kod yazın.
  • Kod golf, bu yüzden en küçük bayt sayısında bunu yapmaya çalışın.
  • Kılavuzunuzu oluşturmak için herhangi bir programlama dilini veya işaretleme dilini kullanın.
  • Önemsediğim şeyler:
    • Sonuç, grafik olarak tanımlanan renklerle bir RGB ızgarası göstermelidir.
  • Umurumda olmayan şeyler:
    • Çıktı bir görüntü ise, HTML, SVG veya başka bir biçimlendirme.
    • Renk bloklarının boyutu veya şekli.
    • Bloklar arasında veya çevresinde kenarlıklar, boşluklar vb.
    • Kesinlikle satır ve sütun renklerinin ne olması gerektiğini söyleyen etiketlere sahip olmak zorunda değildir.

2
Dilimize özgü bir mage nesnesini, örneğin BitmapC # 'daki bir nesneyi çıktırabilir miyiz ?
Cehalet Davası,

1
@EkodimentofIgnorance bana iyi geliyor.
AJFaraday


4
@ manassehkatz Verileri sabit kodlamanın, onu çalıştırmaktan daha iyi bir golf olması mümkün mü?
AJFaraday

3
Gerçekten önemli değil, ama ben şahsen kullanılan olurdu camgöbeği ve eflatun yerine teal ve mor (veya başka bir şey). Bildiğim kadarıyla, bunlar CMYK gibi baskı veya çıkartma renk modellerinde kullanılan resmi terimlerdir .
Arnauld

Yanıtlar:


34

Bash, 44

  • @NahuelFouilleul sayesinde 2 bayt kurtarıldı
  • @ Manatwork sayesinde 2 bayt kurtarıldı
printf "${f=^[[3%dm.}$f$f
" 1 3 5 3 2 6 5 6 4

Burada, bloklar .karakterdir. ^[değişmez bir ASCII çıkış karakteridir (0x1b).

görüntü tanımını buraya girin

Bu betiği aşağıdaki şekilde yeniden oluşturabilirsiniz:

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

11
ne halt? lütfen açıklayın :)
kusur

1
kabuk genişletme kullanarak 2 bayt kaydedebilirsinizprintf ${f=\\e[3%dm.}$f$f\\n 1 3 5 3 2 6 5 6 4
Nahuel Fouilleul

1
Bu gerçekten günümü aydınlattı, teşekkür ederim!
AJFaraday

4
printf \\e[3%dm. 1'kırmızı\\e[31m. için ANSI kaçış kodu ve bunun gibi bir şey genişler ve yazdırılacak karakterdir. .
Fredrik Pihl

3
NahuelFouilleul önerisi @, çift tırnak onunla devam edilmesi: printf "${f=^[[3%dm.}$f$f␤" 1 3 5 3 2 6 5 6 4(Nerede ^[bir hazır yeni satır karakteri = 1 byte ␤ bir hazır kaçış karakteri = 1 bayt ve.)
manatwork

26

8088 derleme, IBM PC DOS,  44  43 bayt

Liste:

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

Bu INT 10H, renk ızgarasını ekrana yazmak için IBM PC BIOS video hizmetlerini kullanır . Ne yazık ki, belirli bir renk niteliği yazmanın tek yolu imleci bir sonraki doğru yere yerleştirmek için de kod yazmayı gerektirir, bu yüzden bunun için fazladan fazla kod vardır.

İşte IBM PC CGA'da çalışan çıktı (daha büyük hale getirmek için 40x25 metin modunda).

görüntü tanımını buraya girin

DOS için RGBGRID.COM dosyasını indirip test edin .


1
Bu doz çalışacak mı, prib değil ama olsaydı iyi olurdu.
mareşal zanaat

@ marshalcraft Evet, aslında bu yalnızca DOS'ta veya DOSBox, pcjs.org, vb. gibi bir DOS emülatörü kullanarak çalışacaktır. Çalıştırılabilir dosyayı indirmek için bir bağlantı ekledim.
640KB

Windows, muhtemelen şimdi söylemesi gereken komut istemi adı verilen ve şimdi cmd veya PowerShell haha ​​ile çalışmışsa harika olacağını söyleyen sınırlı doz emülatörü ile birlikte gelir.
mareşal zanaat

1
@ marshalcraft Haklısınız, ancak DOS için bu 16 bitlik bir çalıştırılabilir dosyadır ve Windows'un 32 bitlik bir sürümüne sahipseniz 16 bitlik bir çalışma ortamı olduğu için çalışmalıdır. Ancak Windows'un 64 bit sürümü yalnızca 32 bit çalışma süresine sahip olduğundan çalıştırılmaz.
640KB

1
Tanrım bu güzel bir cevap
Samy Bencherif


18

80386 makine kodu, IBM PC DOS, 38 bayt

altıgen:

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'tan ölçeklendirilmiş çıktı:

görüntü tanımını buraya girin


Program giriş mov al, 13hnoktasında DOSBox tarafından garanti edilmediği sürece yanlış olduğuna dikkat ah = 0edin.
Margaret Bloom,

@MargaretBloom baltası, ms dos com uygulamasının başlangıcında
0'dır

Teşekkürler Iłya, bunu bilmek güzel!
Margaret Bloom

18

Excel VBA (Acil Pencere), 80 bayt

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

Excel VBA (İşlev), 96 bayt

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

İş için korkunç bir araç değil ... Excel'in zaten bir ızgara gösterdiği için arka plan rengini ayarlama meselesini takdir ediyorum.

Excel Renk Izgarası

43 baytlık bir tasarruf sağlamak ColorIndexyerine kullanmamı önerdiğim için @Neil'e teşekkür edin Color.

@Keeta sayesinde -21 bayt

"Hemen Pencere" yi önerdiği için @ Chronocidal sayesinde -16 bayt

@İ_saw_drones sayesinde -2 bayt

Orijinal gönderimden birçok değişiklik :)


1
ColorIndexBurada bir ipte veya başka bir şeyde kodlayabileceğiniz 3 ila 8 arasında bir sayı olduğu için muhtemelen daha iyisini yapabilirsiniz .
Neil,

@Neil - Gerçekten :) Bunu kullanarak biraz daha kısa elde edebildim. Bahşiş için teşekkürler.
dana

Daha fazla tasarruf için bunu Sub F () ve End Sub olarak değiştirmenizi engelleyen hiçbir şey görmedim.
Keeta

1
Bunu bir işlev yapmayın ve 21 bayt bırakmak için Hemen Penceresinde bunu çalıştırın: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
Dizeden tırnakları kaldırabilirsiniz, VBA bu sayıyı otomatik olarak dizgeye zorlar.
i_saw_drones

16

GFA Basic 2.02 (Atari ST), 48 bayt

.LST biçiminde el ile düzenlenmiş bir liste. Kodları parantez içinde gösterilen, yazdırılamayan birçok karakteri içerir.

?"[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'nin işletim sistemi, burada kullanılan genişletilmiş VT52 komutlarını tanımlar .

Çıktı

24×248×8

çıktı

Steem SSE ekran görüntüsü


Güvendiğim yaşlı ST'm için beni nostaljik yapmak için +1.
Woss name

16

SVG, 210 182 bayt

<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/>

Renkli blokların boyutu veya şekli önemli olmadığından, bu biraz garip düzende birkaç byte'lık golf atılabilir:

svg düzeni


Bu çözümün yaratıcılığını gerçekten seviyorum.
AJFaraday

16

HTML + CSS, 121 120 bayt

Şimdiye kadar yazdığım en kötü HTML parçası. @Gust van de Wal sayesinde bir bayt tasarruf

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 bayt (yarı geçerli)

Bunu yarı geçerli olarak koyuyorum çünkü mavi tam olarak # 0000FF mavi değildir ve aynı zamanda bağlantıyı tıklamamasına da dayanır.

Fikir için @ Lynn'e teşekkürler

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


3
CSS'deki son kapanış braketini atlayabilirsiniz. Ayrıca, inanılmaz (ve rahatsız edici) iş!
Gust van de Wal

3
Sen mesela, biçimlendirme varsayılan CSS önlemek için etiket adlarını değiştirebilir <w>, <x>, <y>, ve <z>.
darrylyeo

1
<a href=x>█varsayılan olarak mavi olur, CSS'in bazı baytlarını korur :)
Lynn

15

ditaa , 118 bayt

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

Bu -Eseçenek kullanan çıktı :

görüntü tanımını buraya girin


13

R, 89 50 48 bayt

En yeni sürüm:

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

Vektörde 3x3 matrisini doldurmak için yeterli eleman yok, bu yüzden etrafını sayar ve ilk elemanı tekrar kullanır.

Eski versiyonlar:

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

görüntü tanımını buraya girin


3
PPCG'ye Hoşgeldiniz!
Cehalet'in Uygulanması


@alephalpha Yikes, bunu kaçırdığıma inanamıyorum.
Devam ettim

12

Excel-VBA, 89 73 72 70 bayt

Düzenleme: Hemen penceresini kullanabilir ve Sub/ End Subveya ile 16 bayttan tasarruf edebilirsiniz:

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

Orijinal cevap:

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

Bu, Neil'in bu cevaba olan önerisinden esinlenmiştir ve benim ilk başvurum!

Sonuç:

Sonuç Izgarası

-2 bayt : Hücre sıra numaralarının kaldırılması - Taylor Scott sayesinde !


3
PPCG'ye Hoşgeldiniz!
Johan du Toit,

1
Teşekkür ederim! Umarım ustalardan birkaç püf noktası öğrenirim :)
i_saw_drones

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

11

Perl 6 (ve muhtemelen birçok dil için benzer) (31 bayt)

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

Bu, Photoshop tarafından .raw uzantılı üretilmiş ve açılış sırasında aksi belirtilmediği sürece kare olduğu varsayılan başsız bir TIFF dosyası çıkarır. Renk derinliği ile oynamak (izin veriliyorsa) bunu daha da azaltabilir.


11

ffplay (ffmpeg), 93 bayt

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

Eski :

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

Düzenlemeler:

  1. Renkleri nasıl düzelttiklerini belirttikleri için @flawr'a teşekkürler !

  2. tıraş olabilir miydi14bytes\rule{5em}{5em}

    , ama sadece aynı görünmüyor.

  3. Amaçlanan renklere uygun şekilde benzeyen renk adları bularak muhtemelen birkaç bayt daha fazla tıraş olabilir.

  4. TEX'd

    RedGreenBlueRedGreenBlue.


1
Bence renklerin doğru değil. Ama bunun dışında eğer sadece :) başlıkla ilgili yazı upvote edeceğimi gelen
flawr

TEX

1
Görünüşe göre mathjax css renk isimlerini kullanıyor. Yani purpleile fuchsiave tealile aquave greenonunla yerini alabilirsin , limebence işler doğru olurdu.
kusur

Sadece şunu not etmek için: Yukarıdakiler bazılarını kaldırarak biraz daha golf oynayabilir {}. Ama bu akıl sağlığım için çok fazla kodlama ilkesini ihlal ediyor. = P
Nat

5
Sadece PPCG topluluğunun akıl sağlığıyla hiçbir zaman ünlü olmadığına dikkat edin. Muhtemelen bunların eksikliği için bir şey varsa.
kusur

10

Lua + LÖVE / Love2D , 186 183 bayt

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

Çevrimiçi deneyin!

görüntü tanımını buraya girin

İlk kod golf girişim!


1
Code Golf'a Hoşgeldiniz! İyi iş!
AJFaraday

1
Ben size doğruluk tablosunda ifadeleri kullanabilirsiniz düşünüyorum: t={[0>1]=0,[0<1]=1}.
Manatwork

1
@ manatwork Akıllı!
Sheepolution

başka bir löver, sizi burada görmek güzel
Lycea

10

MATL, 44 23 21 20 19 bayt

Octave'mın doğrudan bağlantı noktası @ExpiredData ve @LuisMendo'nun önerileriyle yanıt veriyor.

126973007Bo7B3*e0YG

çevrimiçi dene


9

Octave / MATLAB , 57 56 40 bayt

@ExpiredData sayesinde -17 bayt! Onların göz atın hatta golfier çözüm !

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

Çevrimiçi deneyin!


1
Sadece görüntü göstermek yerine işe yarıyor mu? Artık bir Matlab lisansım yok ve telefondayım bu yüzden test edemiyorum
Süresi dolmuş veri

2
@ExpiredData Gerçekten çalışıyor, çok teşekkürler!
kusur

2
Muhtemelen bunu da yapabilirsiniz Çevrimiçi deneyin!
Süresi dolmuş veriler

1
@ExpiredData --- Çok güzel hile, çok teşekkürler! :) --- neden bunu kendi cevabı olarak göndermiyorsun?
kusur

3
Tamam, bunu yapacağım
Süresi dolmuş veriler

9

Factorio Blueprint String, 705 bayt

Kabul ediyorum, sadece çözüm olarak neyin sınırlarını zorluyorum.

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

Oyuna yerleştirildiğinde üretilen çıktı (kullanılan düşük grafik ayarları):

görüntü tanımını buraya girin

Bunun geçerli bir çözüm olduğunu kanıtlamak için spesifikasyona tam olarak uyan bu piksel ızgarasını örneklemeniz gerekir:

görüntü tanımını buraya girin

Resmin geri kalanı, soruda belirtildiği gibi önemli olmayan bir sınır veya boşluk olarak sınıflandırılır.



8

HTML / CSS, 278 141 137 bayt

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 bayt yorum yapanlara teşekkürler, en önemlisi @data
-4 bayt @Einacio sayesinde

Unicode kullanır "Bloklar" için (U + 2588) kullanır ve bunları renklendirmek için CSS sınıfları / satır içi stilini kullanır.

Bence <font>ancak gibi kısa bir etiketi olarak değiştirerek, etiketlerinin daha golfed olabilir <a>sonları colornitelik


1
Bırak </td>otomatik olarak bu kapanış etiketi eklemek, tarayıcı akıllı yeterlidir
Ferrybig

3
Eğer kullanımdan kaldırılmış elemanlar kullanıyorsanız, ayrıca bir hücrenin arka plan rengini de kullanarak kullanabilirsiniz<td bgcolor=#f00>
Ferrybig

2
Belki noob bir soru, ama masayı kullanmaktan kaçının ve the yazıp <br> ile yeni bir satıra geçin.
frarugi87

1
@ frarugi87 evet - 235 toplam:<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-sadece

1
@ ASCII-sadece b {renk: # ff0} u {renk: # f0f} i {renk: # 0ff} <pre> <yazı tipi rengi = kırmızı> █ <b> █ <u> █ <b> █ <yazı tipi rengi = kireç> █ <i> █ <u> █ <i> █ <yazı tipi rengi = mavi> █
veri

7

JavaScript, 108 102 bayt

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

Snippet yok, çünkü bu yalnızca snippet konsolunda değil gerçek bir tarayıcı konsolunda çalışır. Düzenleme: Ekran görüntüsü için @AJFaraday'a teşekkürler. Açıklama: Tarayıcılar console.log, ikame parametrelerinin yer almasına izin veren ilk parametreye izin verir . %cİkame bir parametre alır ve (dezenfekte) CSS olarak uygular. Bu nedenle her blok, f0ff00f0üç basamaklı basamaklı renk kodu olarak yorumlanan uygun altlık kullanılarak renklendirilir .

Kod yürütme örneği


1
Nasıl çalıştığını anlamadım.
mareşal zanaat

1
@ marshalcraft %cbir biçim dizgisi oluşturmak için kullanılır, argümanlar ondan sonraki metin için CSS stilleridir
ASCII-yalnızca

1
Yani bu temelde dos sürümleri gibi ama krom tarayıcı ile?
mareşal zanaat

1
Sadece merak ediyorum ama kullanılacak en kısa fs / 0 zincirini nasıl buldun?
Marie

2
@Marie ff0ffTüm karışık renkleri ve 00f00tüm saf renkleri içerdiğini belirterek başladım . Bunları birleştirirseniz, yinelenen konumlar elde edersiniz ff0ve f00böylece ilk ve son karakterleri kaldırabilirsiniz. Daha sonra, 8'in optimal olmasını sağlamak için 7 karakterli dizelerin tümünü kontrol etmek için kısa bir senaryo yazdım.
Neil,

7

HTML (GIF), 108 bayt

Bu web tabanlı görüntü formatlarının savaşı! (Herhangi bir TIF veya JPG orada yarışıyor mu?)

Cevap. @AC .

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


HTML (BMP), 116 115 bayt

Cevap @ ASCII-sadece .

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


HTML (WebP), 116 bayt

Tarafından cevap @Hohmannfan .

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


HTML (PNG), 151 136 135 bayt

-Hohmannfan sayesinde -15 bayt .

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


Ayrıca, CSS ve SVG cevaplarıma bakınız.


3
İyi fikir ama .. Bana öyle geliyor ki, 9 piksel görüntü için 89 baytlık bir dosya biraz fazla. Belki bir BMP başlığını elle yazarak bu golf olabilir. Yanlış değilsem, asgari başlık 26 bayttır, artı 12 gerçek veri (3 satır 4 piksel) görüntüyü 38 bayta kadar kesebilir, bu da
base64'te

2
118: <img src="data:image/bmp;base64,Qk0+AAAAQVNDTxoAAAAMAAAAAwADAAEAGAD/AP///wD/AAAAAAAA//8A/wD//wAAAAAAAP8A////AP8AAAA=">. 14 bayt dosya başlığı, 12 bayt uygulama başlığı, satır başına gerçek veri 9 (+3
ASCII-yalnızca

2
Ben saymadım, ama <img src="data:image/gif;base64,R0lGODdhAwADAMIGAAAA//8AAP8A/wD/AAD/////AAAAAAAAACwAAAAAAwADAAADBhglNSQEJAA7">daha kısa olduğundan şüpheleniyorum
AC

2
İşte base64 kodlandığında 15 byte daha küçük bir png dosyası:iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAFElEQVR4AWP4z8Dw/z8DEIIodB4A4D0O8pOGuTgAAAAASUVORK5CYII=
Hohmannfan

2
Biçimlendirme savaşına devam etmek için, kayıpsız bir WebP çözümü. Spesifikasyonu ihlal etmeden artık kesemiyorum, bu yüzden BMP tarafından 116 baytta dar bir şekilde dövüldü. <img src=data:image/webp;base64,UklGRjYAAABXRUJQVlA4TCoAAAAvAoAAAC8gEEjaH3qN+RcQFPk/2vwHH0QCg0I2kuDYvghLcAoX0f/4Hgc>
Hohmannfan

6

dc (xterm'de), 64 bayt

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

Sadece renkler yerine bir sürü kaçış kodu alacaksınız, ancak yine de çevrimiçi deneyebilirsiniz!

Anladığım kadarıyla, 16 temel ANSI renk, terminalin istediği gibi yorumlanabiliyor. Diğer yandan, xterm renkli küpteki 216 renk, açık RGB değerlerine sahiptir. Bu kodları kullanıyorum ve Xs'nin ızgarasını basıyorum:

buncha renkli 'x

İlk önce giriş yarıçapını taban 15'e ayarladık Fi. Bu iki bayta mal olur, ancak geri üç verir, yani ... bir bayt net kazancı (ve okunabilirlikte büyük bir kayıp). Daha sonra renk değerlerimizi yığına almaya çalışıyoruz. Ondalık, bu olurdu 21 51 201 51 46 226 201 226 196, ama biz kaçık modundayız bu yüzden olacak 16 36 D6 36 31 101 D6 101 D1. Boşluklardan birini, bir noktada tanımlamamız gereken bir makroya [AP]sF(basitçe bir satır beslemesi basar) yerleştirerek ortadan kaldırırız . Küçültebiliriz 36 D6 36ve101 D6 101 ilk değeri yığına yerleştirerek, çoğaltarak, ikinciyi koyarak ve sonra değiştirerek ( 36dD6r,101dD6r ).

Makro Myazdırma işini yapar ve yapmaz. 1CPkaçış karakterini yazdırır. Parantezler, dizeleri sınırlandırmak için kullanılır ve bildiğim kadarıyla kaçamazsınız, bu yüzden, aynı zamanda, bir ASCII değeriyle de basımı yazdırmamız gerekir 61P. [38;5;]P'numaralı listeden ön plan rengi ayarla' kodudur. ndeğeri, yeni satır içeren yığının en üstünden bastırarak yazdırır. [mX]Pkodu sonlandırır ve bir 'X' basar. Gerektiğinde z3%0=Fsatır besleme makromuzu çalıştırarak yığın derinliği mod 3'ü kontrol eder F. yığında bir şey olduğu sürece koşmaya z0<Mdevam ediyor M. dsMxkoşmak.

Bunu bir xterm'de dc ile çalıştırırsanız, ön plan renginizi mavi bırakacağını unutmayın. 1CP61P74P(ekran görüntüsünde gösterilen giriş) bunu sıfırlamalıdır.


6

Blok şeklinde kaplumbağa, 45 blok

Çevrimiçi deneyin!

İş için en saçma aracı bulma konusunda küçük bir oyun oynamaya ne dersiniz?

Çıktı:

Bu şahane boktan programlamanın görkemli çıktısı

Program (ilave sapma için ekran görüntüsü olarak):

Ek sapma için bir ekran görüntüsü olarak program

Not: Grileştirilmiş bloklar da metriğe doğru sayılır.


1
Bunun standart bir PCG mücadelesi olmasını isterim! Bunun yerine, bazı kod golf bulmacalarında organik olarak gerçekleşiyor
AJFaraday

5

Node.js, 79 bayt

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

Renk ızgarasını içeren PPM formatında "P" adlı bir dosya üretir.


5

TI-Basic, x bayt (yapabildiğimde vuracak)

Not: içerik filtresi bu komutların her biri için simge boyutlarına bakmamı engelliyor. Herhangi biri benim için puan almak isterse, bunun için gidin.

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"

Bu benim küçük hesap makinesi ekranımda çok kötü görünüyor. Ancak hey, şekil önemli değil: ^)

Golf çıkışı: 8 kat daha büyük çıktı için değiştirildi:

görüntü tanımını buraya girin



görüntü tanımını buraya girin



TI-BASIC, x bayt

Metin yerine Pxl-On kullanımı:

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

Çıkış: havaya uçurdu ~ 11x:

görüntü tanımını buraya girin



görüntü tanımını buraya girin


Satır sonları hariç 180 karakterdir. Satır sonları kod golf içinde sayılır nasıl / emin değilim.
Nat

4
Evet, ancak TI-BASIC belirtilmiş bir dildir - örneğin, tercüman TextColorbeklediğiniz gibi 9 değil 2 byte olarak görür @Nat
Benjamin Urquhart

4

C ++, SFML, 177 bayt

#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*)İçinde rgb değerlerine sahip bir görüntü oluşturmak için yöntem kullanır


Sen yazarak bir byte kapalı tıraş edebilirsiniz 0xFF0000olarak 255<<16.
Broxzier

1
Biraz daha ileri int b=255<<16,g=65280,r=255,d[]={r,g|r,b|r,g|r,g,b|g,b|r,b|g,b};
götürürseniz

4

C #, 248 204 198 bayt

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

Çıktı:
görüntü tanımını buraya girin


4

TEMEL C64, 106 bayt

0 POKE53281,0
1 DATA144,28,158,156,144,13,158,30,159,144,13,156,159,31,144
2 READA:PRINTCHR$(A)+"o";:GOTO2

görüntü tanımını buraya girin


3

Wolfram Dili (Mathematica), 72 bayt

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

görüntü tanımını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.