Um quine cíclico meio cardinal é um quine cíclico com dois estados, um perpendicular ao outro.
Regras
Você pode decidir qual rotação deseja implementar, no sentido horário ou anti-horário.
Uma vez rotacionado, quaisquer lacunas no seu código devem ser substituídas por espaços para preservar o posicionamento.
Seu programa deve atender à definição da comunidade de um quine .
Isso é código-golfe, e o programa mais curto em cada idioma vence. Seu primeiro programa é usado para sua contagem de bytes.
As brechas padrão são proibidas.
Exemplos
Se o seu programa é:
$_='print';eval
A próxima iteração deve ser:
$
_
=
'
p
r
i
n
t
'
;
e
v
a
l
ou
l
a
v
e
;
'
t
n
i
r
p
'
=
_
$
que deve gerar o programa original:
$_='print';eval
Se o seu programa é:
;$_=';
;$_=';
print
A próxima iteração deve ser:
;;
''t
==n
__i
$$r
;;p
ou:
p;;
r$$
i__
n==
t''
;;
que deve gerar o programa original:
;$_=';
;$_=';
print
code-golf
quine
source-layout
Dom Hastings
fonte
fonte
Respostas:
CJam ,
191715 bytesExperimente online! Experimente a rotação.
Explicação
No código girado, temos feeds de linha em todos os lugares:
Como Lynn notou no desafio de quine anterior do Dom, a inserção de feeds de linha ainda forma um quine válido, porque os feeds de linha dentro do bloco serão retidos literalmente de qualquer maneira, e também haverá feeds de linha na
"_~"
string para fazer com que esses dois caracteres no final apareçam em seus caracteres. linha própria. Portanto{s"_~"+...}_~
(com linefeeds) ainda é uma estrutura de quine válida (embora haja um feed de linha adicional no final da string).N*
agora insere ainda mais feeds de linha nessa string, mas nós realmente não nos importamos: porque agora""-
há um feed de linha dentro dessa string para remover todos os feeds de linha da representação do programa. Então, acabamos com a forma horizontal do código novamente, desfazendo a rotação.fonte
Stax , 28 bytes
Execute e depure o primeiro formulário
Execute e depure o segundo formulário
fonte
> <> , 22 bytes
Experimente online!
Rodado no sentido anti-horário:
Experimente online!
O primeiro imprime a linha ao contrário, com as novas linhas intercaladas, e o segundo imprime a linha ao contrário, sem as novas linhas.
fonte
05AB1E ,
3634 bytesTente a primeira iteração ou Tente a próxima iteração
fonte