Tantangan
Diberikan gambar Bulan sebagai input, output fase Bulan.
Fase Bulan
Program Anda akan diberikan salah satu gambar ini dalam format png dan Anda harus menampilkan fase persis seperti yang diberikan:
new moon
waxing crescent
first quarter
waxing gibbous
full moon
waning gibbous
third quarter
waning crescent
Memasukkan
Input akan menjadi path ke file 240 px x 240 px png dan akan menjadi salah satu gambar di atas.
Bytes gambar dijamin sama.
Kemenangan
Kode terpendek menang
code-golf
image-processing
Peluruhan Beta
sumber
sumber
Jawaban:
Node.js , 145 byte
Cobalah online! (menghasilkan file dummy dengan ukuran yang sama)
Bagaimana?
Kami hanya melihat ukuran file dan mengubahnya menjadi indeks dalam dua tabel pencarian.
Bagian pertama:
Bagian kedua:
sumber
Python 2 ,
223222 byte-1 byte berkat OMᗺ
getpixel((x,y))
- akan mengembalikan piksel RGBA dix,y
getpixel((n*48,99))[2]for n in[1,2,3,4]
- akan mengembalikan saluran biru garis tengah, di manan*48 ... for n in 1,2,3,4
akan ada 4 titik di mana sinar matahari dapat menutupin*getpixel(...)
- akan menghasilkan nilai yang berbeda untuk setiap kolomsum(...)%13
- nilai-nilai ini ditambahkan bersama-sama dan%13
digunakan untuk mendapatkan keunikan nilai untuk setiap fase, yang akan digunakan sebagai indeks untuk daftar fase. Pixel kira-kira ada di dalam lingkaran merah:
sumber
Ruby, 131 byte
Byte offset ditemukan oleh brute force - mengambil byte 699 dari file modulo 7, misalnya, memberikan indeks ke dalam tabel pencarian pertama.
sumber
Python 2 ,
196165 byteCobalah online!
sumber
PHP (> = 5.4),
199197 byte(-2 bytes dengan lebih banyak bermain golf)
Untuk menjalankannya:
Contoh:
Catatan:
-d error_reporting=0
opsi digunakan untuk pemberitahuan tidak keluaran / peringatan.-d short_open_tag=1
diperlukan untuk memungkinkan tag singkat.https
URL seperti contoh di atas, OpenSSL juga harus diaktifkan.Bagaimana?
Dapatkan ukuran file (byte) dan buat nomor unik untuknya dengan rumus ini:
((<first_bytes_digit> + <fourth_bytes_digit>) % 11) - 2
Rumus ini menghasilkan angka dari 0 hingga 8 dengan hanya 3 yang hilang.
Pendekatan sebelumnya:
PHP (> = 5.4), 251 byte
Untuk menjalankannya:
Contoh:
Catatan:
-d error_reporting=0
opsi digunakan untuk pemberitahuan tidak keluaran / peringatan.-d short_open_tag=1
diperlukan untuk memungkinkan tag singkat.https
URL seperti contoh di atas, OpenSSL juga harus diaktifkan.Bagaimana?
Cek untuk warna 4 piksel dalam gambar di
40,120
,80,120
,160,120
dan200,120
dan memutuskan pada fase bulan dari warna-warna.sumber