Este:
é um planador .
No Jogo da Vida de Conway, o planador é um famoso padrão que atravessa rapidamente o tabuleiro. Para o desafio de hoje, desenharemos um jogo da vida em arte ASCII e colocaremos um planador nele.
O quadro que estamos começando é o seguinte:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Esta placa é composta inteiramente de tubos |
e sublinhados _
e é 10x10. Você deve escrever um programa ou função que consiga dois números inteiros, 'x' e 'y', e produza a mesma placa com um planador nessas coordenadas. Por exemplo, se você tinha um planador na posição (1, 1)
(indexado 0), deve produzir o seguinte:
|_|_|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|_|_|_|*|_|_|_|_|_|_|
|_|*|*|*|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Você pode supor que o planador nunca será colocado fora dos limites; portanto, xey sempre estarão dentro do [0-7]
intervalo. Você também pode optar por assumir as coordenadas indexadas em 1, mas você deve especificar isso em sua resposta. Nesse caso, as entradas estarão sempre na [1-8]
faixa. Aqui estão alguns exemplos (todos com índice 0):
0, 0:
|_|*|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|*|*|*|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
7, 7:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
7, 4:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
5, 2:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|*|_|_|_|
|_|_|_|_|_|_|_|*|_|_|
|_|_|_|_|_|*|*|*|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
Como de costume, você pode levar seu IO em qualquer formato razoável. Isso inclui, mas não se limita a, uma sequência com novas linhas, uma matriz de sequências, uma matriz 2D de sequências ou a gravação em um arquivo / STDOUT. Você também pode escolher em qual ordem aceitar x e y .
Como se trata de código-golfe , as brechas padrão são proibidas e tornam o código mais curto possível!
the glider is a famous pattern that slowly traverses across the boar.
. Lentamente? É o objeto móvel diagonal mais rápido do GoL. Atinge 1/4 da velocidade da luz.Respostas:
MATL ,
353230 bytesO código contém caracteres não imprimíveis. A entrada é baseada em 0. Experimente online!
fonte
V ,
31, 30 bytesExperimente online!
Hexdump:
Isso recebe a entrada como argumentos do programa e é indexada 1.
Explicação:
fonte
Gelatina ,
3735 bytesExperimente online!
Como funciona
fonte
Python 2 , 151 bytes
Golf mais.
Experimente online!
fonte
[*'|_'*10+'|']
vez dalist()
chamada.Perl 6 , 88 bytes
Números complexos são usados para representar as coordenadas.
^10 »*» i X+ ^10
gera a grade de todos os números complexos com componentes inteiros de zero a nove.Retorna uma lista de strings, cada uma mantendo uma linha.
fonte
»
faz? Como é codificado?>>
, mas esse é o mesmo número de bytes que o guillemet; portanto, para o golfe, prefiro o último, pois parece um pouco IMHO de classe. Quanto ao que faz, transforma o operador que rodeia em um "hiperoperador" que se aplica em pares às listas ou valores de ambos os lados. Aqui, ele se multiplica cada elemento da gama0-9
pori
, dando0, i, 2i, ..., 9i
.Haskell , 96 bytes
Pega dois inteiros (
x
ey
) e retorna uma lista deString
s, ou seja, uma lista 2D do tipo[[Char]]
.Suíte de teste:
fonte
Ruby , 87 bytes
Experimente online!
fonte
Mathematica,
115113 bytesOnde
Isso recebe entrada no
{row, col}
formato e é indexado em 1, mas pode ser transformado em indexado em 0 sem adicionar bytes.Algumas notas:
\n
é um caractere de nova linha, leva 1 byte.
é\[Function]
, leva 3 bytes.
é\[Transpose]
, leva 3 bytes.Note que "array de string" é permitido, então eu posso remover
Riffle
, dáMathematica,
9897 bytesfonte
Java 8,
165144 bytesExplicação:
Experimente aqui.
fonte
JavaScript (ES6), 99 bytes
Toma entrada através de currying:
f(5)(2)
para x = 5, y = 2. As coordenadas são indexadas a zero.Snippet de teste
fonte
SOGL , 23 bytes
Nota: isso espera que a entrada seja indexada 1
Explicação:
fonte
Python 2 , 133 bytes
Experimente online!
fonte
Carvão , 28 bytes
Experimente online! Link para o modo detalhado para descrição.
fonte
|_
antes do\n
para salvar um byte compactado. (Eu tentei várias maneiras de imprimir o planador mas nenhum salva quaisquer bytes.)