Problem
Podano dodatnią liczbę całkowitą n
gdzien < 100
Wygeneruj wzór diamentu w następujący sposób:
Wkład n=1
/\/\
\/\/
Wejście n=2
:
/\ /\
//\\/\/\//\\
\\//\/\/\\//
\/ \/
Wejście n=3
:
/\ /\
//\\ /\ /\ //\\
///\\\//\\/\/\//\\///\\\
\\\///\\//\/\/\\//\\\///
\\// \/ \/ \\//
\/ \/
Wejście n=4
:
/\ /\
//\\ /\ /\ //\\
///\\\ //\\ /\ /\ //\\ ///\\\
////\\\\///\\\//\\/\/\//\\///\\\////\\\\
\\\\////\\\///\\//\/\/\\//\\\///\\\\////
\\\/// \\// \/ \/ \\// \\\///
\\// \/ \/ \\//
\/ \/
I tak dalej.
Zasady
- Program i funkcja dozwolone.
- Dozwolone końcowe znaki odstępu.
- Wiodące białe znaki na liniach bez
/
lub\
dozwolone. - Dozwolone końcowe i wiodące znaki nowej linii.
- Najkrótszy kod w bajtach wygrywa
Odpowiedzi:
SOGL V0.12 , 24 bajty
Wypróbuj tutaj!
Wyjaśnienie:
źródło
╬
to chore polecenie.╬
lolWęgiel drzewny ,
3027 bajtówWypróbuj online! Link jest do pełnej wersji kodu. Objaśnienie: Prymitywy rysunkowe Węgla drzewnego nie mogą narysować diamentu, ponieważ ruchy diagonalne pozostają na kwadratach o tej samej parzystości. Edycja: Nowym rozwiązaniem jest narysowanie jednej strony diamentu, a następnie obrócenie całego płótna w celu narysowania następnej strony, umożliwiając narysowanie diamentu w pętli. Ta pętla jest następnie zawarta w pętli, aby narysować wszystkie wewnętrzne diamenty dla każdego diamentu. Najbardziej zewnętrzna pętla przyciąga wszystkie diamenty sąsiadujące ze sobą. Wreszcie obraz jest dublowany.
Zauważ, że od tego czasu węgiel drzewny został rozszerzony i można zapisać kolejny bajt za pomocą
Increment
.źródło
APL (Dyalog) ,
706966 bajtówWypróbuj online!
Zakłada się
⎕IO←0
, co jest standardem w wielu systemach, więc program ma indeks 0.Jest to tradfn, który pobiera dane wejściowe przez STDIN.
Wyjaśnienie
(nieco przestarzały)
Zauważ, że
⍺
jest to lewy argument,⍵
prawy argument i⍺⍺
lewy operator.B
to funkcja, która pomaga w odbiciu diamentów. Bierze ciąg jako prawy argument, a funkcję odwrotną jak lewy (podobnieB
jak operator).A teraz przechodzimy do głównej części programu.
Jest to konieczne, aby zapewnić, że wszystkie trójkąty utworzone dla każdego elementu w zakresie
⌽⍳A
mają tę samą wysokość, aby można je później połączyć ze sobą.Teraz górna lewa część wzoru jest zakończona. Pozostaje tylko obrócić go w pionie, a następnie w poziomie.
I to wszystko! Wyjściem jest macierz znaków ze
/\
s i wypełniona spacjami.źródło
05AB1E ,
47434135343332 bajtyWypróbuj online!
(-4 bajty dzięki @Emigna, który zaproponował 3 ulepszenia)
To wyjaśnienie dotyczyło wcześniejszej wersji, od tego czasu było kilka iteracji.
źródło
η
zamiast przyrostków, ponieważ są one takie same dla tego ciągu.N£
jest taki sam jak¨
tutaj i€R
jestí
.CJam ,
6563 bajtówWypróbuj online!
Wyjaśnienie
W tym objaśnieniu będę się odnosił do numeru wejściowego jako
n
.źródło
e#
w wyjaśnieniu?#
nie jest komentarzem w CJam - sourceforge.net/p/cjam/wiki/Basic%20operators/#number-sign - nawet jeśli jest w wielu innych językach. Ponieważ CJam jest językiem gry w golfa, wszystkie jednoznakowe komendy są używane do funkcji odpowiednich do gry w golfa. Komentarze są przydatne tylko dla kodu bez golfa, więc używa sekwencji 2 znaków, uwalniając w ten sposób sekwencję jednego znaku dla czegoś innegoPython 2 ,
152147143140 bajtów-1 bajt dzięki musicman523
Wypróbuj online!
Działa to poprzez rąbanie wewnętrznych kolumn największego diamentu w celu uzyskania mniejszych, za pomocą
[0,..,n,n,..,0]
kontrolowania liczby kolumn do usunięcia.źródło
r=r+
nar+=
Pyth,
3532 bajtówZestaw testowy
Gotowe, aby zobaczyć, jak różnią się podejścia mojego i @ LeakyNun.
źródło
Dyalog APL, 46
źródło
{}
do twojej odpowiedzi, ponieważ muszą one zostać uwzględnione.Pyth , 49 bajtów
Wypróbuj online!
źródło
V. , 38 bajtów
Wypróbuj online!
źródło