Znajdź sposób tworzenia kręgów o danym promieniu za pomocą znaków w konsoli. Podaj nazwę i rozmiar czcionki. Podaj także co najmniej jeden przykład wyniku.
Na przykład:
Wejście:
3
Wynik:
******
** **
** **
* *
** **
** **
******
... Cóż, coś lepszego niż ten „ręcznie rysowany” „okrąg” o promieniu 3.
Pytanie bonusowe: Elipsy. :)
code-challenge
ascii-art
Mateen Ulhaq
źródło
źródło
Odpowiedzi:
JavaScript (360)
http://jsfiddle.net/YssSb/3/ (
f
jest współczynnikiem korygującym stosunek wysokości linii do szerokości czcionki. Jeśli używasz ustawienia czcionki kwadratowej, tj. ustaw wysokość linii = rozmiar czcionki, możesz ustawić f = 1 i uzyskaj okręgi „kwadratowe” lub ustawf
dowolnie dla elips.)Wyjście dla 3 (co ciekawe, przypadkowo dokładnie tego samego kształtu co OP), 5, 15:
źródło
koło Bresenham w Scali (35)
Algorytm Bresenhama ma 2 główne punkty:
Jak to zrobić:
To nie jest kod golfowy, ale wszystkie te liczby na szczycie istniejących rozwiązań sprawiły, że tak pomyślałem, więc spędziłem bezużyteczny czas na grze w golfa. Dlatego też dodałem bezużyteczną liczbę na górze. Zaokrągla się 11 razy Pi.
Pytanie o czcionkę określa serwer witryn i ustawienia przeglądarki. Teraz to szukam
Rozmiar czcionki to 12 pikseli. Dość bezużyteczne informacje, jeśli mnie pytasz, ale kto to robi?
Bonus: elipsy i wyjście próbki:
Wywołanie to
na przykład
Ogranicziłem parametr ratio dla Int, aby było to proste, ale można go łatwo rozszerzyć, aby umożliwić float.
źródło
Python (172)
172 znaki, w tym dwie obowiązkowe nowe znaki. Używa algorytmu Bresenhama dla krzywych stożkowych (bez podziałów i mnożenia); wypisuje tylko koła dla kwadratowych czcionek, ale powinien być zwolniony z efektów schodów ( tzn. zawsze ma tę samą szerokość).
Niezbyt ładna, ale cóż, myślałem, że spróbuję.
Edit : literówka, otrzymuje dodatek z podziałem .
źródło
Perl (92)
Wybrałem „pytanie dodatkowe” i wykorzystałem proporcje postaci do rysowania elips :)
Przykładowe wyniki:
źródło
Haskell (
112109)Działa to poprzez sprawdzenie, czy x² + y² - r² <n dla wszystkich punktów. Wszystkie punkty, dla których jest to prawdą, są gwiazdami, wszystkie pozostałe są pustymi.
Przykłady:
Zobacz tutaj duży przykład: http://www.ideone.com/t042u
źródło
Python, 180 znaków
Ten kod tworzy koła, jeśli czcionka jest kwadratowa. Łatwo jest zmodyfikować, aby wygenerować nominalne elipsy, jeśli znasz swój stosunek wysokości do szerokości czcionki.
Przykłady:
źródło
C, 127 bajtów, nazwa czcionki: Arial Super Bold
Wynik:
źródło