क्या आप कभी 3 डी आकृतियों को देखते हैं और सोचते हैं कि हमारे पास 2 आयाम हैं। तो चलिए 1D में 3D बनाते है! (देखो, वहां मैंने क्या किया था?)
कार्य
क्यूब के 2 डी प्रतिनिधित्व (नीचे लेआउट) को देखते हुए, पॉइंटर्स के आधार पर, इसे एक स्ट्रिंग में समतल करें।
द क्यूब
यह ,
कोनों ( <>v^/
) और कोनों ( ) पर संकेत से भरा घन का लेआउट है । नेविगेशन पॉइंटर (एनपी) उस कार्यक्रम को शुरू करता है जहां दिखाया गया है।
| NP begins here, moving right.
V
>,,,,,,,,,,,,,,,,,,v
, ,,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
/,,,,,,,,,,,,,,,,,,/ /
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, ,,
^,,,,,,,,,,,,,,,,,,<
एनपी एक कोने से मिलने तक शुरू से ही सही चलती रहती है। प्रत्येक कोने में एक डिफ़ॉल्ट दिशा होती है, जब तक कि एक पॉइंटर द्वारा कोने पर ओवरराइड नहीं किया जाता है, एनपी को एक नई दिशा में इंगित करेगा। उन्हें उपरोक्त आरेख पर दिखाया गया है। कार्यक्रम में पॉइंटर्स हैं v^<>/
( /
लेआउट के कारण या तो नीचे या ऊपर अंक, दोनों के बीच कभी कोई भ्रम नहीं होगा)
जब यह ¶
प्रतीक तक पहुँचता है तो एनपी चलना बंद कर देता है (हाँ मुझे पता है कि यह एक बहु-बाइट चरित्र है, इससे निपटें)। प्रत्येक वर्ण जिस पर चला जाता है उसे अंतिम आउटपुट स्ट्रिंग में जोड़ा जाता है, बिंदुओं, नो-ऑप ( ,
) और ¶
प्रतीक को छोड़कर ।
इनपुट
इनपुट एक बहु-पंक्ति स्ट्रिंग होगा जो गैर-व्हॉट्सएप वर्णों के साथ CUBE के लेआउट से मेल खाता 0x21
है 0x7E
और ईओएफ के कम से कम एक उदाहरण में सीमा के किसी भी वर्ण के साथ प्रतिस्थापित किया गया है।
आप इनपुट के रूप में ले सकते हैं:
- एक बहुस्तरीय स्ट्रिंग
- तार की एक सूची जहां प्रत्येक पंक्ति सूची में एक नया तत्व है
- तार की एक 2 डी सूची जहां प्रत्येक पंक्ति एक सूची में टूट जाती है
उत्पादन
क्यूब, सिंगल लाइन स्ट्रिंग में समतल हो गया।
सशर्त सूचक
एनपी का एक बूलियन मूल्य है जिसका उपयोग "सशर्त" पॉइंटर नामक किसी चीज़ के लिए किया जाता है जो शुरू होता है true
।
"सशर्त" सूचक ( ?
) एक सूचक जो एनपी मूल्य के बीच वैकल्पिक जाएगा true
और false
हर बार यह प्रयोग किया जाता है। सशर्त पॉइंटर्स केवल उन प्रभावों को लेते हैं जब कोनों पर उपयोग किया जाता है जहां 3 ट्रैक (3-पॉइंट कॉर्नर) मिलते हैं। अगर मान true
एनपी सशर्त पॉइंटर तक पहुंचता है, तो एनपी सीयूबीई छवि में डिफ़ॉल्ट दिशा में चला जाता है और, निर्देशित होने के बाद , एनपी मूल्य टॉगल किया जाता है। इसलिए, यदि यह चालू है false
, तो एनपी गैर-डिफ़ॉल्ट दिशा का अनुसरण करता है।
एक उदाहरण कभी नहीं होगा जहां एनपी एक सशर्त की ओर जाता है और डिफ़ॉल्ट दिशा वह दिशा है जहां से यह आया था। कल्पना कीजिए कि यह सामने वाले के बाएं कोने में है और वर्तमान में NP मान है true
:
NP direction
/
,
,
,,,?
,
,
यह कभी भी नहीं होगा क्योंकि डिफ़ॉल्ट दिशा इसे वापस उसी तरह दिखा देगी जो यह था।
यदि सशर्त सूचक 3-बिंदु कोने पर है:
- इसे अंतिम स्ट्रिंग में नहीं जोड़ा गया है
- एनपी मूल्य के बीच
true
औरfalse
बाद में एनपी मूल्य निर्देशित किया जाता है। - यदि NP मान है
true
, तो NP डिफ़ॉल्ट दिशा में पुनर्निर्देशित होता है। अन्यथा, इसे गैर-डिफ़ॉल्ट दिशा में पुनर्निर्देशित किया जाता है।
यदि यह एक ट्रैक या 2-बिंदु कोने पर है:
- इसे अंतिम स्ट्रिंग में जोड़ा जाता है
- मूल्य को टॉगल किया जाता है
- आईपी निर्देशित नहीं है
देखने के लिए कुछ
यदि कोई पॉइंटर ट्रैक पर है और यह रिक्त स्थान की ओर इशारा नहीं करता है , तो एनपी को नए ट्रैक में निर्देशित किया जाता है, अगले वर्ण को अंतिम स्ट्रिंग में जोड़ता है और एनपी को दाएं से 90 डिग्री घुमाता है।
abcd
>e
g f
/
NP direction
के लिए समतल होगा
(...) gef (...)
नहीं
(...) g>def (...)
एक /
सूचक एनपी को इस उदाहरण में पुनर्निर्देशित नहीं करता है क्योंकि यह एक अंतरिक्ष में पुनर्निर्देशित कर सकता है
f
e
> ab/d
बन जाएगा ab/def
नियम
- क्यूब की चौड़ाई, ऊंचाई और गहराई बदल सकती है
- क्यूब की ऊंचाई और गहराई हमेशा समान होगी और आधी चौड़ाई होगी, इसलिए चौड़ाई हमेशा समान रहेगी।
- चौड़ाई (समावेशी) 6 और 60 के बीच होगी।
- हमेशा एक ईओएफ (
¶
) होगा जो एनपी तक पहुंच सकता है। उदाहरण के लिए क्यूब में ऐसा कुछ नहीं होगा:<¶>
क्योंकि एनपी कभी भी क्यूब तक नहीं पहुंच पाएगा। - क्यूब के ट्रैक्स में स्पेस नहीं डाला जा सकता है, अंतिम स्ट्रिंग में कभी भी स्पेस नहीं होना चाहिए।
- यदि एक पॉइंटर को पटरियों में से एक में रखा जाता है (एक कोने पर नहीं) और यह एनपी को अंतरिक्ष में निर्देशित करेगा, तो एनपी स्थिर रहता है और चरित्र को अंतिम स्ट्रिंग में जोड़ा जाता है।
- हालाँकि, यदि पॉइंटर इसे ट्रैक पर रखता है, तो NP निर्देशित होता है और पॉइंटर वर्ण जोड़ा नहीं जाता है
- चूंकि नो-ऑप्स (
,
) अंतिम स्ट्रिंग में नहीं जोड़े गए हैं, अंतिम स्ट्रिंग में कोई भी नहीं होना चाहिए,
। - आप मान सकते हैं कि इनपुट सही होगा।
- यह बाइट्स जीत में एक कोड-गोल्फ इतना छोटा कोड है !
उदाहरण
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