To:
jest szybowcem .
W grze życia Conwaya szybowiec jest znanym wzorem, który szybko przemierza planszę. Na dzisiejsze wyzwanie narysujemy deskę ASCII Game of Life Board i umieścimy na niej szybowiec.
Plansza, od której zaczynamy jest następująca:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Ta deska składa się w całości z rur |
i znaków podkreślenia _
i ma wymiary 10x10. Musisz napisać program lub funkcję, która przyjmuje dwie liczby całkowite, „x” i „y”, i wysyła tę samą tablicę szybowcem na tych współrzędnych. Na przykład, jeśli miałeś szybowiec w pozycji (1, 1)
(indeksowany 0), musisz wypisać następujące dane:
|_|_|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|_|_|_|*|_|_|_|_|_|_|
|_|*|*|*|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Możesz założyć, że szybowiec nigdy nie zostanie umieszczony poza granicami, więc zarówno x, jak i y zawsze będą w [0-7]
zakresie. Możesz także wybrać współrzędne 1-indeksowane, ale musisz to określić w swojej odpowiedzi. W takim przypadku dane wejściowe zawsze będą w [1-8]
zakresie. Oto kilka przykładów (wszystkie indeksowane 0):
0, 0:
|_|*|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|*|*|*|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
7, 7:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
7, 4:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
5, 2:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|*|_|_|_|
|_|_|_|_|_|_|_|*|_|_|
|_|_|_|_|_|*|*|*|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Jak zwykle możesz wziąć swoje IO w dowolnym rozsądnym formacie. Obejmuje to między innymi ciąg znaków z nowymi liniami, tablicę ciągów, tablicę ciągów 2d lub zapis do pliku / STDOUT. Można również wybrać, co by wziąć X i Y w.
Ponieważ jest to gra w golfa , standardowe luki są zakazane i tworzą najkrótszy kod, jaki możesz!
the glider is a famous pattern that slowly traverses across the boar.
. Powoli? Jest to najszybciej poruszający się po przekątnej obiekt w GoL. Osiąga 1/4 prędkości światła.Odpowiedzi:
MATL ,
353230 bajtówKod zawiera znaki niedrukowalne. Dane wejściowe są oparte na 0. Wypróbuj online!
źródło
V ,
31, 30 bajtówWypróbuj online!
Hexdump:
Pobiera to dane wejściowe jako argumenty programu i indeksowane 1.
Wyjaśnienie:
źródło
Galaretka ,
3735 bajtówWypróbuj online!
Jak to działa
źródło
Python 2 , 151 bajtów
Będzie więcej golfa.
Wypróbuj online!
źródło
[*'|_'*10+'|']
zamiastlist()
połączenia.Perl 6 , 88 bajtów
Liczby zespolone służą do przedstawienia współrzędnych.
^10 »*» i X+ ^10
generuje siatkę wszystkich liczb zespolonych ze składnikami liczb całkowitych od zera do dziewięciu.Zwraca listę ciągów znaków, z których każda zawiera jedną linię.
źródło
»
zrobić? Jak to jest zakodowane?>>
ale jest to ta sama liczba bajtów, co guillemet, więc do gry w golfa wolę ten drugi, ponieważ wygląda nieco bardziej klasycznie IMHO. Jeśli chodzi o to, co robi, przekształca otaczającego operatora w „hiperoperator”, który stosuje się parami do list lub wartości po obu stronach. Tutaj mnoży każdy element zakresu0-9
przezi
, dając0, i, 2i, ..., 9i
.Haskell , 96 bajtów
Pobiera dwie liczby całkowite (
x
iy
) i zwraca listęString
s, tj. Listę typu 2D[[Char]]
.Zestaw testowy:
źródło
Rubinowy , 87 bajtów
Wypróbuj online!
źródło
Mathematica,
115113 bajtówgdzie
To wymaga wkładu
{row, col}
formacie i jest indeksowane 1, ale można je przekształcić w indeksy 0 bez dodawania bajtów.Niektóre uwagi:
\n
jest znakiem nowej linii, zajmuje 1 bajt.
to\[Function]
zajmuje 3 bajty.
to\[Transpose]
zajmuje 3 bajty.Pamiętaj, że „tablica ciągów znaków” jest dozwolona, więc mogę ją po prostu usunąć
Riffle
, dajeMathematica,
9897 bajtówźródło
Java 8,
165144 bajtówWyjaśnienie:
Wypróbuj tutaj.
źródło
JavaScript (ES6), 99 bajtów
Pobiera wkład poprzez curry:
f(5)(2)
dla x = 5, y = 2. Współrzędne są zerowane.Test Snippet
źródło
SOGL , 23 bajty
Uwaga: oczekuje się, że dane wejściowe będą indeksowane 1
Wyjaśnienie:
źródło
Python 2 , 133 bajty
Wypróbuj online!
źródło
Węgiel drzewny , 28 bajtów
Wypróbuj online! Link do trybu pełnego opisu.
źródło
|_
przed,\n
aby zapisać skompresowany bajt. (Próbowałem kilku różnych sposobów drukowania szybowca, ale żaden nie zapisał żadnych bajtów.)