Biorąc pod uwagę trzy wartości liczbowe - będące elementami koloru czerwonego, zielonego i niebieskiego (osiem bitów na kanał, od 0 do 255) - program musi wypisać nazwę danego koloru.
Na przykład;
Input: 255, 0, 0
Output: Red
lub;
Input: 80, 0, 0
Output: Dark Red
Jest to konkurs popularności, więc niezależnie od odpowiedzi, która uzyska najwięcej głosów do pierwszego lipca, wygrywa.
Inspirowane przez: Pokaż wejściowy kolor RGB
popularity-contest
nieprzyzwoity
źródło
źródło
Odpowiedzi:
Pyton
Jest to skrypt w języku Python, który wykorzystuje wyniki badania kolorów xkcd , w którym Randall Munroe zadał tysiącom ludzi dokładnie to samo pytanie. Dotarł do następującej tabeli:
Ankieta zawiera tylko dane o w pełni nasyconych kolorach (wydaje mi się, że kolory nienasycone zostałyby opisane jako „szarawe”). Oznacza to, że musimy wykonać kilka sztuczek związanych z kolorem, aby zmusić nasz wkład do pełnego nasycenia.
To, co zrobiłem tutaj, to po prostu konwersja koloru wejściowego na HSV, zwiększenie nasycenia i nazwanie go dniem. Prawdopodobnie nie jest to bardzo poprawne z punktu widzenia postrzegania kolorów, ale tutaj działa wystarczająco dobrze - i jest na tyle proste, że potrzebujesz tylko standardowej biblioteki. Akumulatory rzeczywiście włączone.
Skrypt oczekuje, że plik satfaces.txt, stąd ( lustro ), będzie w bieżącym katalogu.
Niektóre przykłady działają:
A oto kolory:
Powiedziałbym, że to całkiem blisko.
źródło
Zaktualizuj za pomocą GUI!
Pobieram listę kolorów z tej strony Wikipedii (i powiązanych stron).
Dołączyłem również trochę NLG, aby uzyskać wyniki, takie jak „bułgarska róża z nieco mniejszą ilością zieleni i niebieskiego” i niektóre jej warianty. Spróbuj zagrać razem, aby dowiedzieć się, czy potrafisz odgadnąć prawdziwą „bułgarską różę”, korzystając z tych informacji zwrotnych. :)
Algorytm spróbuje znaleźć kolor, który jest najbliżej wejścia, zgodnie z odległością euklidesową. Możesz więc wprowadzić dowolną trójkę liczb, a to da kolor najbliższy tej trójce.
(kod akceptuje wartości „rozdzielone przecinkami”, „rozdzielone spacjami” lub „rozdzielone przecinkami”)
Ostrzeżenie
Ten kod łączy się z Wikipedią, więc wymaga połączenia z Internetem, aby uruchomić się za pierwszym razem (i zapisać informacje w pliku w tym samym słowniku). Jednak kolejne czasy będą czytać z pliku. Jeśli chcesz mieć wersję offline, kod jest dostępny pod tym linkiem Ideone (z próbnym uruchomieniem).
Kod:
źródło
slightly more
nawith a hint of
islightly less
nasubdued
.JavaScript
Z myślą o użytkownikach psów napisano następującą funkcję:
Dla bardziej wyrafinowanych psów:
źródło
else whimper();
- uwielbiamJavaScript
źródło
Matematyka
Aktualizacja: Dodano parametr do ustawiania liczby najbliższych kolorów do wyświetlenia. Domyślnie jest to 5 kolorów.
Biorąc pod uwagę wartości RGB koloru bez nazwy, poniżej znajduje się
n
najbliższe kolory z listy 140 nazw kolorów HTML. Następnie drukuje nienazwany kolor i 5 najbliższych sąsiadów na 3-przestrzeni, z osiami dla koloru czerwonego, zielonego i niebieskiego. W etykiecie wydruku podaje nazwę najbliższego koloru i podaje jego wartości RGB.Przykłady
Wyświetl 5 najbliższych kolorów:
Wyświetl 15 najbliższych kolorów:
źródło
CJam
To pobiera listę kolorów z xkcd i znajduje najbliższy.
Uwaga: wyglądający na spację napis na środku to tak naprawdę jedna zakładka.
Aby go uruchomić, użyj interpretera z http://sf.net/p/cjam
Przykład:
Dane
147 125 0
wyjściowe
baby poop
źródło
R
R ma osadzoną listę 657 nazw kolorów do celów drukowania. Poniższy kod pobiera dane wejściowe od użytkownika i oblicza odległość między tym wejściem rgb a wartością rgb tych 657 kolorów i wyświetla nazwę najbliższego.
Nie golfowany:
Przykłady:
Edycja: Ten sam pomysł, ale przy użyciu listy nazw z colorHexa :
Przykład:
źródło
readline
nie czytał następującego wiersza kodu, tak jakby był standardem w trybie interaktywnym. Użyłem słowa „bez golfa”, aby powiedzieć „wcięte, z podziałem wiersza i komentarzem”. Gdybym tak naprawdę grał w golfa, nie użyłbymcolor_list
nazwy zmiennej.Perl
Oczekuje
http://xkcd.com/color/rgb.txt
w bieżącym katalogu. Wyświetla pięć najbliższych kolorów z dobrym procentem.Przykładowy przebieg
Kod
źródło
Scala
Moja próba - funkcja zabójcy polega na tym, że nie wymaga połączenia z Internetem! (Mam nadzieję, że nie będzie za długo: D) Przywołałem Chtulhu podczas przygotowywania bazy danych kolorów (ponieważ parsowałem podzbiór HTML z regex; regex i link do źródła są w komentarzach)
Edycja: poprawiona dokładność
Przykład uruchomienia: http://ideone.com/e3n0dG
źródło
Cóż, skoro już go leżałem , oto Cel C:
źródło
Pharo Smalltalk
Umieść to w przestrzeni roboczej Pharo i wydrukuj .
Wyniki są mieszanej jakości. Wszystkie ciemniejsze kolory są nazywane szarymi , ciemnoszarymi lub bardzo ciemnoszarymi . Prawdopodobnie
Color
jestdiff:
metoda może być lepiej.Dla bardzo prosty wizualizacji zrobić :
źródło
Makro SAS, oparte na (raczej osobliwych) nazwach kolorów SAS V8, jak udokumentowano tutaj: https://v8doc.sas.com/sashtml/gref/zgscheme.htm#zrs-hues
Przykładowe dane wejściowe:
Przykładowe dane wyjściowe:
EDYCJA: Zaktualizowana o znacznie bardziej kompaktową wersję.
Wersja XKCD - rażące oderwanie się od najlepszej odpowiedzi, ale to ładna mała wersja demonstracyjna silnika URL z nazwą pliku i nie wymaga ręcznego przygotowania pliku CSV:
źródło
Rozwiązanie AC # z Linq i FamousColors z .NET
źródło
Tcl
Odnosi się to do kolorów X11 z
rgb.txt
. Na moim Ubuntu jest,/etc/X11/rgb.txt
choć wiem, że na niektórych systemach jest/usr/lib/X11/rgb.txt
. Googlergb.txt
i pobierz go, jeśli nie korzystasz z X11.Przekaż kod koloru jako argument wiersza poleceń.
źródło
Python 2.6
Z interfejsem użytkownika:
Zaciemniony (8,397 bajtów):
Nie zaciemnione (6 898 bajtów):
Bez interfejsu użytkownika:
Zaciemnione (6543 bajty):
Nie zaciemnione (5050 bajtów):
źródło
JavaScript
https://jsfiddle.net/SuperJedi224/goxyhm7a/
Niektóre przykładowe wyniki [na dzień 31 lipca] (wymienione kolory to, w kolejności, ten, który określa jako najbliższy, i ten, który określa jako drugi najbliższy; z wyjątkiem przypadków, gdy podano tylko jeden, w którym to przypadku określono jako dokładne dopasowanie):
Jasny granatowy / Stalowy niebieski
Brązowy / Tan Żółty Pomarańczowy
Topaz / Gruszka
Slime Green / Olive Green
Viridian / Emerald
źródło
VB.net
źródło