Napisz program lub funkcję, która rysuje gwiazdę ASCII, biorąc pod uwagę wielkość ramion jako danych wejściowych.
Oto gwiazda wielkości 1
_/\_
\ /
|/\|
Oto gwiazda wielkości 2
/\
__/ \__
\ /
\ /
| /\ |
|/ \|
Oto gwiazda wielkości 3
/\
/ \
___/ \___
\ /
\ /
\ /
| /\ |
| / \ |
|/ \|
I tak dalej.
Wejście
Pojedyncza dodatnia w dowolnym, wygodnym formacie , n > 0
.
Wynik
Reprezentacja gwiazdy w stylu ASCII, zgodnie z powyższymi zasadami. Wiodące / końcowe znaki nowej linii lub inne białe znaki są opcjonalne, pod warunkiem, że punkty odpowiednio się wyrównają.
Zasady
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
Odpowiedzi:
Węgiel drzewny ,
2017 bajtów-3 bajty dzięki Neilowi.
Wypróbuj online! Link jest do pełnej wersji.
Jestem całkiem zadowolony z tego golfa, więc ...
Wyjaśnienie
źródło
Polygon
... Czy robię coś złego?Polygon
pozostawia kursor na ostatnim znaku, ale nie użyłemPolygon
... w rzeczywistości nie użyłem też najlepszego kodu, mam teraz 17 lat.Move(:Right); for (n) Print("_");
.SOGL V0.12 ,
2724 bajtówWypróbuj tutaj!
Wyjaśnienie:
źródło
Python 2 ,
166 160 157 155152 bajtówexec
Podejście jest dokładnie taka sama liczba bajtów.Wypróbuj online!
Zaoszczędź 3 bajty dzięki Jonathanowi Frechowi .
źródło
t=" ";y,z=t*2,"\\"
jet,z=" \\";y=t+t
.Java 8,
385376344304285280268264252250+ 19bajtówWypróbuj online!
źródło
int o=
zewnętrzną pętlę ( 268 bajtów )++
bezpośrednio przy ostatnim wystąpieniui
, na przykład: 264 bajtów .Mathematica, 189 bajtów
Linia 2 definiuje operatora pomocnika
±
, który służy do oceny linii 4 w celu:W linii 3
ReplaceAll
(/.
) pobiera macierz reprezentującą gwiazdę wielkości 1, a także powyższą listę reguł. Do ostatnich kroków używamyArrayFlatten
, który jest krótszy niżSubstitutionSystem
, iStringRiffle
.źródło
Java 7, 295 bajtów
Rozwiązanie to metoda
f
.Wypróbuj online (JDK 8)
Nie golfił
Podziękowanie
źródło
x
o 1 od samego początku:<T>String s(T s,int n){return"".format("%"+-~n+"s",s);}String f(int x){String n="\n",s="/",b="\\",o="",u="_";int i=0;for(x--;i<x;u+="_")o+=s(s,2*x-i+1)+s(b,2*i++)+n;o+=u+s+s(b,2*i++)+u+n;for(;i-->0;)o+=s(b,x-i)+s(s,4*x-2*(x+~i))+n;for(;++i<=x;)o+=s("|",x)+s(s,x-i)+s(b,2*i)+s("|",x-i)+n;return o;}
Python 2 , 137 bajtów
Wypróbuj online!
źródło