Terminal 256-warna yang kompatibel dengan Xterm menambahkan 240 warna di atas 16 warna sistem yang biasa. Warna 16-231 menggunakan 6 level (0, 95, 135, 175, 215, 255) merah, hijau, dan biru, dipesan secara leksikografis. Warna 232-255 hanya 24 tingkat abu-abu (8 ... 238 kali 10 detik). Untuk mendapatkan ide yang lebih baik tentang apa yang saya bicarakan, lihat tabel ini .
Tantangan
Tujuan Anda adalah membuat program atau fungsi yang mengambil, sebagai input, nilai rgb, dan menampilkan angka yang sesuai dengan warna Xterm terdekat dengan nilai rgb itu. Karena 16 warna sistem (warna 0-15) sering kali dapat disesuaikan, Anda akan mengecualikannya dari konversi ini.
Untuk lebih menentukan apa warna "terdekat", gunakan jarak Manhattan di sepanjang komponen merah, hijau, dan biru. Misalnya, rgb(10, 180, 90)
berjarak 20 unit dari rgb(0, 175, 95)
(warna 35) karena abs(10 - 0) + abs(180 - 175) + abs(90 - 95) == 20
. Jika warna input sama antara dua atau lebih warna Xterm, output warna Xterm dengan indeks tertinggi.
Contohnya
R G B Xterm
0 0 0 ==> 16
95 135 0 ==> 64
255 255 255 ==> 231
238 238 238 ==> 255
90 133 140 ==> 66
218 215 216 ==> 188
175 177 178 ==> 249
175 0 155 ==> 127
75 75 75 ==> 239
23 23 23 ==> 234
115 155 235 ==> 111
Aturan
- Celah standar dilarang
- Program atau fungsi Anda diizinkan untuk mengambil nilai rgb dalam format apa pun yang wajar, termasuk:
- Pisahkan argumen untuk merah, hijau, dan biru
- Daftar, tuple, kamus, atau yang serupa
- String atau stdin yang dipisahkan oleh pembatas
- Warna hex (misalnya
#ff8000
)
- Anda dapat mengasumsikan bahwa semua nilai r, g, dan b, akan berupa bilangan bulat antara 0 dan 255.
- Karena 16 warna sistem harus dikeluarkan dari pemetaan, semua output harus dalam kisaran 16 ... 255.
Ini kode-golf , jadi kode terpendek menang.
Kotlin ,
299290267265 byteYg diperindahkan
Uji
TIO
TryItOnline
sumber
Batch, 266 byte
sumber
Stax , 41 byte
Jalankan dan debug online!
Versi ASCII 50 byte:
sumber
C (gcc),
202 192 157 150 (141 disadap) 138134 byteTerima kasih @ceilingcat
Cobalah online!
sumber