Nota para os mods, se o título não faz justiça, mude para qualquer que seja, eu achei engraçado.
Você está encarregado de pendurar as luzes para esta temporada de Natal, e sua família decidiu que, para ser um feliz Natal, você precisa pendurar pelo menos 2 luzes de Natal em sua casa. Portanto, seu desafio é, dado um número 1 < n
, emitir o número correspondente de luzes de Natal que você pendurará de acordo com as seguintes especificações ...
Aqui está a estrutura de uma luz de natal básica:
_?_
[___]
/:' \
|:: |
\::. /
\::./
'='
A única parte incerta é o ponto de interrogação, pois dependendo de onde a luz pousa na corrente, a conexão será muito diferente.
Para a primeira luz da cadeia, você precisará gerar:
.--._
_(_
[___]
/:' \
|:: |
\::. /
\::./
'='
Para a última luz da cadeia, você precisará gerar:
_.--.
_)_
[___]
/:' \
|:: |
\::. /
\::./
'='
E para todas as luzes no meio:
_.--.--._
_Y_
[___]
/:' \
|:: |
\::. /
\::./
'='
Exemplo:
N = 2 :
.--.__.--.
_(_ _)_
[___] [___]
/:' \ /:' \
|:: | |:: |
\::. / \::. /
\::./ \::./
'=' '='
N = 6 :
.--.__.--.--.__.--.--.__.--.--.__.--.--.__.--.
_(_ _Y_ _Y_ _Y_ _Y_ _)_
[___] [___] [___] [___] [___] [___]
/:' \ /:' \ /:' \ /:' \ /:' \ /:' \
|:: | |:: | |:: | |:: | |:: | |:: |
\::. / \::. / \::. / \::. / \::. / \::. /
\::./ \::./ \::./ \::./ \::./ \::./
'=' '=' '=' '=' '=' '='
Crédito
O ASCII-Art foi retirado de: http://www.chris.com/ascii/index.php?art=holiday/christmas/other
Foi desenvolvido por um usuário chamado "jgs", responsável por cerca de 40% do conteúdo desse site.
Regras
- Os espaços à direita são bons, o mesmo com uma nova linha à direita.
- Há mais 1 espaço entre a primeira e a última lâmpada do resto da cadeia.
- Você pode usar apenas 1 número inteiro como entrada e a saída DEVE ser uma string, sem matrizes.
- Seu programa pode ter funções indefinidas para valores menores que 2.
Este é o código-golfe da ascii-art , o menor número de bytes ganhos.
Respostas:
SOGL V0.12 ,
73717066 bytesExperimente aqui!
-4 bytes rodando sobre uma string
(YYY)
como a resposta do carvão vegetal63 bytes funcionariam se 2 não precisassem ser manipulados: /
fonte
save SOGL codepage encoded file
botão, ele fornecerá um arquivo de 70 bytes, que você poderá carregar também (embora o botão de navegação esteja muito longe, corrigindo isso). SOGL usa uma página de código personalizada para fazer isso. (a página de código está ligado no cabeçalho da resposta)Python 3,
200195191190186 bytes-1 byte de dylnan
-4 bytes de Rod
Recebe entrada em stdin.
Experimente online!
Explicação:
Versão Festiva Adicional!
fonte
for s in l:print(s,s*x,s)
salvar um byte.Pitão ,
113107 bytesExperimente online!
Não é exatamente a versão mais golfista ...
fonte
JavaScript (ES6), 180 bytes
Teste
fonte
JavaScript (ES6),
204201196194192 bytesMostrar snippet de código
fonte
.--._${(r=x=>x.repeat(N-2))(`_.--.--._`)}_.--.
por${(r=x=>x.repeat(N-1))(`.--.__.--`)}.
N
após a primeira chamadar
, mas isso funciona bem.Carvão ,
7874 bytesExperimente online! Link é a versão detalhada do código. Editar: salvou 2 bytes simplificando a maneira como a fiação é impressa. 2 bytes salvos porque o novo código lança automaticamente a entrada para número inteiro. Explicação:
Imprima a fiação pegando a corda
.--.__
, moldando-a no comprimento 9 e repetindo-a uma vez para cada junção, terminando com uma final.
antes de passar para o início da próxima linha das lâmpadas.Faça um loop sobre uma série de conectores:
(
e)
nas extremidadesY
es no meio.Mova para a direita um caractere se esta for a última lâmpada.
Imprima o corpo da lâmpada sem mover o cursor.
Imprima a tampa da lâmpada, incluindo o conector.
Vá para o início da próxima lâmpada (um caractere extra se esta for a primeira lâmpada).
fonte
Excel VBA,
224207205 bytesFunção de janela imediata anônima do VBE que leva as entradas do intervalo
[A1]
e as saídas para a janela imediata do VBE.Imprime as lâmpadas linha por linha, do canto superior esquerdo para o canto inferior direito
E / S de amostra
-17 Bytes graças a @ YowE3k
-2 bytes para adição de variável temporária
b
fonte
: [Rept(B1,A1-2)]
pouco antes do início do loop não é usado.C,
279278272262259 bytesObrigado a @NieDzejkob por salvar seis bytes!
Experimente online!
Desenrolado:
fonte
PHP,
276,307,303,301,293,283,280, 278 bytesVersão legível para teste:
Confira a versão reduzida aqui
Confira a versão legível aqui
ATUALIZAR
Embrulhado em uma função,
fonte
\
antes do dígito do separador, portanto, economizará apenas 1 caractere. Você pode economizar mais 2 caracteres, fazendo a parte caracteres de espaço da mesma cadeia maior, contendo a expressão no meio como expansão:$a[]=$r($b)." {$r($b,$n)} ".$r($b);
.9
como delimitador não é necessário escapar, provavelmente, isso funciona com outros números só não0
$r()
função lambda como regularfunction r()
(pode estar no mesmo lugar, a função na função é possível). Você precisa corrigir a análise de string:" {r("")} "
não funcionará. Outro -7 bytes;)Java,
310307300275 bytesAgradecimentos ao DevelopingDeveloper por convertê-lo em uma expressão lambda
Expandido:
Procurando maneiras mais curtas de multiplicar strings, descobriu que os streams são surpreendentemente mais detalhados
Experimente online!
fonte
String o="";
+o+=" .";
=String o=" .";
j=#
fora dos loops forLimpos ,
305292288275 bytesExperimente online!
fonte
Python 2 (PyPy) ,
365316315251245 bytes-21 graças ao FlipTack
-43 graças a ovs
-6 agradecimentos a Mr. Xcoder
Experimente online!
fonte
Kotlin , 261 bytes
Embelezado
Teste
TIO
TryItOnline
fonte
Planilhas Google, 190 bytes
Função de planilha anônima que recebe entrada do intervalo
A1
e saídas para a célula chamadorafonte