Imprima um bloco de torre com o menor código possível.
Entrada:
A entrada define quantos andares o bloco da torre possui. Um andar contém uma janela em ambos os lados da porta. A janela é composta de hashes 3x3.
Um exemplo de um bloco de torre de 4 andares está abaixo:
=====================
)V V V V V V V V V V(
)V V V V V V V V V V V(
)V V V V V V V V V V V V(
)V V V V V V V V V V V V V(
~~~~~~~~~~~~~~~~~~~~~~~~~~~
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : _______ : : : : :
: : ### : I I : ### : :
: : ### : I I : ### : :
: : ### : I I : ### : :
: : : : : I I : : : : :
Atualizar:
A entrada deve ser uma ou mais.
Espaços à direita no final das linhas são permitidos.
No meu exemplo, cada linha tem três espaços à esquerda. Isso não é obrigatório, apenas o bloco de torre com a entrada é.
Respostas:
V , 72 bytes
Experimente online!
Aqui está um hexdump, pois contém caracteres não imprimíveis:
Encontrei um bug estranho. A seção no meio:
dGÀpG
deveria ter sido:,ÀäGG
mas isso não funciona para as entradas 1, e não faço ideia do porquê.¯\_(ツ)_/¯
fonte
Mathematica,
301288258 bytesFunção pura que pega um número inteiro positivo e gera uma string. A string de saída não parecerá correta porque o Mathematica aparentemente não exibe fontes monoespaçadas como monoespaço:
Por razões que eu não entendo direito, ele formata como monoespaço se você for
Print
a string:Editar: salvou vários bytes por não incluir
" "
no início de cada linha. Mudou a definição des
lidar com o caso em que há apenas um andar (StringRepeat
não gosta de repetir uma sequência de0
vezes).Edit 2: Graças à LegionMammal978 eo fato de que
StringJoin
éListable
, este é agora um pesadelo incompreensível de listas aninhadas e também 30 bytes mais curto.fonte
a<>b<>...<>x
-osa<>{b,...,x}
por certas partes.Python 2 ,
275270262246240236 bytesSalvei um casal com uma dica de @ Flp.Tkc e alterando o primeiro loop for.
16 salvos com mais ajuda de @ Flp.Tkc
Experimente online!
Apenas constrói cada linha da torre como uma string e a adiciona a uma matriz, para que imprima a matriz no final. Se alguém quiser uma explicação completa, eu relutantemente darei se consigo lembrar como isso funciona ☺
fonte
PowerShell , 193 bytes
Experimente online!
(Eu sinto que ainda pode haver alguns bytes aqui ou ali. Sub-190 parece factível.)
As três primeiras linhas formam o telhado, usando multiplicação e concatenação de cordas, juntamente com um loop
3..0|%{...}
para obter o número correto e a inclinação deV
s.A próxima linha vai da entrada pré-decrementada
--$args[0]
até0
como um loop (o pré-decremento nos permite indexar usando em!$_
vez de$_-eq1
salvar vários bytes posteriormente). A cada iteração de loop, estamos construindo um monte de strings, definindo variáveis$b
e$a
ao longo do caminho. Também estamos usando pseudo-ternários(... , ...)[...]
para escolher as cordas apropriadas para o meio, para que possamos corrigir a porta do primeiro andar.Cada uma das seqüências é deixada individualmente no pipeline, e o padrão
Write-Output
insere novas linhas entre elas, para que possamos obtê-las gratuitamente.fonte
T-SQL,
378372353331325 bytesGolfe:
Ungolfed:
Experimente
fonte
C,
409406402 bytesLigue para:
fonte
Lote, 373 bytes
Constrói a cordilheira e a sarjeta ao perceber que são múltiplos de 3, o que reduz alguns bytes. Constrói o telhado observando que o sufixo é o mesmo para cada linha (e novamente inclui algumas repetições em três partes). Constrói as paredes, começando com a linha de parede mais interessante, que é a janela do térreo, e removendo detalhes para gerar as outras partes da parede.
fonte
Javascript, 335 bytes
Cria uma função
y()
com argumentoz
, tal quey(z)
produz a saída desejada.Exemplo de uso:
Estou fazendo a transição do JavaScript normal para o JS de código-golfe. Quaisquer dicas seriam extremamente apreciadas.
fonte
Tela ,
6261 bytesExperimente aqui! A entrada 0 funciona conforme o esperado, mesmo que isso não seja necessário.
fonte