> <> , 106 104 বাইট
আমি অনুভূতি পেয়েছি যে> <> এটির জন্য সেরা ভাষা নাও হতে পারে তবে আমি এই পোস্টটি ছেড়ে দিতে এবং ছাড়ার জন্য অনেক দূরে এসেছি। *
লাইন 4 শেষে একটি স্থান হতে অনুমিত হয়। এই কোডটি কীভাবে অবিশ্বাস্যরূপে বোকা দেখাচ্ছে তা আপনি পছন্দ করেন না? এটি অনলাইনে চেষ্টা করুন ।
<v?(0:i
v>~" ## "}}l:::
>"#"o1-:?!v02.>~a"#"oo
"-2ooa"#"~<.31v!?:-1o"
7v?=3loroo"#"a<.4
.>";^"e3pa2p093
পয়েন্টারটি কীভাবে সরানো হয় তার একটি ধারণা দেওয়ার জন্য এখানে দিক পরিবর্তনকারীদের ব্যতীত একটি সংস্করণ রয়েছে (দ্রষ্টব্য যে আমি "টেলিপোর্ট" বিবৃতি রেখে গেছি, অর্থাত .
)।
দিক প্রবাহ:
<v
v>
> v >
< v
v <
>
ব্যাখ্যা
আমার স্ট্যাকটির দৃশ্যায়ন ইনপুটটির ভিত্তিতে তৈরি হবে input
। > <> একটি দ্বিমাত্রিক ভাষা, সুতরাং পয়েন্টারটি লাইনের মাঝে কোথায় চলেছে সেদিকে মনোযোগ দিন, কারণ এটি এর নীচে কোড চালায় (এই <>v^
কোডটিতে প্রাথমিকভাবে দিক পরিবর্তন করতে ব্যবহৃত হয়)। আমি যেখানে থেকে পয়েন্টার শুরু হয় আমার ব্যাখ্যা শুরু করব। মনে রাখবেন যে পয়েন্টারটি পঞ্চম লাইনের পরে পিছনে চলে যাওয়ার সাথে সাথে দুটি লাইন পুনরাবৃত্তি হবে।
আমি <>> সম্পর্কে যা সর্বদা শীতল মনে করি তা হ'ল তার নিজস্ব উত্স কোডটি সংশোধন করার ক্ষমতা এবং আমি এই প্রোগ্রামটিতে এটি ব্যবহার করি। লাইন 3 এবং 4 প্রতিটি অক্ষরের একটি পরিবর্তনের মাধ্যমে শেষ দুটি লাইন মুদ্রণ করতে পুনরায় ব্যবহার করা হয়।
লাইন 1: ইনপুট লুপ
<v?(0:i
< change direction to left
(0:i checks if input is less than 0 (no input defaults to -1)
v? change direction to down if so
স্ট্যাক: [-1,t,u,p,n,i]
লাইন 2: আউটপুট তৃতীয় লাইন উত্পন্ন
v>~" ## "}}l:::
>~" ## "}} remove -1 (default input value) from stack and pads with # and spaces
l::: push 4 lengths of padded input
স্ট্যাক: [9,9,9,9,#, ,t,u,p,n,i, ,#]
লাইন 3: আউটপুট প্রথম লাইন মুদ্রণ
>"#"o1-:?!v02.>~a"#"oo
>"#"o print "#"
1- subtract 1 from length (it's at the top of the stack)
:?!v move down if top of stack is 0
স্ট্যাক: [0,9,9,9,#, ,t,u,p,n,i, ,#]
আউটপুট:
#########
লাইন 4: আউটপুট দ্বিতীয় লাইন মুদ্রণ
"-2ooa"#"~<.31v!?:-1o"*
-2ooa"#"~< pops 0, prints newline, "#", then decrements length by 2
" o"* prints space (* is supposed to be space char)
-1 decrements top of stack
.31v!?: changes direction to down if top of stack is 0, else jumps back to "
স্ট্যাক: [0,9,9,#, ,t,u,p,n,i, ,#]
আউটপুট ( *
স্থান প্রতিনিধিত্ব করে):
#########
#*******
লাইন 5: আউটপুট তৃতীয় লাইন মুদ্রণ
7v?=3loroo"#"a<.4
oo"#"a< prints "#",newline
r reverses stack
7v?=3lo .4 outputs until stack has 3 values, then changes direction to down
স্ট্যাক: [9,9,0]
আউটপুট:
#########
# #
# input #
লাইন:: আউটপুটের চতুর্থ এবং পঞ্চম লাইনগুলি মুদ্রণের জন্য নিজেকে সেট করে
.>";^"e3pa2p093
>";^" push ";",then "^"
e3p place "^" as the fifteenth character on line 4
a2p place ";" as the eleventh character on line 3
0 push a value (value doesn't matter -- it will be deleted)
. 93 jump to the tenth character on line 4
স্ট্যাক: [0,9,9,0]
লাইন 4: আউটপুট চতুর্থ লাইন মুদ্রণ করুন
"-2ooa"#"~<.31^!?:-1o"*
ooa"#"~< delete 0 (unnecessary value pushed), then print newline,"#"
-2 subtract two from value on top of stack (length)
" .31^!?:-1o"* print space until top of stack is 0, then change direction to up
স্ট্যাক: [0,9,0]
আউটপুট ( *
স্থান প্রতিনিধিত্ব করে):
#########
# #
# input #
#*******
লাইন 3: আউটপুট শেষ লাইন মুদ্রণ করুন
"#"o1-:?!;02.>~a"#"oo
>~a"#"oo pop top of stack, print "#", newline
"#"o1-:?!;02. print "#" until top of stack is 0, then terminate
স্ট্যাক: [0,0]
আউটপুট:
#########
# #
# input #
# #
#########