Kurierska recepcja
Program musi zaakceptować dowolny ciąg wejściowy i wyjściowy obraz pikselowy, który pokazuje ciąg wejściowy w Courier. Wszystkie litery zawierające „dziurę” (jak abdegopqABDPQR
itp.) Otoczoną czarnymi pikselami również muszą być wypełnione na czarno.
Wejście
Program musi być w stanie zaakceptować dowolny ciąg ASCII jako dane wejściowe. Dane wejściowe mogą być dowolne, o ile sam kod programu nie musi się zmieniać, aby zaakceptować inne dane wejściowe. (Z wyjątkiem np. Nazwy pliku, który ma zostać odczytany.) Brak standardowych luk. Możesz założyć, że każde wejście zawiera co najmniej jedną literę do wydrukowania.
Wynik
Wyjście musi być czarno-białą (bez szarej) pikselową grafiką, która pokazuje ciąg napisany kurierem (w kolorze czarnym, białe tło), z wypełnionymi określonymi „dziurami”. Rozmiar czcionki całego łańcucha musi być stały (co oznacza, że nie ma innego skalowania dla każdej innej litery), aby litery w pełnym rozmiarze (np. ABCDEFGHIJKLMNOPRSTUVWXYZ
J i Q były większe) muszą mieć co najmniej 10 pikseli wysokości. (Nie musisz zapisywać go do pliku, każdy rodzaj wyświetlania jest w porządku, o ile jest generowany jako pixelgraphics, np. Płótno w JavaScript.) Prześlij tę grafikę z odpowiedzią.
Dostęp do bibliotek czcionek courier.ttf / font jest dozwolony.
Program musi również policzyć liczbę czarnych pikseli i zapisać je na konsoli lub jakiejkolwiek metodzie wyjściowej preferowanej na końcu.
Wynik
Wynik jest oceniany w następujący sposób: Pełny kod programu musi być użyty jako ciąg wejściowy do programu. Liczba czarnych pikseli będzie twoim wynikiem. Kod programu, który zawiera litery niedrukowalne lub inne niż ASCII, jest niedozwolony. (Jak również standardowe luki.) Im niższy wynik, tym lepiej.
Odpowiedzi:
Mathematica, 4864 piksele
Oto zdjęcie:
W Mathematica, gdy piszesz „program”, po prostu piszesz fragment kodu. Oczekuje to, że dane wejściowe zostaną zapisane,
j
a ostatnią rzeczą, którą zwróci, jest obraz i liczba. To także wyrzuca wiele błędów, ponieważ nie sprawdzam granicl
, ale i tak daje pożądany rezultat.gdzie
%
odnosi się do wspomnianego ostatniego wyjścia.Dzięki Geobits za pomysł na algorytm. Wypełniam obraz z lewego górnego rogu niepoprawną intensywnością, a następnie zastępuję wszystkie pozostałe białe piksele czarnymi pikselami, a niepoprawne piksele białymi.
Pamiętaj, że
FreeQ
sprawdzenie nie jest faktycznie konieczne do poprawnego działania programu, ale do zakończenia go w rozsądnym czasie. Gdybym to pominął, zdobyłbym około 300 pikseli mniej.źródło