Diberikan tiga nilai angka - menjadi elemen Merah, Hijau, dan Biru suatu warna (delapan bit per saluran, 0 hingga 255) - program Anda harus menampilkan nama warna yang diberikan.
Sebagai contoh;
Input: 255, 0, 0
Output: Red
atau;
Input: 80, 0, 0
Output: Dark Red
Ini adalah kontes popularitas, jadi jawaban mana yang memiliki suara terbanyak pada kemenangan pertama bulan Juli.
Terinspirasi oleh: Tampilkan warna RGB input
popularity-contest
hapus clemeat
sumber
sumber
Jawaban:
Python
Ini adalah skrip Python yang menggunakan hasil dari xkcd's Color Survey , di mana Randall Munroe bertanya kepada ribuan orang pertanyaan yang sama persis. Dia tiba di bagan berikut:
Survei hanya memiliki data tentang warna-warna jenuh penuh (saya kira warna-warna tidak jenuh semua akan digambarkan sebagai 'keabu-abuan'). Ini berarti kita harus melakukan beberapa trik terkait warna untuk memaksa input kita menjadi jenuh penuh.
Apa yang saya lakukan di sini adalah hanya mengubah warna input ke HSV, menghidupkan saturasi, dan menyebutnya sehari. Ini mungkin tidak terlalu benar dari sudut pandang persepsi warna, tetapi ini bekerja cukup baik di sini - dan cukup sederhana bahwa Anda hanya perlu perpustakaan standar. Baterai memang disertakan.
Script mengharapkan satfaces.txt, dari sini ( mirror ), berada di direktori saat ini.
Beberapa contoh berjalan:
Dan inilah warnanya:
Saya akan mengatakan itu cukup dekat.
sumber
Perbarui dengan GUI!
Saya mengambil daftar warna dari halaman Wikipedia ini (dan halaman terkait).
Saya juga memasukkan beberapa NLG untuk menghasilkan hasil seperti "Bulgarian Rose dengan sedikit lebih sedikit hijau dan biru" dan beberapa varian. Cobalah bermain bersama untuk melihat apakah Anda dapat menebak "Bulgarian Rose" yang sebenarnya menggunakan umpan balik tersebut. :)
Algoritma akan mencoba untuk menemukan warna yang paling dekat dengan input, seperti yang didefinisikan oleh jarak Euclidean. Jadi, Anda dapat memasukkan nomor triplet apa saja dan itu akan memberikan warna yang paling dekat dengan triplet itu.
(kode menerima nilai "dipisahkan oleh koma", "dipisahkan spasi", atau "dipisahkan koma")
Peringatan
Kode ini terhubung ke Wikipedia, dan karenanya memerlukan koneksi Internet untuk menjalankan pertama kali (dan menulis informasi dalam file dalam kamus yang sama). Namun, waktu-waktu berikutnya akan membaca dari file. Jika Anda menginginkan versi offline, kode tersedia di tautan Ideone ini (dengan sampel dijalankan).
Kode:
sumber
slightly more
kewith a hint of
danslightly less
kesubdued
.JavaScript
Fungsi berikut ditulis dengan mengingat pengguna anjing:
Untuk anjing yang lebih halus di luar sana:
sumber
else whimper();
- love itJavascript
sumber
Mathematica
Pembaruan: Menambahkan parameter untuk mengatur jumlah warna terdekat untuk ditampilkan. Standarnya adalah 5 warna.
Dengan nilai-nilai RGB dari warna yang tidak disebutkan namanya, yang berikut ini menemukan
n
warna terdekat dari daftar 140 nama warna HTML. Kemudian plot warna yang tidak disebutkan namanya dan 5 tetangga terdekat dalam 3-ruang, dengan sumbu untuk Merah, Hijau, dan Biru. Dalam label plot ia memberi nama warna terdekat dan memberikan nilai RGB-nya.Contohnya
Tampilkan 5 warna terdekat:
Tampilkan 15 warna terdekat:
sumber
CJam
Ini mendapatkan daftar warna dari xkcd dan menemukan yang terdekat.
Catatan: string yang tampak seperti ruang di tengah sebenarnya adalah satu tab.
Untuk menjalankannya, silakan gunakan penerjemah dari http://sf.net/p/cjam
Contoh:
Input
147 125 0
Output
baby poop
sumber
R
R memiliki daftar 657 nama warna yang tertanam untuk keperluan merencanakan. Kode berikut mengambil input dari pengguna, dan menghitung jarak antara input rgb ini dan nilai rgb dari 657 warna tersebut dan menampilkan nama yang terdekat.
Tidak Disatukan:
Contoh:
Sunting: Ide yang sama tetapi menggunakan daftar nama dari colorHexa :
Contoh:
sumber
readline
tidak membaca baris kode berikut seolah-olah itu stdin dalam mode interaktif. Saya menggunakan kata "ungolfed" untuk mengatakan "indentasi, dengan jeda baris dan komentar". Jika saya benar-benar bermain golf saya tidak akan menggunakancolor_list
nama variabel.Perl
Diharapkan
http://xkcd.com/color/rgb.txt
dalam direktori saat ini. Menampilkan lima warna terdekat dengan persentase yang bagus.Contoh dijalankan
Kode
sumber
Scala
Usaha saya - fitur pembunuh adalah tidak memerlukan koneksi internet! (Saya harap ini tidak terlalu lama: D) Juga, saya memanggil Chtulhu sambil menyiapkan basis data warna (karena saya mem-parsing subset HTML dengan regex; regex dan tautan ke sumber ada di komentar)
Sunting: peningkatan akurasi
Contoh dijalankan: http://ideone.com/e3n0dG
sumber
Nah, karena saya sudah meletakkannya , ini dia di Objective-C:
sumber
Pharo Smalltalk
Letakkan ini di Pharo Workspace dan cetak .
Hasilnya adalah kualitas campuran. Semua warna yang lebih gelap dinamai abu - abu , abu-abu gelap atau abu-abu yang sangat gelap . Mungkin
Color
'sdiff:
metode bisa lebih baik.Untuk visualisasi yang sangat sederhana, lakukan :
sumber
SAS makro, berdasarkan pada nama warna SAS V8 (agak aneh) seperti yang didokumentasikan di sini: https://v8doc.sas.com/sashtml/gref/zgscheme.htm#zrs-hues
Input sampel:
Output sampel:
EDIT: Diperbarui dengan versi yang jauh lebih ringkas.
Versi XKCD - jawaban terang-terangan dari jawaban teratas, tetapi ini adalah demo kecil yang bagus dari mesin URL nama file, dan tidak memerlukan persiapan CSV secara manual:
sumber
AC # Solusi dengan Linq dan
sumber
Tcl
Ini referensi X11 warna dari
rgb.txt
. Di Ubuntu saya ada di/etc/X11/rgb.txt
meskipun saya tahu pada beberapa sistem di dalamnya/usr/lib/X11/rgb.txt
. Googlergb.txt
dan unduh jika Anda tidak menjalankan X11.Lewatkan kode warna sebagai argumen baris perintah.
sumber
Python 2.6
Dengan UI:
Dikacaukan (8.397 byte):
Tidak dikaburkan (6,898 bytes):
Tanpa UI:
Dikacaukan (6.543 byte):
Tidak dikaburkan (5.050 byte):
sumber
Javascript
https://jsfiddle.net/SuperJedi224/goxyhm7a/
Beberapa hasil sampel [per 31 Juli] (warna yang tercantum adalah, secara berurutan, yang ditentukan sebagai yang terdekat dan yang ditentukan sebagai yang terdekat kedua; kecuali jika hanya satu yang diberikan, dalam hal ini ditentukan sebagai benar-benar cocok):
Biru Terang Biru / Biru Baja
Bronze / Tan Yellow Orange
Topaz / Pear
Slime Green / Olive Green
Viridian / Emerald
sumber
VB.net
sumber