Desafio
Dada a entrada n
, imprima uma n
camada de bolo de arte ASCII de altura, vista de lado, com duas velas em cima. Consulte os exemplos abaixo para obter detalhes.
Resultado
>> cake(1)
_|_|_
| |
+-----+
>> cake(3)
_|_|_
| |
+---------+
| |
+-------------+
| |
+-------------+
...e assim por diante.
Regras
- Falhas padrão proibidas
- Por favor, tente uma solução inteligente
- Isso é código-golfe , então a resposta mais curta em bytes vence. No entanto, a resposta não será selecionada.
Diverta-se!
code-golf
ascii-art
kolmogorov-complexity
dkudriavtsev
fonte
fonte
i=int(input())
int(input())
parainput()
e oprint
instrução, além de alterar os quatro espaços para um (se for uma guia, altere-o para um espaço para tornar mais óbvio que é um caractere) . Além disso, seu número de bytes é 4 alto demais por algum motivo.Ruby,
109107 bytesfonte
Lote, 233 bytes
Mais curto que Python? Algo deve estar errado ...
fonte
JavaScript (ES6), 134 bytes
Um bolo recursivo.
Demo
fonte
Haskell, 103 bytes
Define uma função
g
que retorna uma lista de cadeias contendo as linhas da saídafonte
05AB1E,
115, 101 caracteresGuardado 14 caracteres graças a Adnan!
Definitivamente algum espaço para jogar golfe aqui.
Experimente online!
Observe que isso imprime tudo deslocado por um espaço.
fonte
×
comando.Este é um exemplo de como é usado.Python 2, 122 bytes
fonte
Python 3, 162 caracteres
Não é muito inteligente, mas nunca fiz um desses antes. (Editar: removido parênteses desnecessários; reduzido em mais um caractere)
fonte
Pitão, 73 bytes
Um programa que recebe a entrada de um número inteiro em STDIN e imprime o resultado.
Provavelmente ainda há golfe a ser feito aqui.
Experimente online
Explicação que vem depois
fonte
JavaScript (ES6), 171 bytes
Primeira passagem, provavelmente não ideal ...
fonte
PHP,
150147138136130140 bytesnova abordagem:
versão antiga para referência:
fonte
$argv
. : - /Vimscript,
116115 bytesMuito bagunçado, mas funciona!
Para chamá-lo:
call A(3)
em um buffer vazio . Para carregar a função,source cake.vim
Explicação
2i+<Esc>5i-<Esc>
escreve a primeira linha+-----+
o||<Esc>5i<Space><Esc>
adiciona| |
na segunda linhaVkyjply4lpjy4hp
é salvo na macro@z
- seleciona visualmente as duas linhas, as puxa, as cola em baixo e adiciona 4 traços e espaços a elas.#@z
repete isso#
tempoddl4x
exclui as últimas linhas e remova os traços para o fundo do bolo para torná-lo igual ao topo da camada inferiorggd$i_|_|_
substitui a primeira linha pela parte superior do bolo%ce
então centraliza o bolo inteiro na largura da camada inferior! !fonte
SOGL V0.12 ,
2726 bytesExperimente aqui!
Explicação:
fonte
Excel VBA,
139130127 bytesJanela imediata VBE anônima que recebe a entrada da célula
A1
e envia um bolo para a janela imediata VBEfonte
CJam, 79 bytes
Experimente online
fonte
QBasic, 115 bytes
Ungolfed
Imprima a linha superior com as velas; depois imprima o restante do bolo duas linhas por vez.
SPC
, quando usado em umaPRINT
instrução, emite o número especificado de espaços. Convenientemente, quando recebe um argumento negativo, ele o trata como 0; portanto, o fato deindent - 2
estar-2
na última iteração não é um problema.STRING$
pega uma contagem e um código de caractere (aqui, 45 para-
) e repete o caractere esse número de vezes. Aqui, temos que especificar um caso especial para a última linha (quandoi=n
) ser 4 hífens mais curta do que seria.fonte
C (gcc) ,
158153 bytes-5 bytes graças ao ceilingcat.
Experimente online!
fonte