O dia 13 de março é reconhecido como o Dia Nacional da Jóia , que é o tema deste desafio. Assim, dado um inteiro n
que n
é maior que 0, criar uma jóia ASCII. Por exemplo:
n = 1 n = 2 n = 3
______
____ / \
__ / \ \ /
/ \ \ / \ /
\ / \ / \ /
\/ \/ \/
O fundo é definido como o fundo da jóia até o par mais alto de \/
. O resto é o topo. Para o exemplo acima, onde n = 1
:
Bottom: \ / Top: __
\/ / \
Como você pode ver, o fundo é feito de n + 1
camadas de \/
com (1 * lines from the bottom) * 2
espaços entre com um máximo de n
linhas a partir da parte inferior da jóia. Se pegarmos a segunda jóia ( n = 2
), podemos ver que:
____
/ \
\ / 2 (or n) layers from the bottom with 1*2*2 or 4 spaces in between \/
\ / 1 layer from the bottom with 1*1*2 or 2 spaces in between \/
\/ The bottom (0 layers) with 1*0*2 spaces or 0 spaces in between \/
A parte superior é feita de um par de /\
com n*2
espaços entre com n*2
sublinhados na parte superior.
Regras
- Deve ser capaz de receber números inteiros positivos diferentes de zero como entrada do usuário
- É necessário criar uma jóia com as especificações definidas acima (atualizadas aqui):
- A parte superior é feita de um par de
/\
comn*2
espaços entre comn*2
sublinhados na parte superior. - A parte inferior é feito de
n + 1
camadas de\/
com(1 * lines from the bottom) * 2
espaços entre com um máximo den
linhas a partir da parte inferior da jóia.
- A parte superior é feita de um par de
- Linhas novas à direita após a jóia ou espaços à direita em cada linha são permitidos.
- Não são permitidas brechas padrão
Critérios Vencedores
Menos bytes ganham!
Respostas:
Carvão , 17 bytes
Código:
Explicação:
É um comando muito elegante
‖M
, que também se reflete automaticamente/
no\
.Usa a codificação de carvão vegetal .
Experimente online!
fonte
05AB1E ,
2720 bytesExperimente online!
Explicação
fonte
D„/\„\/‡
paraÂ
.Python 2,
1019895 bytesExperimente Online!
Função anônima que recebe um número inteiro positivo e retorna uma string
Python 3.6, 92 bytes (Agradecimentos a Ben Frankel)
Não consegui encontrar um intérprete on-line para esta versão, mas é um pouco menor devido às seqüências de caracteres f na v3.6
fonte
lambda n:f' {"__"*n}\n/{" "*n}\\\n'+'\n'.join(' '*i+'\\'+' '*(n-i)+'/'for i in range(n+1))
. Aproveitando as strings f.PHP, 123 bytes
Primeira versão de 143 bytes
Experimente aqui!
fonte
V ,
282726 bytes1 bytes salvos graças a @DJMcMayhem usando em
>
vez deÉ
<esc>
é0x1b
Experimente online!
Hexdump:
Explicação
Topo:
Inferior:
fonte
É<space>
para>
que, no final de uma macro é implicitamente preenchidos para>>
>
recua um espaço em vez de uma guia?set expandtab
eset shiftwidth=1
Röda , 71 bytes
Experimente online!
fonte
JavaScript (ES6), 80 bytes
fonte
Python 3,
107105 bytesToma um int de Stdin
fonte
MATL , 34 bytes
Experimente no MATL Online!
Explicação
fonte
PowerShell ,
76, 74 bytesNota: o exemplo online contém um pouco de quebra como demonstração. Coloque em uma função ou script PoSH para executar.
Experimente online!
fonte
' '*$i++
vez de' '*($n-$_)
.C, 131 bytes
Experimente online!
fonte
i,j;f(n){for(p(" ");i++<n*2;p("_"));for(p("\n/%*c\n",n*2+1,92);j++<n+1;p("%*c%*c\n",j,92,(n-j)*2+3,47));}
Pyth, 44 Bytes
tente!
explicação
O código consiste em 3 partes:
fonte
Python3, 104 bytes
O programa pega um número inteiro de STDIN e retorna a jóia para STDOUT.
fonte
Pip , 43 bytes
42 bytes de código, +1 para
-n
sinalizador.Recebe entrada como um argumento de linha de comando. Experimente online!
Explicação
Constrói as duas primeiras linhas separadamente e o restante da joia com uma operação de mapa:
Outra solução
Também 42 + 1 bytes, desta vez com o
-l
sinalizador:TIO
fonte
Pitão, 38 bytes
fonte
C, 115 bytes
Experimente online!
C, 123 bytes
Embora o desafio não exija isso, às custas de 8 bytes, a função pode ser reutilizada (a primeira solução economiza 8 bytes, contando com a inicialização implícita de variáveis globais).
Experimente online!
fonte
Lote, 152 bytes
Testes:
fonte
C #, 187 bytes
Tenho certeza de que existe uma solução mais compacta, mas esta é minha primeira tentativa:
Experimente online ..
fonte
JavaScript (ES6), 93 bytes
Demo
Mostrar snippet de código
fonte
dc , 121 bytes
Experimente online!
fonte
Perl 5
10994 + 1 (para sinalizador -p) = 95 bytesExperimente Online!
Pode ser executado assim:
Ungolfed
Explicação
fonte