Seu trabalho é bastante simples, escreva um programa que imprima e Hello, world!
, quando torcido, cria um programa que imprime Twister!
.
Como as cordas são torcidas
O algoritmo de torção é muito simples. Cada coluna é deslocada para baixo pelo seu índice (col 0 desce 0, col 1 move 1, ...). A mudança de coluna envolve o topo. É mais ou menos assim:
a
ba
cba
----
cba
cb
c
Com tudo sob a linha de embalagem para o topo. Exemplo real:
Original:
\\\\\\\\\\\\
............
............
............
Twisted:
\...\...\...
.\...\...\..
..\...\...\.
...\...\...\
(Mais exemplos e trava-línguas no seu idioma favorito estão aqui )
Pontuação
Seu programa deve ser um retângulo acolchoado. Isso é código-golfe, e a menor contagem de bytes ganha!
Regras
- Seu primeiro programa deve ser impresso
Hello, world!
. Apenas uma nova linha à direita é permitida. - Seus primeiro e segundo programas devem estar no mesmo idioma.
- Seu segundo programa deve ser impresso
Twister!
. Apenas uma nova linha à direita é permitida. - Seu programa deve ter pelo menos 2 linhas e 2 colunas.
½
e obtém a raiz quadrada de um número. Qual dos dois deve ser considerado a nova linha para este desafio?Respostas:
Geléia ,
333129 bytesOriginal
Experimente online.
Torcido
Experimente online!
Como funciona
Em cada programa, cada linha define um link. O último é o link principal e é executado quando o programa é iniciado. Como não há referências ao primeiro link, ele é simplesmente ignorado.
Nos dois programas,
“ɗ⁻%OḶ$“¡¦ḟṠ»
gera a lista['Hello, world!', 'Twister!']
, usando a compactação estática de dicionário de Jelly .A única diferença entre o código original e distorcido é o último caractere do link principal.
Ḣ
seleciona a primeira sequência da lista eṪ
a última.fonte
Python 2, 59 bytes
Torcido:
Basicamente, coloca os
Twister!
dados nos índices ímpares da string e muda da remoção dos dois primeiros caracteres (preenchimento) para a remoção de todos os outros caracteres.fonte
print " Hello, world!" [2::]
Fissão ,
215162565350 bytesAqui está um começo:
Experimente online!
Quando torcido:
Experimente online!
Explicação
O
Hello, world!
código é bastante simples:D
gera um único átomo, descendo.\
(espelhos) desviam para a segunda coluna."Hello, world!"
imprime a sequência necessária.1
é um portal. Ele teleporta o átomo para o próximo1
em ordem de leitura, mantendo sua direção (que é a próxima ar
).;
qual destrói o átomo e finaliza o programa.O fluxo de controle para o
Twister!
código é um pouco mais ... distorcido ...D
gera o átomo.\
desvia para a direita, para o1
.1
. O átomo atinge oo
que apenas muda sua massa, mas podemos ignorá-lo. O código é contornado para que o átomo atinja o mesmo1
novamente, pulando duas linhas. Mais uma vez, podemos ignorar ol
, o átomo envolve e atinge o1
novamente. Agora não há mais nada1
no código, então o átomo volta para1
o topo.\
, agora caindo novamente."Twister!"
imprime o código necessário.1
teleporta o átomo mais uma vez, após o primeiro;
, mas há outro;
aguardando o término do programa.fonte
Fissão , 35 bytes
Abordagem de fissão nº 3 (nº 4 contando a que editei no meu primeiro post).
Experimente online!
Experimente online!
Explicação
Esta é atualmente a mais simples das soluções de fissão. Nos dois programas, existem dois pontos de entrada:
R
cria um átomo à direita eL
um átomo à esquerda. Em ambos os casos, o;
destrói um deles imediatamente.Agora no
Hello, world!
programa, o átomo primeiro imprime metade da cadeia com"Hello, "
, então\
e/
(que são espelhos) desviam o átomo para a segunda linha que vai para a esquerda."world!"
(leia na direção do átomo em movimento) imprime o restante da string.L
agora não funciona e;
destrói esse átomo, encerrando o programa.O
Twister!
programa é essencialmente o mesmo, mas girado em 180 graus. Desta vez, oL
átomo sobrevive e começa a imprimir com"Twist"
. O\
e/
novamente desvia-o para a outra linha, agora indo para a direita."er!
imprime o restante da string,R
não funciona e;
finaliza o programa.fonte
Cisão, 53
Experimente online!
e torcido:
Experimente online!
fonte
Japt,
676157 bytesEconomizou 6 bytes graças a @JAtkin, 4 bytes graças a @Ian
Torcido:
Teste on-line: Original , Torcido
Como funciona
fonte
Twister!
substituindo os espaços por.
."T.w.i.s.t.e.r.!. . . . . "k".(newline)"H.e.l.l.o.,. .w.o.r.l.d.!"k".
Python, 398
414 380 456bytes *Consegui atualizar para estar em conformidade com as regras, mas ainda hesito em considerá-lo competitivo. Como as linhas comentadas são necessárias para sua execução, eu as incluí na contagem de bytes
Esta solução não segue as regras, pois imprimirá mensagens de erro além da saída permitida.Eu só queria ver se isso poderia ser feito em python. Pode, mas é não muito.
Quando torcido se torna
fonte
rint '
todas as linhas.C (gcc) , 87 bytes
Sem torção
Experimente online!
Torcido
Experimente online!
fonte
BrainFuck,
467367285 bytesSem torção
Experimente online!
Torcido
Experimente online!
fonte