รหัสสีจริง


12

สีจริง (24- บิต) ที่Wikipediaอธิบายไว้ในส่วนที่เกี่ยวข้องดังนี้

24 บิตมักจะใช้ 8 บิตของแต่ละ R, G, B ณ ปี 2018 ความลึกของสี 24 บิตถูกใช้โดยแทบทุกเครื่องคอมพิวเตอร์และโทรศัพท์หน้าจอโทรศัพท์และรูปแบบการจัดเก็บภาพส่วนใหญ่ เกือบทุกกรณีที่มี 32 บิตต่อพิกเซลหมายความว่า 24 ใช้สำหรับสีและ 8 ที่เหลือเป็นช่องอัลฟาหรือไม่ได้ใช้

2 24ให้ความหลากหลายของสี 16,777,216 สี ดวงตามนุษย์สามารถแยกแยะสีได้มากถึงสิบล้านสี[10]และเนื่องจากขอบเขตของการแสดงมีขนาดเล็กกว่าช่วงของการมองเห็นของมนุษย์นี่หมายความว่าสิ่งนี้ควรครอบคลุมช่วงนั้นโดยมีรายละเอียดมากกว่าที่สามารถรับรู้ได้ ...

...

ระบบ Macintosh อ้างถึงสี 24 บิตเป็น "ล้านสี" บางครั้งคำว่า "สีจริง" ใช้เพื่อหมายถึงสิ่งที่บทความนี้เรียกว่า "สีโดยตรง" [13]นอกจากนี้ยังใช้เพื่ออ้างถึงความลึกของสีทั้งหมดที่มากกว่าหรือเท่ากับ 24

รูปภาพประกอบด้วยสีทั้งหมด 16,777,216 สี

สีทั้งหมด 16,777,216 สี

งาน

เขียนโปรแกรมที่สร้างและส่งกลับค่าสีทั้งหมด 16,777,216 สีภายในอาร์เรย์เป็นสตริงในrgb()ฟังก์ชันCSS

5.1 ฟังก์ชั่น RGB: rgb()และrgba()

rgb()ฟังก์ชั่นกำหนดสี RGB โดยการระบุช่องสีแดงสีเขียวและสีฟ้าโดยตรง ไวยากรณ์ของมันคือ:

rgb() = rgb( <percentage>{3} [ / <alpha-value> ]? ) |
        rgb( <number>{3} [ / <alpha-value> ]? )
<alpha-value> = <number> | <percentage>

อาร์กิวเมนต์สามตัวแรกระบุช่องสีแดงเขียวและน้ำเงินตามลำดับ 0%แทนค่าต่ำสุดสำหรับช่องสีนั้นในช่วง sRGB และ100%แสดงถึงค่าสูงสุด A <number>เทียบเท่ากับ a <percentage>แต่มีช่วงต่างกัน: 0แสดงค่าต่ำสุดสำหรับช่องสีอีกครั้ง แต่255แสดงถึงสูงสุด ค่าเหล่านี้มาจากความจริงที่ว่าเอ็นจิ้นกราฟิกจำนวนมากเก็บช่องสีภายในเป็นไบต์เดียวซึ่งสามารถเก็บจำนวนเต็มระหว่าง 0 ถึง 255 การใช้งานควรเป็นไปตามความแม่นยำของช่องที่เขียนหรือคำนวณเมื่อใดก็ตามที่เป็นไปได้ หากไม่สามารถทำได้ช่องสัญญาณควรจะถูกปัดเศษเป็นค่าที่ใกล้เคียงที่สุดที่ใช้ความแม่นยำสูงสุดโดยปัดเศษขึ้นหากค่าสองค่าใกล้กัน

อาร์กิวเมนต์สุดท้ายคือ<alpha-value>, ระบุค่าอัลฟาของสี หากกำหนดเป็น a <number>ช่วงที่มีประโยชน์ของค่าคือ0 (แสดงถึงสีโปร่งใสอย่างสมบูรณ์) ถึง1(แสดงถึงสีทึบแสงเต็มที่) หากกำหนดเป็น a 0%หมายถึงสีโปร่งใสอย่างสมบูรณ์ในขณะที่100%แสดงถึงสีทึบแสงอย่างสมบูรณ์ 100%หากละเว้นเป็นค่าเริ่มต้น

ค่าที่อยู่นอกช่วงเหล่านี้ไม่ถูกต้อง แต่จะถูกยึดกับช่วงที่กำหนดที่นี่ในเวลาที่คำนวณได้

สำหรับเหตุผลดั้งเดิมrgb()สนับสนุนไวยากรณ์ทางเลือกที่แยกอาร์กิวเมนต์ทั้งหมดด้วยเครื่องหมายจุลภาค:

rgb() = rgb( <percentage>#{3} , <alpha-value>? ) |
        rgb( <number>#{3} , <alpha-value>? )

นอกจากนี้สำหรับเหตุผลมรดกซึ่งเป็นฟังก์ชั่นยังมีอยู่มีไวยากรณ์ที่เหมือนกันและพฤติกรรมrgba()rgb()

หรือ#RRGGBBรูปแบบสัญกรณ์ฐานสิบหก RGB

5.2 สัญลักษณ์เลขฐานสิบหก RGB:#RRGGBB

สัญกรณ์สีฐานสิบหก CSS อนุญาตให้ระบุสีโดยให้ช่องเป็นตัวเลขฐานสิบหกซึ่งคล้ายกับวิธีการเขียนสีบ่อยๆในรหัสคอมพิวเตอร์โดยตรง นอกจากนี้ยังสั้นกว่าการเขียนสีเดียวกันในrgb()สัญกรณ์

ไวยากรณ์ของ a <hex-color>คือ<hash-token>โทเค็นที่มีค่าประกอบด้วย 3, 4, 6 หรือ 8 หลักเลขฐานสิบหก กล่าวอีกนัยหนึ่งคือสีฐานสิบหกเขียนเป็นอักขระแฮช "#" ตามด้วยตัวเลข 0-9 หรือตัวอักษรจำนวนหนึ่ง (กรณีตัวอักษรไม่สำคัญ - #00ff00เหมือนกัน#00FF00)

จำนวนเลขฐานสิบหกที่กำหนดจะกำหนดวิธีถอดรหัสสัญกรณ์ฐานสิบหกให้เป็นสี RGB:

6 หลัก

คู่แรกของตัวเลขที่ตีความว่าเป็นเลขฐานสิบหกระบุช่องสีแดงของสีโดยที่00แสดงถึงค่าต่ำสุดและff(255 เป็นทศนิยม) หมายถึงจำนวนสูงสุด ตัวเลขคู่ถัดไปที่ตีความในลักษณะเดียวกันระบุช่องสีเขียวและคู่สุดท้ายระบุสีน้ำเงิน ช่องอัลฟาของสีทึบแสงเต็มที่

ตัวอย่าง 2
กล่าวอีกนัยหนึ่ง#00ff00หมายถึงสีเดียวกันกับrgb(0 255 0)(สีเขียวมะนาว)

ดูแบบร่างแก้ไขของโมดูลสี CSS ระดับที่ 4

ตัวอย่าง

rgb()ฟังก์ชั่นCSS ( สามารถแทนที่อักขระช่องว่างสำหรับอักขระจุลภาคเช่นrgb(0 255 0))

// `rgb()` `<percentage>` as strings in resulting array
['rgb(0%,0%,0%)', ...,'rgb(0%,255%,0)', ...'rgb(255,255,255)']

// `rgb()` `<number>` as strings in resulting array
['rgb(0,0,0)', ...,'rgb(0,255,0)', ...'rgb(255,255,255)']

สัญกรณ์เลขฐานสิบหก CSS RGB RRGGBB

// RGB hexadecimal notation as strings in resulting array
['#000000', ...,'#00ff00', ...'#ffffff']

เกณฑ์การชนะ

ไบต์ที่น้อยที่สุดใช้ในการเขียนโปรแกรม


ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
Mego

คำตอบ:


8

R , 25 ไบต์

sprintf("#%06X",1:2^24-1)

ลองออนไลน์!


ไม่คุ้นเคยกับ R แต่ไม่สามารถส่งออก # 000000 ได้หรือไม่
nyanpasu64

2
ไม่มันส่งออก # 000000 ดูลิงค์ TIO
J.Doe

@ jimbo1qaz a:b-cสร้างเวกเตอร์จากa-cถึงb-cรวม (มันทำให้เวกเตอร์จากaถึงbแล้วลบออกcจากแต่ละรายการ)
อาเธอร์

2
Ahh ดังนั้น R ระบุ colons ที่มีลำดับความสำคัญเข้มงวดกว่าเลขคณิต ... ต่างจาก Python slices
nyanpasu64

7

Python 2 , 77 40 39 37 ไบต์

print['#%06X'%c for c in range(8**8)]

ลองออนไลน์!

-1 ไบต์ขอบคุณ Digital Trauma

-2 ไบต์ขอบคุณ dylnan


2
ทำไมคุณถึงต้องการแลมบ์ดา? ความเข้าใจในรายการนั้นเป็นคำตอบที่ถูกต้องใช่ไหม
Adirio

2
ลอง8**8แทนที่จะ1<<24บันทึกไบต์
บาดเจ็บทางดิจิตอล

2
แล้วprint['...
dylnan

1
@Adirio ค่าเพียงอย่างเดียวไม่นับเป็นการดำเนินการตามความท้าทาย
Jonathan Frech

2
@Adirio ตัวคุณเขียน[ ... ] ในขั้วหลาม [ ... ] - ทำให้การส่งของคุณจะถูกเขียนในหลาม 2 REPLไม่หลาม 2
Jonathan Frech

6

PowerShell , 28 26 ไบต์

1..16mb|%{"#{0:x6}"-f--$_}

ลองออนไลน์!

ลูปจาก1ไปยัง16mb(16777216) แต่ละซ้ำเราจะใช้-fประกอบการ ORMAT ทำหน้าที่เกี่ยวกับจำนวนปัจจุบันก่อน decremented กับสตริง--$_ "#{0:x6}"ที่นี่เรากำลังระบุxค่าของเขาเบาะเป็น6หลักโดยมีแฮช#อยู่ด้านหน้า บน TIO จำกัด เอาต์พุต 60 วินาที / 128KiB เปลี่ยนเป็น1เพื่อ(16mb-5)ดูว่ามันจะจบลงอย่างไร


6

JavaScript (ES7), 65 62 61 ไบต์

บันทึกแล้ว3 4 ไบต์ขอบคุณ @tsh

ส่งคืนอาร์เรย์ของ#RRGGBBสตริง

_=>[...Array(n=8**8)].map(_=>'#'+(n++).toString(16).slice(1))

ลองออนไลน์! (เอาต์พุตที่ตัดปลาย)


ปัจจุบันใช้วิธีการแก้ปัญหางูใหญ่แทน8**8 1<<24มันจะทำงานกับ JS ด้วย
tsh


4

Japt, 14 ไบต์

#rrggbbขาออกเป็น

G²³ÇsG ùT6 i'#

ลองใช้ (จำกัด เฉพาะองค์ประกอบ 4096 รายการแรก)


คำอธิบาย

G                  :16
 ²                 :Squared
  ³                :Cubed
   Ç               :Map the range [0,result)
    sG             :  Convert to base-16 string
       ù           :  Left pad
        T          :   With 0
         6         :   To length 6
           i'#     :  Prepend "#"

ภาษาที่น่าสนใจ ความคิดใดว่าทำไมตัวอักษร T ใช้สำหรับ "0"? ฉันได้ 16 -> G เพื่อบันทึกไบต์ แต่ T -> 0 ไม่ได้ผลเหมือนกัน
อเล็กซ์

@Alec เพราะถ้าคุณแทนที่ T ด้วย 0 มันจะรวมกับ 6 และกลายเป็น 06
geokavel

อ้า gotcha ดังนั้นมีหนึ่งตัวอักษรต่อตัวเลขสำหรับกรณีที่คุณไม่ต้องการให้เข้าร่วมกับหลักก่อนหน้า / ถัดไปหรือไม่
อเล็กซ์

@Alec ตามที่ geokavel กล่าวในกรณีพิเศษนี้มันช่วยฉันในการใช้เครื่องหมายจุลภาคเพื่อคั่นอาร์กิวเมนต์ 2 ตัวที่ส่งผ่านไปให้ùฉัน กรณีการใช้งานทั่วไปอีกอย่างหนึ่งคือให้ใช้เป็นตัวนับเมื่อคุณต้องการเพิ่มตัวแปรในขณะที่ตัวอย่างเช่นการจับคู่กับอาร์เรย์ และแน่นอนว่าเป็นตัวแปรคุณสามารถกำหนดค่าให้กับมันเช่นกันหากจำเป็น 0เป็นจำนวนเต็มหลักเพียงหนึ่งเดียวที่มีตัวแปรของตัวเองแม้ว่า - ดีในทางเทคนิค 7 เป็นตัวแปร 6 การป้อนข้อมูลเริ่มต้นU-Z 0จำนวนเต็มอื่น ๆ ที่ได้รับมอบหมายให้ตัวแปรใน Japt -1, 10-16, 32, 64 & 100คือ:
ขนปุย

หากคุณต้องการที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Japt รู้สึกอิสระที่จะ ping ฉันในห้องสนทนาของเรา
ขนปุย



3

แบตช์ 87 ไบต์

@set s= in (0,1,255)do @
@for /l %%r%s%for /l %%g%s%for /l %%b%s%echo rgb(%%r,%%g,%%b)

เอาต์พุตในรูปแบบ CSS การทดแทนตัวแปรเกิดขึ้นก่อนที่forคำสั่งจะถูกวิเคราะห์คำดังนั้นรหัสจริงจะเป็นดังนี้:

@for /l %%r in (0,1,255)do @for /l %%g in (0,1,255)do @for /l %%b in (0,1,255)do @echo rgb(%%r,%%g,%%b)



2

K (oK) , 19 ไบต์

วิธีการแก้:

$(3#256)\'!16777216

ลองออนไลน์! (จำกัด 500 หมายเลขแรก)

คำอธิบาย:

ถ่ายโอนสตริง rgb ออก แปลงตัวเลขแต่ละตัวระหว่าง 0 ถึง 16777216 ถึงฐาน 256 จากนั้นแปลงเป็นสตริง ...

$(3#256)\'!16777216 / the solution
          !16777216 / range 0..16777215
 (     )\'          / split each both
  3#256             / 256 256 256
$                   / string

2

MATL , 17 15 ไบต์

10W:q'#%06X,'YD

ลองออนไลน์!

รุ่น TIO แสดง 2 ^ 10 แรกเท่านั้นที่จะไม่หมดเวลา #FFFFFFผมรวมประโยคสุดท้ายในส่วนท้ายเพื่อแสดงให้เห็นว่ามันแน่นอนที่ยุติ บันทึกหนึ่งไบต์โดยเปลี่ยนเป็นfprintfแทนที่จะรวบรวมสตริงด้วยตนเอง แสดงรายการที่คั่นด้วยเครื่องหมายจุลภาค

คำอธิบาย

24W:q            % Range from 0 to 2^24-1
     '#%06X,'    % fprintf format spec (# followed by hexadecimal, zero-padded, fixed-width, followed by newline)
             YD  % Call fprintf. Internally loops over range.

2

APL (Dyalog Unicode) , 47 43 20 ไบต์

'#',(⎕D,⎕A)[↑,⍳616]

ลองออนไลน์!

22416⍴4⍴

ขอบคุณ @Dzaima และ @ngn สำหรับ 23 ไบต์

⎕IO←0การใช้ประโยชน์

วิธี:

'#',(⎕D,⎕A)[↑,⍳616]  Main function
               616   Generate every possible 6 digit hex number in a matrix format
              ,        Ravel the matrix (from a 16x16x16x16x16x16 matrix to a 16^6x2 list)
                      Mix; (turns the list into a 16^6x2 matrix)
    (⎕D,⎕A)[       ]  Use that matrix to index the vector of the digits 0-9 concatenated with the alphabet.
'#',                   Then prepend a '#' to each.

1

Ruby , 31 ไบต์

$><<("#%06x\n"*d=2**24)%[*0..d]

ลองออนไลน์!


ฉันประหลาดใจที่%ต้องใช้สายยาวและอาร์เรย์ที่ยาว FYI \nคุณสามารถบันทึกไบต์โดยใช้ตัวแบ่งบรรทัดตัวอักษรแทน
Jordan

1

V , 25 ไบต์

8É00lrx16777215ñÄ<C-a>ñ0<C-v>Gls#

ลองออนไลน์! (แทนที่16777215ด้วย31)

คำอธิบาย

8É0                                " insert 8 zeroes
   0l                              " move cursor to the second character
     rx                            " replace by x
       16777215ñ      ñ            " 16777215 times do ..
                Ä                  " .. duplicate line
                 <C-a>             " .. increment (leading 0x makes sure it uses hexadecimals)
                       0<C-v>      " move cursor to beginning of line and start selection
                             Gl    " select the column with 0x
                               s#  " replace by #

1

เลขที่ 69 +4 = 73

g.cmd, 69

for /L %%A in (0,1,16777215)do cmd/kexit %%A&set #%%A=#!=exitcode:~2!

บันทึกค่าเลขฐานสิบหกที่มีฟอร์ม#RRGGBBเป็น 'Array'

g.cmdcmd /V/Q/K g.cmdคือการถูกเรียกใช้ นี่คือที่ +4 มาจาก/V/Qการนับเป็น 4 cmd /K g.cmdตัวอักษรเพิ่มเติมเมื่อเทียบกับเพียง นี่เป็นการตั้งค่าสภาพแวดล้อมที่มี 'อาเรย์' อยู่ในหน่วยความจำ นอกจากนี้ยังใช้เวลาตลอดไปในการรันดังนั้นใช้ค่าที่ต่ำมากเพื่อลองหรือทำลายการใช้งานCtrl+C


แตกหัก

Invokation

  • /Vเปิดใช้งานการขยายที่ล่าช้า แต่สั้นกว่าsetlocal EnableDelayedExpansionนั่นคือสาเหตุที่เราต้องการการcmdโทรในตอนแรก
  • /Q ละเว้นเอาต์พุตและเทียบเท่ากับ @echo off
  • /Kให้คุณเรียกใช้นิพจน์ (ในกรณีนี้g.cmd) และไม่ออกหลังจากนั้นเพื่อให้คุณสามารถตรวจสอบ 'Array' โดยใช้set #

g.cmd

for /L %%A IN (0,1,16777215) DO (
    cmd /k exit %%A
    set #%%A=#!=exitcode:~2!
)

บิตนี้ใช้เคล็ดลับที่บันทึกไว้ที่นี่เพื่อแปลงตัวเลขปกติให้เป็นเลขฐานสิบหกจากนั้นบันทึกค่านั้นลงใน 'อาร์เรย์'


ฉันได้รับการเรียกว่าโครงสร้างการจัดเก็บเป็น 'อาเรย์' แต่นั่นไม่ถูกต้องเพราะอาร์เรย์ที่แท้จริงไม่มีอยู่ในแบทช์ แต่คุณสามารถตั้งชื่อตัวแปรเพื่อให้พวกเขามีชื่ออาเรย์เช่น:

set elem[1]=First element
set elem[2]=Second one

หรือเช่นในกรณีนี้:

set #1=First element
set #2=Second one

คุณยังสามารถเข้าถึงได้ผ่าน !#%position%!


ฉันไม่แน่ใจ. แต่/V/Q/Kอาจจะอ้างว่าเป็น "อาร์กิวเมนต์" สำหรับล่ามและนับเป็น "3 + 69 = 72" meta
tsh

ฉันไม่ทราบและจะอัปเดตคำตอบของฉันตามนั้น ขอบคุณ @tsh

0

Groovyขนาด 53 ไบต์

c={a=[];(1<<24).times{a.add "".format("#%06x",it)};a}

นิยามฟังก์ชั่น c () ส่งคืน ArrayList (ฉันถือว่าใช้ได้ดีแม้ผ่านคำถามที่ถามถึงอาร์เรย์)

Ungolfed โดยมีประเภทโดยนัย:

ArrayList<String> c = {
    ArrayList<String> a = []
    (1 << 24).times { 
        a.add("".format("#%06x", it)) // add the hex-formatted number to the list.
    }
    return a
}

ลองออนไลน์!


0

Java 10, 87 84 ไบต์

v->{int i=1<<24;var r=new String[i];for(;i-->0;)r[i]="".format("#%06X",i);return r;}

-3 ไบต์ขอบคุณที่@ archangel.mjj

ลองออนไลน์ (จำกัด เฉพาะ4,096รายการแรก)

คำอธิบาย:

v->{                       // Method with empty unused parameter & String-array return-type
  int i=1<<24;             //  Integer `i`, starting at 16,777,216
  var r=new String[i];     //  Result String-array of that size
  for(;i-->0;)             //  Loop `i` in the range (16777216, 0]
    r[i]=                  //   Set the `i`'th item in the array to:
      "".format("#%06X",i);//   `i` converted to a hexadecimal value (of size 6)
  return r;}               //  Return the result-array

อาคุณโพสต์สิ่งนี้ในขณะที่ฉันกำลังเขียนโพสต์ดังนั้นเราจึงมีคำตอบที่คล้ายกันมาก คุณสามารถปรับปรุงสามไบต์ด้วยr[i]="".format("#%06X",i);
archangel.mjj

@ archangel.mjj อ่าฉันเป็นคนงี่เง่า ขอบคุณ! ที่จริงฉันเคยมี"".format("#%06X",i)มาก่อนตั้งแต่เห็นคำตอบใน Python แต่ฉันไม่ตอบเพราะฉันไม่สามารถทำให้ TIO ทำงานได้เร็วพอ จากนั้นฉันเห็นทุกคนเพิ่งแสดง4,096รายการแรกบน TIO ดังนั้นฉันจึงเขียนคำตอบอีกครั้งลืมเกี่ยวกับ"#%06X"... >. <
Kevin Cruijssen

@KevinCruijssen ฉันไม่เคยรู้ว่าคุณสามารถทำได้var rใน Java ..
FireCubez


0

PHP, 68 62 ไบต์

สิ่งนี้ควรถูกวางไว้ภายในไฟล์อาร์เรย์จะถูกส่งคืนในที่สุดเพื่อให้สามารถใช้งานได้

<?foreach(range(0,1<<24)as$i)$a[]=sprintf('#%06x',$i);return$a;

หากต้องการเข้าถึงอาเรย์เพียงแค่ให้ผลลัพธ์ของการรวม (เช่น:) $a = include 'xyz.php';กับตัวแปร


ขอบคุณ@manatwork ที่ช่วยฉัน 6 ไบต์และแก้ไขปัญหา


1
คุณแน่ใจหรือไม่ว่าสิ่งนี้จะส่งออกตัวเลขฐานสิบหกด้วย%1$06dสตริงรูปแบบ 1$และฉันเห็นเหตุผลสำหรับการใช้ไม่มี คุณสามารถลดความยาวโดยรวมทั้ง“#” #%06xในสตริงรูปแบบ: ซึ่งจะมีประโยชน์เมื่อเพิ่มอักขระพิเศษเพื่อแก้ไขช่วงดังกล่าวในขณะนี้นับได้ถึง 16777216 = # 1000000
จัดการ

ดีก็จะ .... ถ้าฉันไม่ลืมที่จะเปลี่ยนแปลงไป%d %xและลืมเกี่ยวกับการย้ายสาย#ภายในsprintf()อย่างสมบูรณ์ คุณบันทึกฉัน 6 ไบต์ ขอบคุณ
Ismael Miguel





0

T-SQL, 122 117 ไบต์

ส่งคืน#RRGGBBสตริงตารางที่ 16,777,216 แถว ตัวแบ่งบรรทัดใช้สำหรับการอ่านเท่านั้น:

WITH t AS(SELECT 0n UNION ALL SELECT n+1FROM t WHERE n<16777215)
SELECT'#'+FORMAT(n,'X6')FROM t option(maxrecursion 0)

ใช้ CTE recursive สำหรับตารางจำนวน 0-2 ^ 24-1 จากนั้นใช้ในตัวFORMATคำสั่ง (มีให้บริการใน SQL 2012 หรือหลังจากนั้น) ที่จะทำให้มันกลายเป็นสตริงฐานสิบหก 6 หลัก แนบ#กับด้านหน้าและเราเสร็จแล้ว

แก้ไข 1: POWER()ฟังก์ชั่นที่ลบออกจำนวนที่สั้นกว่า: P



0

เยลลี่ 8 ไบต์

ØHṗ6”#;Ɱ

ลองออนไลน์! (หมายเหตุ: การใช้งาน2มากกว่า6เป็น6ครั้งจากบน TIO)

การส่งฟังก์ชั่น (เพราะโดยปกติแล้วโปรแกรมเต็มรูปแบบของเยลลี่จะพิมพ์รายการสตริงโดยไม่มีตัวคั่นระหว่างกันทำให้เป็นการยากที่จะเห็นขอบเขต) ลิงก์ TIO มีตัวหุ้มเพื่อพิมพ์รายการของสตริงโดยใช้บรรทัดใหม่เพื่อแยกพวกมัน

คำอธิบาย

ØHṗ6”#;Ɱ
ØH         All hex digits (“0123456789ABCDEF”)
  ṗ6       Find all strings of 6 of them (order relevant, repeats allowed)
    ”#;    Prepend “#”
       Ɱ     to each of the resulting strings

1
ที่น่าสนใจ - ทำไมคุณถึงทำให้คำตอบเป็นชุมชนวิกิ
Jonathan Frech

@ JonathanFrech: ฉันทำสิ่งนี้กับทุกโพสต์ของฉันเพราะ a) มันลดแรงจูงใจสำหรับคนที่จะเล่นเกมระบบชื่อเสียง (เนื่องจากโพสต์ไม่ได้ให้ชื่อเสียง) ข) ฉันมีความสุขที่ได้แก้ไขโพสต์และชุมชน - wiki marker เป็นวิธีการระบุว่า ระบบชื่อเสียงของ Stack Exchange นั้นเสียหายมากหรือน้อยอย่างสมบูรณ์: ในบัญชีที่ผ่านมาฉันเคยตั้งใจทำซ้ำทุกวันเป็นเวลาหนึ่งสัปดาห์เพื่อแสดงให้เห็นว่าระบบง่ายต่อการเล่นเกมอย่างไร ทุกวันนี้ฉันไม่ต้องการมีส่วนร่วมโดยเฉพาะอย่างยิ่งเมื่อชื่อเสียงที่สูงขึ้นเพียงทำให้เว็บไซต์พยายามโน้มน้าวคุณให้ดูแล
ais523

แค่อยากรู้อยากเห็น - สแต็คใดที่คุณประสบความสำเร็จในการเล่นเกมระบบชื่อเสียง?
Jonathan Frech

@JonathanFrech: อันนี้ ฉันเป็นผู้ใช้ 20k แต่ในที่สุดก็ลบบัญชีของฉันเพราะมันทำให้ฉันยุ่งเหยิงและระบบชื่อเสียงทำให้ฉันสร้างเนื้อหาที่ทำให้ไซต์แย่ลงเมื่อเทียบกับที่ดีกว่า
ais523



0

Perl 6 , 26 ไบต์

{map *.fmt("#%06X"),^8**8}

ลองออนไลน์!

ใช้รูปแบบเดียวกับคนอื่น ๆ หมดเวลากับ TIO

หรือในรูปแบบ rgb:

31 ไบต์

{map {"rgb($_)"},[X] ^256 xx 3}

ลองออนไลน์!


ผมคิดว่าการส่งออก RGB ควรจะรวมถึงสตริงrgb(0, 0, 0) rgb
nwellnhof

@nwellnhof อัปเดต (แม้ว่าจะสิ้นสุดลงในระยะสั้นเพื่อทำเลขฐานสิบหก)
Jo King
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.