Introdução
Os desafios do alfabeto estão no nosso DNA, então vamos mostrá-lo.
Desafio
Imprima exatamente o seguinte texto:
AaBbCc cCbBaA
BbCcDd dDcCbB
EeFfGg gGfFeE
HhIiJj jJiIhH
KkLlMm mMlLkK
NnOoPp pPoOnN
QqRrSs sSrRqQ
TtUuVv vVuUtT
WwXx xXwW
Yy yY
ZZ
zz
ZZ
Yy yY
WwXx xXwW
TtUuVv vVuUtT
QqRrSs sSrRqQ
NnOoPp pPoOnN
KkLlMm mMlLkK
HhIiJj jJiIhH
EeFfGg gGfFeE
BbCcDd dDcCbB
AaBbCc cCbBaA
Regras
- Você deve corresponder ao caso de cada letra
- São permitidas novas linhas e / ou espaços à direita e / ou à esquerda
Ganhando
O código mais curto em bytes vence.
code-golf
ascii-art
kolmogorov-complexity
alphabet
Beta Decay
fonte
fonte
Respostas:
Vim (sem ferramentas externas), 106 bytes
Novas linhas para maior clareza:
Aqui
↵
está Return,→
está certo,♥
está Escape,ʌ
está em CTRL-V eð
está em Delete.fonte
Python 2, 230 bytes
fonte
PowerShell v2 +,
175169163154 bytesExperimente online!
Abusa do fato de que o padrão
Write-Output
no final da execução insere uma nova linha entre os elementos.A primeira linha constrói os ramos. Passamos dois intervalos correspondentes aos valores ASCII para as letras maiúsculas, cada iteração gera uma
char
matriz dessa letra e dessa letra+32
(que é o ponto ASCII minúsculo). Isso é-join
editado em uma cadeia longa e,-split
em seguida, a cada seis elementos (encapsulados em parênteses para que sejam preservados), seguido de a-ne''
para extrair os elementos vazios como resultado da divisão, formando assim uma matriz de cadeias.Essas cordas em uma matriz get matriz concatenação a acrescentar sobre os
WwXx
,Yy
eZ
os elementos, em seguida, um Padright 10
para torná-los toda a largura apropriada. Neste ponto, temos uma matriz de seqüências de caracteres como a seguinte (um elemento por linha).Essa matriz inteira é canalizada para outro loop para construir as seqüências espelhadas com
-join
e reversão da matriz[9..0]
.Salvamos as seqüências resultantes
$x
e as colocamos entre parênteses para também colocar uma cópia no pipeline.A próxima linha coloca a
zz
sequência no pipeline e, em seguida, a$x
matriz na ordem inversa. Tudo isso é deixado no pipeline e a saída está implícita.-9 bytes graças ao mazzy.
fonte
'(.{6})'
em vez disso,(......)
eRightPad
espaços de cauda.Python 2 , 156 bytes
Experimente online!
512/(i**4+47)-1
que codifica quantos espaços adicionar antes de cada linha (
(-1)*' '
sendo igual a0*' '
).fonte
Python 2,
331241229 bytesGolf mais tarde.fonte
Lua, 212 Bytes
Simples o suficiente, baseado na resposta de TimmyD, mais ou menos. Constrói o braço superior esquerdo usando um pedaço muito pouco compactado, depois os dois espelhos ao mesmo tempo em torno de um 'zz' e imprime.
Experimente no Repl.It
fonte
05AB1E ,
4846403836 bytes-2 bytes (e a oportunidade de mais 10 com essa abordagem alternativa) graças a @MagicOctopusUrn .
Experimente online.
Explicação:
Veja esta minha dica 05AB1E (seção Como comprimir números inteiros grandes? ) Para entender por que
Ž3ô
é1008
eƵJ
é120
.fonte
•3ô•8.D120 6 1D)bí.Bí»…abcA¦«Dus.ιv1y.;}0ð:º.∊
"abc"
ele pode ser jogado por mais 6:•3ô•
pode serŽ3ô
;120 6 1D
pode serƵJ6XD
;…abcA¦«Dus.ι
pode seržRAu¦«Dl.ι
. :)í.Bí
paraTj
(funciona apenas na nova versão, mas não tenho certeza se é um bug ou intencional). Então, implicitamente, você ativou uma economia de 10 bytes no total com sua abordagem alternativa. : DžRAu¦«Dl.ιS
alternativaA¬žR:uSDl.ι
, poderia ser , mas infelizmente isso não salvará bytes. E, em0м.B
vez de,0ð:
é um byte a mais, em vez de menos. Meio que esperava que os espelhos incluíssem implicitamente espaços adicionando espaços à direita, para.B
que não fossem necessários, mas talvez seja melhor que não façam para outros desafios, eu acho.Stax ,
42413835 bytesExecute e depure
Atualização: houve um erro na solução de 41 bytes. (sim, mesmo que não tenha entrada) Enquanto o corrigia, encontrei mais 3 bytes para fazer a barba.
Atualize novamente: há concorrência em andamento, por isso removi mais 3 bytes de contingência.
Explicação: (de uma solução diferente, mas com tamanho idêntico)
Execute este
fonte
Matrizes , 105 bytes (não concorrentes )
Uau, eu encontrei muitos insetos. A única parte difícil desse desafio foi a cruz no meio. Isso faz quase metade da contagem de bytes.
Corra com a
-A 1
bandeiraExplicação:
Outro erro que ainda não corrigi é que a última parte
u{z1cX}
não funciona quando você coloca o corte após oX
. Irá investigar / corrigir.fonte
/// , 229 bytes
Experimente online!
fonte
PowerShell , 150 bytes
Experimente online!
fonte
Brainfuck, 456 bytes
Experimente online!
fonte
Python 3 , 215 bytes (não-concorrente)
Experimente online!
Adota algumas idéias das duas soluções Python 2, mas as aplica a uma abordagem usando join () que parece economizar alguns bytes. É possível que isso possa ser jogado ainda mais; Eu poderia revisitar isso mais tarde.
fonte
Ruby ,
177 ...145 bytesExperimente online!
fonte
Chiclete, 168 bytes
Experimente online!
Como esta é minha primeira submissão ao Bubblegum, pode não ser a solução ideal. Por favor cheque duas vezes.
fonte