Cette:
est un planeur .
Dans Game of Life de Conway, le planeur est un motif célèbre qui traverse rapidement la planche. Pour le défi d'aujourd'hui, nous allons dessiner un tableau Game of Life art ASCII et placer un planeur dessus.
Le tableau avec lequel nous commençons est le suivant:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Cette planche est entièrement composée de tuyaux |
et de traits de soulignement _
, et est de 10x10. Vous devez écrire un programme ou une fonction qui accepte deux entiers, «x» et «y», et génère cette même carte avec un planeur à ces coordonnées. Par exemple, si vous aviez un planeur en position (1, 1)
(indexé 0), vous devez sortir les éléments suivants:
|_|_|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|_|_|_|*|_|_|_|_|_|_|
|_|*|*|*|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Vous pouvez supposer que le planeur ne sera jamais placé hors des limites, donc x et y seront toujours dans la [0-7]
plage. Vous pouvez également choisir de prendre les coordonnées indexées 1, mais vous devez le spécifier dans votre réponse. Dans ce cas, les entrées seront toujours dans la [1-8]
plage. Voici quelques exemples (tous indexés 0):
0, 0:
|_|*|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|*|*|*|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
7, 7:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
7, 4:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
5, 2:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|*|_|_|_|
|_|_|_|_|_|_|_|*|_|_|
|_|_|_|_|_|*|*|*|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Comme d'habitude, vous pouvez prendre votre E / S dans n'importe quel format raisonnable. Cela inclut, mais sans s'y limiter, une chaîne avec des sauts de ligne, un tableau de chaînes, un tableau 2d de chaînes ou l'écriture dans un fichier / STDOUT. Vous pouvez également choisir dans quel ordre prendre x et y .
Puisqu'il s'agit de code-golf , les failles standard sont interdites, et faites le code le plus court possible!
the glider is a famous pattern that slowly traverses across the boar.
. Lentement? Il s'agit de l'objet à déplacement diagonal le plus rapide du GoL. Il atteint 1/4 de la vitesse de la lumière.Réponses:
MATL ,
353230 octetsLe code contient des caractères non imprimables. L'entrée est basée sur 0. Essayez-le en ligne!
la source
V ,
31, 30 octetsEssayez-le en ligne!
Hexdump:
Cela prend l'entrée en tant qu'arguments de programme et indexée 1.
Explication:
la source
Gelée ,
3735 octetsEssayez-le en ligne!
Comment ça fonctionne
la source
Python 2 , 151 octets
Jouera plus au golf.
Essayez-le en ligne!
la source
[*'|_'*10+'|']
place de l'list()
appel.Perl 6 , 88 octets
Des nombres complexes sont utilisés pour représenter les coordonnées.
^10 »*» i X+ ^10
génère la grille de tous les nombres complexes avec des composants entiers de zéro à neuf.Renvoie une liste de chaînes, chacune contenant une ligne.
la source
»
-il? Comment est-il encodé?>>
mais c'est le même nombre d'octets que le guillemet, donc pour le golf, je préfère ce dernier car il a l'air un peu plus classe à mon humble avis. Quant à ce qu'il fait, il transforme l'opérateur qu'il entoure en un "hyper-opérateur" qui s'applique par paire aux listes ou aux valeurs de chaque côté. Ici, il multiplie chaque élément de la gamme0-9
pari
, donnant0, i, 2i, ..., 9i
.Haskell , 96 octets
Prend deux entiers (
x
ety
) et renvoie une liste deString
s, c'est-à-dire une liste 2D de type[[Char]]
.Suite de tests:
la source
Rubis , 87 octets
Essayez-le en ligne!
la source
Mathematica,
115113 octetsoù
Cela prend l'entrée au
{row, col}
format et est indexé 1, mais peut être transformé en index 0 sans ajouter d'octets.Quelques notes:
\n
est un caractère de nouvelle ligne, prend 1 octet.
est\[Function]
, prend 3 octets.
est\[Transpose]
, prend 3 octets.Notez que "tableau de chaîne" est autorisé, donc je peux simplement supprimer
Riffle
, donneMathematica,
9897 octetsla source
Java 8,
165144 octetsExplication:
Essayez-le ici.
la source
JavaScript (ES6), 99 octets
Prend la saisie par curry:
f(5)(2)
pour x = 5, y = 2. Les coordonnées sont indexées zéro.Extrait de test
la source
SOGL , 23 octets
note: ceci s'attend à ce que l'entrée soit indexée 1
Explication:
la source
Python 2 , 133 octets
Essayez-le en ligne!
la source
Fusain , 28 octets
Essayez-le en ligne! Lien vers le mode verbeux pour la description.
la source
|_
avant avant\n
pour enregistrer un octet compressé. (J'ai essayé plusieurs façons d'imprimer le planeur mais aucun n'a sauvé d'octets.)