256-kolorowe terminale kompatybilne z Xterm dodają 240 kolorów w stosunku do zwykłych 16 kolorów systemowych. Kolory 16-231 używają 6 poziomów (0, 95, 135, 175, 215, 255) czerwonego, zielonego i niebieskiego, uporządkowanych leksykograficznie. Kolory 232-255 to po prostu 24 poziomy szarości (8 ... 238 na 10 s). Aby uzyskać lepszy obraz tego, o czym mówię, zobacz tę tabelę .
Wyzwanie
Twoim celem jest stworzenie programu lub funkcji, która przyjmuje, jako dane wejściowe, wartości rgb i wyprowadza liczbę odpowiadającą najbliższemu kolorowi Xterm tej wartości rgb. Ponieważ 16 kolorów systemowych (kolory 0–15) często można dostosowywać, zostaną one wyłączone z tej konwersji.
Aby lepiej zdefiniować, jaki jest „najbliższy” kolor, użyj odległości Manhattanu wzdłuż elementów czerwonych, zielonych i niebieskich. Na przykład, rgb(10, 180, 90)
jest 20 jednostek od rgb(0, 175, 95)
(kolor 35), ponieważ abs(10 - 0) + abs(180 - 175) + abs(90 - 95) == 20
. Jeśli kolor wejściowy jest równy między dwoma lub więcej kolorami Xterm, wydrukuj kolor Xterm z najwyższym indeksem.
Przykłady
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
Zasady
- Standardowe luki są zabronione
- Twój program lub funkcja może przyjmować wartości rgb w dowolnym rozsądnym formacie, w tym:
- Oddzielne argumenty dla czerwonego, zielonego i niebieskiego
- Lista, krotka, słownik lub podobne
- Ciąg oddzielony separatorem lub standardowe wejście
- Kolory heksadecymalne (np.
#ff8000
)
- Możesz założyć, że wszystkie wartości r, gib będą liczbami całkowitymi od 0 do 255.
- Ponieważ 16 kolorów systemowych ma zostać wykluczonych z mapowania, wszystkie dane wyjściowe powinny mieścić się w zakresie 16 ... 255.
To jest golf golfowy , więc wygrywa najkrótszy kod.
Kotlin ,
299290267265 bajtówUpiększony
Test
TIO
TryItOnline
źródło
Partia, 266 bajtów
źródło
Stax , 41 bajtów
Uruchom i debuguj online!
Wersja ASCII 50 bajtów:
źródło
C (gcc),
202 192 157 150 (141 podsłuch) 138134 bajtyDzięki @ceilingcat
Wypróbuj online!
źródło