Wyzwanie polega na wygenerowaniu obrazu podobnego do logo StackOverflow:
Dane wyjściowe muszą zawierać:
- Rozmiar obrazu 64 * 64 lub większy
- Szary | __ | podstawa w kształcie
- Zakrzywiony segmentowy stos wychodzący z podstawy. Segmenty wyblakną z szarego na pomarańczowy i wykonają obrót w prawo o ~ 90 stopni. Liczba segmentów powinna wynosić od 5 do 7, przy czym preferowane jest 6.
Uwaga: W przypadku wyświetlaczy ascii, które nie mają koloru, użyj znaku „0”, aby przedstawić kolor szary, a „9” dla koloru pomarańczowego. Od „1” do „8” reprezentują odcienie pomiędzy nimi.
Ograniczenia:
- Musisz wygenerować obraz. Ładowanie zdjęć lub przechowywanie ich w kodzie / pliku binarnym jest niedozwolone.
Dodatkowe zasady / informacje:
- Obraz nie musi być identyczny z logo, jednak musi być rozpoznawalny jako taki.
- Sposób wyświetlania zależy od Ciebie. Dopuszczalne jest zapisanie go w pliku obrazu lub wyświetlenie na ekranie.
Kryteria oceny / wygranej:
- Dokładność obrazu jest podstawowym warunkiem
- Elegancja generacji jest warunkiem wtórnym
Odpowiedzi:
Matematyka
Postanowiłem uściślić moją odpowiedź, gdy zdałem sobie sprawę, że to nie jest golf golfowy. Ups!
Zrzut ekranu:
W powiązanych wiadomościach stworzyłem również, jak myślę, logo Stack Overflow może wyglądać w ... PRZYSZŁOŚCI :
Oto kod, jeśli ktoś chce się nim bawić (przepraszam za bałagan):
źródło
Out[404]
JavaScript (650)
Napisałem quine, która odczytuje znaki w funkcji i zastępuje znaki spacjami liczbą od 0-9.
To wyświetla tę grafikę ASCII:
które można pokolorować za pomocą arkusza stylów css, jeśli chcesz
Możesz to zobaczyć w akcji na jsBin .
Oto zrzut ekranu, na wypadek gdyby link umarł:
źródło
SVG (347 znaków)
Na podstawie wersji Sir_Lagsalot , z obrysami zamiast wypełnień. Oprócz golenia kilku znaków, kod jest prostszy, a wynik wygląda lepiej skalowany.
Link do obrazu SVG .
Renderowane do PNG (w naturalnym rozmiarze i powiększone x2 i x3):
Edycja: W końcu zająłem się naprawą błędu off-by-one, który powodował, że boki pudełka nie były wyrównane. Poprawiono także nieco grubość linii i umieszczenie punktu końcowego oraz dodano wyraźną szerokość i wysokość, aby uniknąć zbyt wąskiego przycięcia dolnej i prawej krawędzi. Wygląda teraz znacznie bliżej oficjalnego logo.
źródło
Haskell z połyskiem
Wklej kod tutaj, aby zobaczyć go w akcji , lub dodaj następujący wiersz, aby go skompilować (wymaga Połysku ).
źródło
SVG (333 znaki)
Stworzyłem obraz SVG, który generuje wersję logo 67x68 w 333 znakach:
Link do małego obrazu SVG
Link do dużego obrazu SVG
źródło
Lateks
Korzystanie z pakietów TikZ i PGF.
źródło
CSS + JavaScript (oparty na div Div)
Przykładowy przebieg: http://jsfiddle.net/ryzBx/
Przykładowe renderowanie (Firefox 14):
źródło
JavaScript (
dużo814 znaków)Nie jest ładny, ale wygląda trochę jak logo SO. Przetestuj skrzypce tutaj - http://jsfiddle.net/elssar/jcYtg/2/
źródło
C # / GDI +
Byłem zaskoczony, gdy zauważyłem, że nie ma tutaj odpowiedzi w języku C #. Oto jeden. To nie jest genialny sposób na narysowanie logo i nie jest też krótkim rozwiązaniem. Ale dostaje wymaganą wydajność.
Możesz sprawdzić mój post na blogu, aby pobrać pełne działające rozwiązanie → http://guganeshan.com/blog/stackoverflow-logo-using-csharp-and-gdi.html
źródło
Wiem, że jestem bardzo późno do gry tutaj, ale byłem zaskoczony, nikt nie zrobił tego w wersji CSS. To zdecydowanie nie jest konkurencyjna odpowiedź, jeśli chodzi o liczbę znaków (1195), ale końcowy produkt jest dość dokładny.
Napisane w Safari (9.0) i przetestowane w Chrome (45.0.2454.93) i Firefox (40.0.3).
źródło
PHP w / GD
Przykład:
źródło
$a = 'imagecolorallocate';$r = 'imagefilledrectangle'; $p = 'imagefilledpolygon';
co pozwala na znaczne zmniejszenie kod:$p(...);$p(...);...
.JavaScript + jQuery i SVG - 250
Wziąłem SVG Ilmari Karonen i użyłem JavaScript, aby zastąpić
$
s><path stroke="
efektywnym skracaniem go nawet przy narzutach JavaScript.źródło
R
Nie jest to najładniejsze rozwiązanie, ale zwraca żądane dane wyjściowe.
źródło
Scala
źródło
JavaScript
źródło