Utwórz funkcję, która przy danej liczbie wierszy n
tworzy bigA
.
- Poziomy pasek
bigA
musi znajdować się w środkowym rzędzie lub niższym z dwóch, jeślin
jest parzysty - Załóż wyjściową czcionkę monospace
Dane wyjściowe powinny być ciągiem znaków (lub podobnym, np. Tablicą znaków) z wyraźnymi podziałami linii, aby rozbić linie, oraz z prawidłową spacją dla marginesów po lewej stronie (możesz założyć, że \ t to 4 spacje). Po prawej stronie może znajdować się dowolna biała spacja.
Przykłady
n = 1
A
n = 2
A
AAA
n = 3
A
AAA
A A
n = 4
A
A A
AAAAA
A A
n = 5
A
A A
AAAAA
A A
A A
Jest to inspirowane przez Utwórz literę „H” z mniejszych liter „H”
Odpowiedzi:
05AB1E , 13 bajtów
Kod:
Wykorzystuje kodowanie 05AB1E . Wypróbuj online!
Wyjaśnienie:
Brezentowy
Powinienem chyba trochę więcej dokumentować płótno (i wiele innych funkcji), ale to w zasadzie podsumowuje. Kanwa ma różne „tryby” w zależności od podanych typów parametrów. Polecenie canvas ma trzy parametry: <długość> <ciąg> <kierunek> .
Ponieważ parametry długości i kierunku są listami, „zamyka” te listy, aby utworzyć zestaw instrukcji do wykonania. Parametr ciągu to tylko litera A , więc jest to znak wypełnienia używany przez wszystkie instrukcje. Kanwa interpretuje to jako następujący zestaw instrukcji (dla danych wejściowych 7):
Wskazówki są tłumaczone w następujący sposób:
Jeśli nic nie zostało wyprowadzone, 05AB1E automatycznie wysyła wynik płótna.
źródło
Węgiel drzewny ,
1715 bajtówWypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Wejście
n
.Wydrukuj poziomy pasek dużego
A
. (W przypadku liczb parzystychn+1
th i tak zachodzi na prawą stronę.)Przejdź na szczyt dużej
A
.Wydrukuj obie strony dużego
A
.źródło
Python 2 , 80 bajtów
Wypróbuj online!
Podziel pożądany wynik na lewą białą spację, lewą
A
plus środkową białą spację lubA
s i prawąA
. Oblicz środkową część za pomocą krojenia na stałym sznurku. Pozwala to użyć tego samego sposobu do wygenerowania pierwszej linii.źródło
Stax , 15 bajtów
Uruchom i debuguj
Program po rozpakowaniu, niepolowaniu i komentowaniu wygląda tak.
Uruchom ten
źródło
JavaScript (ES6), 77 bajtów
Ten kod źródłowy ma kształt prostokąta ! Och czekaj ... złe wyzwanie: - /
Wypróbuj online!
źródło
Python 3.6 , 79 bajtów lub 73 bajty
Używanie ciągów F do wyrównywania poziomych części litery:
Z
\b
służy do usuwania jednegoA
(ewentualnie oszustwo):źródło
Java (JDK 10) , 124 bajty
Wypróbuj online!
źródło
J , 65 bajtów
Wypróbuj online!
Można go zmniejszyć o ok. 12 bajtów, po prostu czyniąc czasownik milczącym, ale mam problemy z tym.
Wyjaśnienie:
3 : '...'
oznacza jednoznaczny czasownik jednowierszowyy
jest argumentem=/~@i.
tworzy macierz tożsamości z rozmiarem argumentu([:(}:@|."1,.])
wstawia macierz tożsamości z kopią lustrzaną, porzucając ostatnie elementy każdego rzędu.1(...)}(...)
zmienia na 1 pozycje w prawym argumencie, wybrane przez lewy([:(<@;]+i.@+:)<.@-:)
- przygotowuje wybór, wykonując następujące czynności:' A'{~
renderuje spację w miejscach 0 i „A”, gdzie jest 1źródło
Płótno ,
1713 bajtówWypróbuj tutaj!
-4 bajty dzięki dzaima !
źródło
Rubin , 66 bajtów
Wypróbuj online!
Zwraca jako tablica linii
źródło
SOGL V0.12 , 12 bajtów
Wypróbuj tutaj!
Wyjaśnienie:
źródło
Japt
-R
,2019 bajtówSpróbuj
Wyjaśnienie
Alternatywny
(Mam nadzieję, że może mi to pomóc w znalezieniu oszczędności!)
źródło
ç h'AUz)¬íp ®i'A êÃû
p
ze²
i to również 19 bajtów.Rubinowy , 73 bajty
Wypróbuj online!
źródło
Galaretka ,
23201918 bajtówWypróbuj online!
=þ`
tworzy matrycę tożsamości wielkościn
.L‘HĊƲ
znajduje indeks wiersza poziomego paska z¦
wybraniem tego wiersza i zastosowaniemo\
go do tego, który tworzy pasek.U
odwraca każdy wiersz, więc nie mamy odwróconego „A” iŒB
(palindromize; wektoryzacja) tworzy drugą połowę „A”.ị⁾A
(ze spacją, która jest przycinana w formatowaniu) zastępuje0
s spacjami is1
sA
s.źródło
T-SQL ,
182177 bajtówPierwsza wersja (z 182 bajtami):
Powyższa wersja działa do @ n = 9.
Oto kolejna wersja, która działa do @ n = 23, ale ma 2 dodatkowe bajty:
Nie golfowany:
źródło
Haskell ,
989795 bajtów i 109 bajtówDwa bardzo różne podejścia. Pierwszy (95 bajtów):
i drugi (109 bajtów):
Wypróbuj je tutaj!;Wypróbuj zmodyfikowaną wersję tutaj!Wypróbuj trzecią wersję tutaj!
źródło
l
jako operator infix .m True='A'
zostać skróconym dom b|b='A'
.Python 2 , 70 bajtów lub 65 bajtów
Lista ciągów jest akceptowalnym wynikiem, jak @Budd stwierdził w komentarzach.
Wypróbuj online!
Pozornie oszukańcze rozwiązanie, za pomocą
\b
. Wygląda funky w TIO, w konsoli robi to samo.Wypróbuj online!
źródło
JavaScript, 124 bajty
Dość naiwne rozwiązanie dało szansę na ćwiczenie umiejętności js.
for(i=-1,p=" ".repeat(n-1)+"A ";++i<n;console.log(i-~~(n/2)?p:p.slice(0,i)+"A".repeat(n)),p=p.slice(1,n)+" "+p.slice(n-1)){}
Rozpakowane
źródło
Perl 5
-n
, 57 bajtówWypróbuj online!
źródło
Python 3 ,
93, 88 bajtówWypróbuj online!
-3 przez @ovs za pomocą f-string
źródło