Awk, 101 + 8 bajtów
101 znaków plus 8 dla -v n=$1
uzyskania liczby całkowitej z powłoki.
'{l="\\ \\";print"__\n"l"\n "l;for(i=1;i<n;++i)print"__"l"\n\\ __\\\n "l}END{print" "l"\n \\/"}'
Nowość w tej witrynie SE, niejasne, czy te parametry powinny się liczyć.
Bez golfa
awk
-v n=$1
'{
l="\\ \\";
print "__\n"l"\n "l;
for(i=1; i<n; ++i)
print "__"l"\n\\ __\\\n "l
}
END
{
print " "l"\n \\/"
}'
Przykład użycia:
lightning() { echo | awk -v n=$1 '{l="\\ \\";print"__\n"l"\n "l;for(i=1;i<n;++i)print"__"l"\n\\ __\\\n "l}END{print" "l"\n \\/"}'; }
lightning 3
__
\ \
\ \
__\ \
\ __\
\ \
__\ \
\ __\
\ \
\ \
\/
tylko przeglądam
źródło
źródło
-v
. Nie wspominając, że cała idea zmiennej jest niepotrzebna, podobnie jak osobnyEND
blok. 89 znaków:{l="\\ \\";print"__\n"l"\n "l;for(;--$1;)print"__"l"\n\\ __\\\n "l;print" "l"\n \\/"}
pastebin.com/NCznF9kHOdpowiedzi:
Python
978278char:To jest mój pierwszy golfowy kod
@ (^ _ ^) @
Przetestuj tutaj
źródło
C,
119108 bajtówPierwsza próba, 150 bajtów
main
przyjmuje argument int, więc uruchom w ten sposób:./lightning . . .
podaj4
jako argument.źródło
Python 3,
126118117 bajtówPo prostu coś na początek.
źródło
[0]*(n-1)
aby uzyskaćn-1
iteracje. Możesz także napisać(n-1)
jako~-n
.i in [0]
nai in[0]
.for i in[0]*~-n:p(' \\ \\\n__\\ \\\n\\ __\\')
.Python 2, 76 bajtów
Wystarczy wydrukować pierwsze trzy linie, a następnie wydrukować kolejne trzy linie
n-1
razy, a następnie wydrukować ostatnie 2 wiersze. Wszystko za jednym razem.A oto fajna próba alternatywy, która (niestety) wykorzystuje dokładnie taką samą liczbę bajtów:
źródło
*
, co daje mi 77 bajtów - lub nie wstawiam go, ale kosztuje 79 bajtów. :(F #, 98 znaków, 105 bajtów
źródło
CJam 54 znaków
nie najkrótszy, ale odkąd zacząłem CJam dzisiaj, jestem z tego zadowolony.
Spróbuj
źródło
Pascal:
149142141137 znakówW końcu jedyną siłą golfową Pascala jest to, że odwrotne ukośniki nie potrzebują ucieczki…
źródło
for n:=2 to n do
działa również.Arkusze Google, 60 bajtów
Anonimowa funkcja arkusza roboczego, która pobiera dane wejściowe z zakresu
[A1]
i dane wyjściowe do komórki wywołującej.źródło
Perl 5 , 58 + 1 (
-n
) = 59 bajtówWypróbuj online!
źródło
SpecBAS -
135104 bajtówApostrof w instrukcjach PRINT przenosi kursor do nowego wiersza.
SpecBAS pozwala na włączenie znaków ASCII do ciągu
#n
, więc wbudowano niektóre znaki powrotu karetki (ASCII 13).Zbudowano ciąg za pomocą znaków powrotu karetki i innych znaków, a następnie
REP$
powtórzono go wymaganą liczbę razy.źródło
PHP 155
Wersja bez golfa
źródło
echo$l=PHP_EOL,"__$l";$g="\\ \\$l";for($i=0;$i<$argv[1];$i++){echo($i?"__$g\\ __\\$l":$g)," $g";}echo" $g",' \\/',$l;
$i=0
; usuń wspornikifor
pętli; zwiększ licznik wewnątrz pętli (echo($i++?"…
).Java,
183180 bajtówLua, 110 bajtów
źródło
Siatkówka , 46 bajtów
Traktuje dane wejściowe jako jednoargumentowe.
Każda linia powinna przejść do własnego pliku i
#
powinna zostać zmieniona na nową linię w plikach. Jest to niepraktyczne, ale możesz uruchomić kod w postaci pliku z-s
flagą, zachowując#
znaczniki. Jeśli chcesz, możesz zmienić te#
znaki wyjściowe na nowe wiersze w celu zwiększenia czytelności. Na przykład:Algorytm jest bardzo prosty. Pary linii (regex - pary zastępcze) wykonują następujące kroki podstawiania:
1
od danych jednostkowych.\ \
części pioruna, aby uzyskać pożądaną moc wyjściową.źródło
PowerShell, 59 bajtów
Skrypt testowy:
Wydajność:
Wyjaśnienie:
Ten skrypt jest tradycyjny
top
+middle
+bottom
. Jest tylko jedna mądra rzecz: przecinek przed środkowym ciągiem wymusza powtórzenie elementu tablicy zamiast ciągu. Dlatego każdymiddle
jest wyświetlany w nowym wierszu.źródło