Dies:
ist ein Segelflugzeug .
In Conways Game of Life ist der Gleiter ein berühmtes Muster, das sich schnell über das Brett bewegt. Für die heutige Herausforderung werden wir ein ASCII-artiges Game of Life-Brett zeichnen und ein Segelflugzeug darauf platzieren.
Das Board, mit dem wir beginnen, ist folgendes:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Dieses Board besteht vollständig aus Rohren |
und Unterstrichen _
und ist 10x10 groß. Sie müssen ein Programm oder eine Funktion schreiben, die zwei Ganzzahlen, 'x' und 'y', enthält und dieselbe Karte mit einem Gleitschirm an diesen Koordinaten ausgibt. Wenn Sie zum Beispiel einen Gleiter an der Position (1, 1)
(0-indiziert) hatten, müssen Sie Folgendes ausgeben:
|_|_|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|_|_|_|*|_|_|_|_|_|_|
|_|*|*|*|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Sie können davon ausgehen, dass der Gleitschirm niemals außerhalb der Grenzen platziert wird, sodass sich sowohl x als auch y immer im [0-7]
Bereich befinden. Sie können auch wählen, die Koordinaten 1-indiziert zu nehmen, aber Sie müssen dies in Ihrer Antwort angeben. In diesem Fall liegen die Eingänge immer im [1-8]
Bereich. Hier sind einige Beispiele (alle 0-indiziert):
0, 0:
|_|*|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|*|*|*|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
7, 7:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
7, 4:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
5, 2:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|*|_|_|_|
|_|_|_|_|_|_|_|*|_|_|
|_|_|_|_|_|*|*|*|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Wie üblich können Sie Ihre E / A in jedem vernünftigen Format übernehmen. Dies schließt ein, ist aber nicht beschränkt auf einen String mit Zeilenumbrüchen, ein Array von Strings, ein 2D-Array von Strings oder das Schreiben in eine Datei / STDOUT. Sie können auch auswählen, in welcher Reihenfolge x und y aufgenommen werden sollen.
Da dies Code-Golf ist , sind Standard-Schlupflöcher verboten und machen den kürzesten Code, den Sie können!
the glider is a famous pattern that slowly traverses across the boar.
. Langsam? Es ist das sich in der Diagonale am schnellsten bewegende Objekt in GoL. Es erreicht 1/4 der Lichtgeschwindigkeit.Antworten:
MATL ,
353230 BytesDer Code enthält nicht druckbare Zeichen. Die Eingabe ist 0-basiert. Probieren Sie es online!
quelle
V ,
31, 30 BytesProbieren Sie es online!
Hexdump:
Dies nimmt Eingaben als Programmargumente an und ist 1-indiziert.
Erläuterung:
quelle
Jelly ,
37-35BytesProbieren Sie es online!
Wie es funktioniert
quelle
Python 2 , 151 Bytes
Wird mehr Golf spielen.
Probieren Sie es online!
quelle
[*'|_'*10+'|']
anstelle deslist()
Aufrufs verwenden.Perl 6 , 88 Bytes
Für die Darstellung der Koordinaten werden komplexe Zahlen verwendet.
^10 »*» i X+ ^10
generiert das Gitter aller komplexen Zahlen mit ganzzahligen Komponenten von Null bis Neun.Gibt eine Liste von Zeichenfolgen zurück, von denen jede eine Zeile enthält.
quelle
»
das? Wie ist es codiert?>>
, aber das ist die gleiche Anzahl von Bytes wie das Guillemet, daher bevorzuge ich letzteres, da es meiner Meinung nach ein wenig edler aussieht. Was das angeht, verwandelt es den Operator, den es umgibt, in einen "Hyperoperator", der paarweise auf die Listen oder Werte auf beiden Seiten angewendet wird. Hier multipliziert es jedes Element des Bereichs0-9
miti
Geben0, i, 2i, ..., 9i
.Haskell , 96 Bytes
Nimmt zwei Ganzzahlen (
x
undy
) auf und gibt eine Liste mitString
s zurück, dh eine 2D-Liste mit Typ[[Char]]
.Testsuite:
quelle
Ruby , 87 Bytes
Probieren Sie es online!
quelle
Mathematica,
115113 Byteswo
Dies nimmt Eingaben im
{row, col}
Format an und ist 1-indiziert, kann aber in 0-indiziert umgewandelt werden, ohne dass Bytes hinzugefügt werden müssen.Einige Notizen:
\n
ist ein Newline-Zeichen und benötigt 1 Byte.
ist\[Function]
, dauert 3 Bytes.
ist\[Transpose]
, dauert 3 Bytes.Beachten Sie, dass "Array von Zeichenfolge" zulässig ist, so dass ich nur entfernen kann
Riffle
, gibtMathematica,
9897 Bytesquelle
Java 8,
165144 BytesErläuterung:
Probieren Sie es hier aus.
quelle
JavaScript (ES6), 99 Byte
Übernimmt die Eingabe per Currying:
f(5)(2)
für x = 5, y = 2. Koordinaten sind nullindexiert.Testschnipsel
quelle
SOGL , 23 Bytes
Hinweis: Dies setzt voraus, dass die Eingabe 1-indiziert ist
Erläuterung:
quelle
Python 2 , 133 Bytes
Probieren Sie es online!
quelle
Kohle , 28 Bytes
Probieren Sie es online! Link zum ausführlichen Modus zur Beschreibung.
quelle
|_
bevor die\n
eine komprimierte Byte zu speichern. (Ich habe verschiedene Druckmethoden für den Gleitschirm ausprobiert, aber keine hat Bytes gespeichert.)