Bangun setengah kardinal siklik quine

18

Half quine cyclic cardinal adalah quine cyclic dengan dua status, satu tegak lurus terhadap lainnya.

Aturan

Anda dapat memutuskan rotasi mana yang ingin Anda implementasikan, searah jarum jam atau berlawanan arah jarum jam.

Setelah diputar, celah apa pun dalam kode Anda harus diganti dengan spasi untuk mempertahankan pemosisian.

Program Anda harus memenuhi definisi komunitas quine .

Ini adalah sehingga program terpendek di setiap bahasa menang. Program pertama Anda digunakan untuk jumlah byte Anda.

Celah standar dilarang.

Contohnya

Jika program Anda adalah:

$_='print';eval

Maka iterasi berikutnya harus berupa:

$
_
=
'
p
r
i
n
t
'
;
e
v
a
l

atau

l
a
v
e
;
'
t
n
i
r
p
'
=
_
$

yang harus menampilkan program asli:

$_='print';eval

Jika program Anda adalah:

;$_=';
;$_=';
print

Maka iterasi berikutnya harus berupa:

;;
''t
==n
__i
$$r
;;p

atau:

p;;
r$$
i__
n==
t''
 ;;

yang harus menampilkan program asli:

;$_=';
;$_=';
print
Dom Hastings
sumber
Terkait .
Dom Hastings
1
Agak terkait.
Martin Ender
1
@ Dylnan Tidak, yang lain tidak meminta quine bersama.
Martin Ender
1
Setelah melihat jawabannya sejauh ini, saya pikir tantangan sebenarnya adalah berlawanan atau berlawanan dengan lebih dari satu baris (sehingga rotasi berbeda dari transposisi atau hanya menyisipkan baris baru).
Weijun Zhou
1
Anda mungkin ingin kedua program berbeda. Jika tidak, quines yang kebetulan memiliki simetri rotasi akan menjadi jawaban yang valid.
Martin Ender

Jawaban:

14

CJam , 19 17 15 byte

{s"_~"+N*""-}_~

Cobalah online! Coba rotasi.

Penjelasan

{s"_~"+  e# Standard quine framework. Puts a string representation of the entire
         e# program on the stack.
  N*     e# Riffle linefeeds into the string, which is effectively a clockwise
         e# rotation by 90°.
  ""-    e# Does nothing.
}_~

Dalam kode yang diputar, kami memiliki umpan baris di mana-mana:

{
s
"
_
~
"
+
N
*
"
"
-
}
_
~

Seperti yang Lynn perhatikan pada tantangan quine Dom sebelumnya, memasukkan umpan garis sebenarnya masih membentuk tanda quine yang valid, karena umpan garis di dalam blok hanya akan tetap dipertahankan kata demi kata, dan juga akan ada umpan garis dalam "_~"string untuk membuat kedua karakter pada akhirnya muncul pada mereka garis sendiri. Begitu{s"_~"+...}_~ (dengan linefeeds) masih merupakan kerangka quine yang valid (walaupun akan ada linefeed tambahan di akhir string). N*sekarang menyisipkan lebih banyak baris baris ke dalam string itu, tetapi kami tidak benar-benar peduli: karena sekarang ""-memiliki umpan baris di dalam string sehingga benar-benar menghapus semua baris baris dari representasi program. Jadi kita berakhir dengan bentuk kode horisontal lagi, membatalkan rotasi.

Martin Ender
sumber
5

> <> , 22 byte

 "2+}>oao#ov*48}}*d3'v

Cobalah online!

Diputar berlawanan arah jarum jam:

v
'
3
d
*
}
}
8
4
*
v
o
#
o
a
o
>
}
+
2
"

Cobalah online!

Yang pertama mencetak garis secara terbalik dengan baris baru diselingi, dan yang kedua mencetaknya secara terbalik tanpa baris baru.

Jo King
sumber
Ini sangat pintar!
Buah Esolanging
Bagus sedang mendekatinya pada mode keras!
Dom Hastings