3Dシェイプを見て、2つの多くの次元があると思いますか。それでは、3Dを1Dにしましょう!(私がそこで行ったことを参照してください?)
仕事
キューブの2D表現(下のレイアウト)を指定し、ポインターに基づいて単一の文字列にフラット化します。
キューブ
これは、操作なし(,
)とコーナーのポインター()で満たされたキューブのレイアウトです<>v^/
。ナビゲーションポインター(NP)は、表示されている場所でプログラムを開始します。
| NP begins here, moving right.
V
>,,,,,,,,,,,,,,,,,,v
, ,,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
/,,,,,,,,,,,,,,,,,,/ /
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, ,,
^,,,,,,,,,,,,,,,,,,<
NPは、最初からコーナーに達するまで右に移動し続けます。各コーナーにはデフォルトの方向があり、ポインターでコーナーでオーバーライドされない限り、NPは新しい方向に向けられます。それらは上の図に示されています。プログラム内のポインターは、v^<>/
(/
それが下または上にあるポイントです。レイアウトのために、2つの間に混乱はありません)
NPは、¶
シンボルに到達すると移動を停止します(はい、これはマルチバイト文字であることがわかっています。対処します)。それが通過する各文字は、ポインター、no-op(,
)、および¶
シンボルを除いて、最終出力文字列に追加されます。
入力
入力のレイアウトと一致する複数行の文字列になりますCUBE非空白文字とは、範囲内の任意の文字に置き換える0x21
に0x7E
し、少なくとも EOFの1つのインスタンス。
次のように入力することができます。
- 複数行の文字列
- 各行がリストの新しい要素である文字列のリスト
- 各行がリストに分割されている文字列の2Dリスト
出力
単一の線ストリングにフラット化されたキューブ。
条件付きポインター
NPには、で始まる「条件付き」ポインターと呼ばれるものに使用されるブール値がありますtrue
。
「条件」ポインタは、( ?
)の間にNP値を交互うポインタであるtrue
とfalse
、それが使用される時間毎。条件付きポインターは、3つのトラック(3ポイントコーナー)が交わるコーナーで使用した場合にのみ効果があります。値がtrue
NPが条件付きポインターに達した場合、NPはCUBEイメージ内のデフォルトの方向に移動し、指示された後、NP値が切り替わります。したがって、オンのfalse
場合、NPはデフォルト以外の方向に従います。
NPが条件付きになり、デフォルトの方向が元の方向になる場合はありません。これが前面の左隅であり、NP値が現在true
次のようになっていると想像してください。
NP direction
/
,
,
,,,?
,
,
デフォルトの方向では、元の状態にミラーバックされるため、これは決して起こりません。
条件付きポインターが3ポイントコーナーにある場合:
- 最終的な文字列には追加されません
- NP値は、NPが指示された後
true
と指示されたfalse
後に切り替えられます。 - NP値がの場合、NP
true
はデフォルトの方向にリダイレクトされます。それ以外の場合は、デフォルト以外の方向にリダイレクトされます。
トラックまたは2ポイントコーナーにある場合:
- 最終文字列に追加されます
- 値が切り替えられます
- IPがされていない監督します
気をつけるべきこと
ポインターがトラック上にあり、スペースを指していない場合、NPは新しいトラックに向けられ、最終文字列に次の文字を追加し、NPを右に90度回転します。
abcd
>e
g f
/
NP direction
に平らになるだろう
(...) gef (...)
ない
(...) g>def (...)
/
そう空間にリダイレクトできるようにポインタがこの例でNPをリダイレクトしません
f
e
> ab/d
になるだろう ab/def
ルール
- 立方体の幅、高さ、深さが変わる場合があります
- 立方体の高さと深さは常に同じで、幅の半分になるため、幅は常に均等になります。
- 幅は6〜60の間です(両端を含む)。
¶
NPが到達できるEOF()が常に存在します。たとえば、キューブ内にこのようなものが存在することはありません<¶>
。NPはキューブに到達できないためです。- キューブのトラックにスペースを挿入できないため、最終的な文字列にスペースを入れることはできません。
- ポインタがトラックの1つ(コーナーではない)に置かれ、NPをスペースに向けると、NPは一定のままで、文字が最終文字列に追加されます。
- ただし、ポインターがそれをトラック上に保持している場合、NPは指示され、ポインター文字は追加されません。
- no-op(
,
)は最終文字列に追加されないため、最終文字列には何も含まれて,
はなりません。 - 入力が正しいと仮定できます。
- これはコードゴルフなので、バイト単位の最短コードが勝ちです!
例
Input
Output
-----
Input
Output
abcdef
¶ ,g
q,,,,, h
p ,i
onmlkj
abcdefghijklmnopq
-----
>,,,,,,,,,,,,,,,,,,v
¶ ,,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
/,,,,,,,,,,,,,,,,,,/ /
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, ,,
^,,,,,,,,,,,,,,,,,,<
nothing
-----
Mr/~gm,Vc!r,0cbmPC@Zg9jb)7=m^ppwN*Nuk){r
c ¶Z
J ; #
e j 8
] b "
# ` 4
h $ -
p n 2
L S P
B ; R
@ J D
E N <
O \ p
B y =
| 9 ;
T x [
6 o k
! L =
E K ~
>mjmz6,?A*Q)^.a:IpGP"^bK}DSXL)2F!BV|"m6/ T
a A 6
5 = p
1 i R
4 / ?
- Z (
1 " `
' 0 {
N p M
O * K
Z J $
" ( d
4 + o
f U g
i v b
U ~ L
U M h
g ^ D
2 (g
5]u*n<Ldn</9/XQyC444Va\m}W3Rf,rp"a@5cZB0
(Newlines added for readability)
Mr/~gmVc!r0cbmPC@Zg9jb)7=m^ppwN*Nuk){rZ#8"4-2PRD<p=;[k=~T
6pR?(`{MK$dogbLhDg0BZc5@a"prfR3W}m\aV444CyQX/9/ndLn*u]52g
UUif4"ZON'1-415amjmz6?A*Q)^.a:IpGP"^bK}DSXL)2F!BV|"m6KLox9
y\NJ;Sn$`bj;
-----
NEWYORKCITYBABY!
¶ ,,
, , ,
, , ,
, , ,
, , ,
, , ,
,,,,,,,,,,,,,,,, ,
, , ,
, , ,
, , ,
, , ,
, , ,
, ,,
,,,,,,,,,,,,,,,,
NEWYORKCITYBABY!
-----
/{Y!_(=-)s<e!D^<+<+1o30d>QOx9kfu?3X2I:8],t>Ye~,Y9/6;u@
] >Y
! 1 )
c 7 8
^ K &
f K 9
M } O
s _ ?
h N e
? u ,
g = s
> Q M
a 0 9
b c (
h { c
[ m *
I R %
K E >
u 5 n
W f ]
} | y
F E q
) < ;
X L S
F M |
u * Z
>XZpJ=L`+8ONRk?T7$qVr6-U^f14{>>ABEEP`Mjx&T[/&o*F=*qq{/ e
¶ < ^
+ P C
. x m
; ^ >
y 4 b
5 v `
Q B c
2 e r
a x I
3 1 Y
Q v `
w ; o
* S h
E b S
r 6 P
M ` l
% M A
- ` "
j \ s
} ~ J
$ h c
% p O
I Z Z
] N E
` 3<
x^}}SI"-a3[%7U5EV}"UM?Aov|E_yjrMt<HAQ@}QAABO&y//R0$\2p
(Newlines added for readability)
]!c^fMsh?g>abh[IKuW}F)XFuXZpJ=L`+8ONRk?T7$qVr6-U^f14{ABEE
P`Mjx&T[/&o*F=*qq{*ML<E|f5ERm{c0Q=uN_}KK71Y)8&9O?esM9(c*%
>n]yq;S|Ze^Cm>b`crIY`ohSPlA"sJcOZE3NZph~\`M`6bS;;Sb6`M`\~
hpZN3p2\$0R//y&OBAAQ}@QAHtMrjy_E|voA?MU"}VE5U7%[3a-"IS}}^
x`]I%$}j-%MrE*wQ3a2Q5y;.+
-----
%:biv+|?
¶ \+
T c ,
?{yX<//v "
i [ @
Q Tj
U8sUNl.?
%:biv+|+"@jT[[T.lNUs8UQi{yXXy{T
-----
FCf2hoYA)&*j
F ¶#
3 p (
& ~ w
; * t
39Hq{F'MmmO/ 9
5 \ D
- | }
8 c l
a 25
GKa"<0/7MG[?
FCf2hoYA)&*j#(wt9D}l5[GM7/0"aKGa8-53;&3FFCf2hoYA)&*j#(wt9D}l52c|\*~p
-----
#S^[WNk3;9v;e2\h!@CI#Il?
G g`
$ 2 \
V 9 S
m Y b
6 ) *
U ' V
[ g V
I 8 X
< T U
K ¶ C
?ozMt+xxxxutvQgkx&D9I/<v '
w K p
V y h
( R y
e P i
] ! x
Z / s
y w '
# X 4
c ~ W
Z E,
~IdXPYS.Lc49lC~vjULUBv.?
(Newlines added for readability)
#S^[WNk3;9v;e2\h!@CI#Il`\Sb*VVXUC'phyixs'4WE~Xw/!PRyKKyRP!/wX~E
.vBULUjv~Cl94cL.SYPXdI~Zc#yZ]e(VwozMt+xxxxutvQgkx&D9I//I9D&xkgQ
vtuxxxx+tMzoK<I[U6mV$G#S^[WNk3;9v;e2\h!@CI#Ilg29Y)'g8T