Wyzwanie
Biorąc pod uwagę obraz Księżyca jako dane wejściowe, wysyłaj fazę Księżyca.
Fazy księżyca
Twój program otrzyma jeden z tych obrazów w formacie png i musisz wyprowadzić fazę dokładnie tak, jak podano:
new moon
waxing crescent
first quarter
waxing gibbous
full moon
waning gibbous
third quarter
waning crescent
Wejście
Dane wejściowe będą ścieżką do pliku png o wymiarach 240 na 240 pikseli i będzie to jeden z powyższych obrazów.
Gwarantujemy, że bajty obrazu są takie same.
Zwycięski
Najkrótszy kod wygrywa
code-golf
image-processing
Rozpad beta
źródło
źródło
Odpowiedzi:
Node.js , 145 bajtów
Wypróbuj online! (generuje fikcyjne pliki o tych samych rozmiarach)
W jaki sposób?
Po prostu patrzymy na rozmiar pliku i konwertujemy go na indeksy w dwóch tabelach odnośników.
Pierwsza część:
Druga część:
źródło
Python 2 ,
223222 bajtów-1 bajt dzięki OMᗺ
getpixel((x,y))
- zwróci piksel RGBA wx,y
getpixel((n*48,99))[2]for n in[1,2,3,4]
- zwróci niebieski kanał środkowej linii, gdzien*48 ... for n in 1,2,3,4
będą 4 punkty, w których światło słoneczne może zasłonićn*getpixel(...)
- wygeneruje inną wartość dla każdej kolumnysum(...)%13
- te wartości są sumowane i%13
są używane do uzyskania unikalnego wartość dla każdej fazy, która będzie używana jako indeks dla listy faz. Piksele znajdują się w przybliżeniu wewnątrz czerwonych kółek:
źródło
Rubin, 131 bajtów
Przesunięcia bajtów znalezione przez brutalną siłę - na przykład biorąc 699 bajt pliku modulo 7, daje indeks do pierwszej tabeli odnośników.
źródło
Python 2 ,
196165 bajtówWypróbuj online!
źródło
PHP (> = 5,4),
199197 bajtów(-2 bajty przez więcej golfa)
Aby uruchomić:
Przykład:
Uwagi:
-d error_reporting=0
Opcja nie służy do wyjścia zawiadomień / ostrzeżenia.-d short_open_tag=1
to wymagane, aby umożliwić krótkie tagi.https
adresu URL takiego jak w powyższym przykładzie, należy również włączyć OpenSSL .W jaki sposób?
Pobiera rozmiar pliku (bajty) i tworzy dla niego unikalny numer według tej formuły:
((<first_bytes_digit> + <fourth_bytes_digit>) % 11) - 2
Ta formuła generuje liczby od 0 do 8, brakuje tylko 3.
Poprzednie podejścia:
PHP (> = 5,4), 251 bajtów
Aby uruchomić:
Przykład:
Uwagi:
-d error_reporting=0
Opcja nie służy do wyjścia zawiadomień / ostrzeżenia.-d short_open_tag=1
to wymagane, aby umożliwić krótkie tagi.https
adresu URL takiego jak w powyższym przykładzie, należy również włączyć OpenSSL .W jaki sposób?
Sprawdza koloru 4 piksele w obrazie w
40,120
,80,120
,160,120
i200,120
oraz decyduje o fazy księżyca z tych kolorów.źródło