ハーフカーディナルサイクリッククインを作成する


18

ハーフカーディナルサイクリッククインは、2つの状態があり、一方が他方に垂直なサイクリッククインです。

ルール

時計回りまたは反時計回りのどちらの回転を実装するかを決定できます。

回転した後、コード内のギャップはスペースで置き換えて、位置を維持する必要があります。

あなたのプログラムは、ウマのコミュニティ定義を満たさなければなりません。

これはので、各言語で最短のプログラムが勝ちます。あなたの最初のプログラムは、あなたのバイト・カウントのために使用されています。

標準的な抜け穴は禁止されています。

プログラムが次の場合:

$_='print';eval

その場合、次の反復は次のいずれかでなければなりません。

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

または

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

元のプログラムを出力する必要があります:

$_='print';eval

プログラムが次の場合:

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

その場合、次の反復は次のいずれかでなければなりません。

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

または:

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

元のプログラムを出力する必要があります:

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



1
@dylnanいいえ、他の人は相互のクインを要求しません。
マーティンエンダー

1
これまでのところ答えを見てきましたが、本当の課題は反時計回りの1つまたは複数のラインを持つクイン(回転が転置または単に改行を挿入することとは異なるように)になると思います。
ウェイジュン周

1
2つのプログラムを異なるものにする必要がある場合があります。そうでなければ、偶然に回転対称性を持つクインが有効な答えになります。
マーティンエンダー

回答:


14

CJam19 17 15バイト

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

オンラインでお試しください! 回転してみてください。

説明

{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.
}_~

回転したコードでは、どこにでも改行があります。

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

リンがドムの以前のクワイン挑戦に気づい改行を挿入するブロック内の改行は、とにかくそのまま保持されますので、実際にはまだ、有効なQUINEを形成し、また内改行があるであろう"_~"彼らの上に表示最後に、これら2つの文字を作成する文字列独自の行。そのため、{s"_~"+...}_~(ラインフィードを使用して)まだ有効なクインフレームワークです(ただし、文字列の最後に追加のラインフィードがあります)。N*これで、さらに多くの改行がその文字列に挿入されますが、実際には気にしません。""-文字列内に改行があり、プログラム表現からすべての改行が実際に削除されるためです。そのため、再び水平形式のコードになり、回転を元に戻します。



5

> <>、22バイト

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

オンラインでお試しください!

反時計回りに回転:

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

オンラインでお試しください!

最初の行は改行を挿入して行を逆に印刷し、2番目の行は改行なしで行を逆に印刷します。


これは非常に賢いです!
エソランジングフルーツ

ハードモードで近づいてきました!
ドムヘイスティングス

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.