জে , 82 72 66 বাইট
(ucp' #───│┌┐┬│└┘┴│├┤┼'){~]+]*3 3((2#.1 7 3 5{,);._3)0,.~0,.0,~0,]
ইনপুটটি 1 এবং 0 এর বুলিয়ান টেবিল। বিধিগুলিতে বলা হয়েছে যে বাক্সটি প্রতিটি গণনা করে তিনটিকে নয়, একটি বাইট হিসাবে চিহ্নিত করে এবং এটি এখানে প্রয়োগ করা হয়েছে।
ব্যবহার
f =: (ucp' #───│┌┐┬│└┘┴│├┤┼'){~]+]*3 3((2#.1 7 3 5{,);._3)0,.~0,.0,~0,]
m =: 1 0 1 1 1 1 0 1 1 0 1 , 1 1 0 1 0 0 1 1 0 0 1 ,: 0 0 0 1 1 1 1 0 0 1 1
m { ' #'
# #### ## #
## # ## #
#### ##
f m
│ ─┬── ┌─ │
└─ │ ┌┘ │
└──┘ ─┘
' #' {~ m =: 5 5 $ 1
f m
┌┬┬┬┐
├┼┼┼┤
├┼┼┼┤
├┼┼┼┤
└┴┴┴┘
' #' {~ m =: 5 9 $ 1 0
# # # # #
# # # #
# # # # #
# # # #
# # # # #
f m
# # # # #
# # # #
# # # # #
# # # #
# # # # #
ব্যাখ্যা
প্রথমে ইনপুটটি চারপাশে 0 এর সাথে প্যাড করা হবে।
] m =: 1 0 1 1 1 1 0 1 1 0 1 , 1 1 0 1 0 0 1 1 0 0 1 ,: 0 0 0 1 1 1 1 0 0 1 1
1 0 1 1 1 1 0 1 1 0 1
1 1 0 1 0 0 1 1 0 0 1
0 0 0 1 1 1 1 0 0 1 1
(0,.~0,.0,~0,]) m
0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 1 1 0 1 1 0 1 0
0 1 1 0 1 0 0 1 1 0 0 1 0
0 0 0 0 1 1 1 1 0 0 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0
তারপরে 3 মাপের প্রতিটি সুবারে নির্বাচন করা হয়
3 3 <;._3 (0,.~0,.0,~0,]) m
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│
│0 1 0│1 0 1│0 1 1│1 1 1│1 1 1│1 1 0│1 0 1│0 1 1│1 1 0│1 0 1│0 1 0│
│0 1 1│1 1 0│1 0 1│0 1 0│1 0 0│0 0 1│0 1 1│1 1 0│1 0 0│0 0 1│0 1 0│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│0 1 0│1 0 1│0 1 1│1 1 1│1 1 1│1 1 0│1 0 1│0 1 1│1 1 0│1 0 1│0 1 0│
│0 1 1│1 1 0│1 0 1│0 1 0│1 0 0│0 0 1│0 1 1│1 1 0│1 0 0│0 0 1│0 1 0│
│0 0 0│0 0 0│0 0 1│0 1 1│1 1 1│1 1 1│1 1 0│1 0 0│0 0 1│0 1 1│1 1 0│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│0 1 1│1 1 0│1 0 1│0 1 0│1 0 0│0 0 1│0 1 1│1 1 0│1 0 0│0 0 1│0 1 0│
│0 0 0│0 0 0│0 0 1│0 1 1│1 1 1│1 1 1│1 1 0│1 0 0│0 0 1│0 1 1│1 1 0│
│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
তারপরে প্রতিটি সুবারে মাত্র 5 টি মান বিবেচনা করা হয়
┌───┐
│xAx│
│CED│
│xBx│
└───┘
ABCD
প্রতিটি সুবারে সমতল করে সূচকগুলিতে নির্বাচন করে মানগুলি নির্বাচন করা হয় 1 7 3 5
। এই মানগুলি E
4 দ্বারা সূচক 4 দ্বারা বর্ধিত হয় এটি পরে বাইনারি সংখ্যার একটি তালিকা থেকে দশমিক হিসাবে রূপান্তরিত হয় এবং এর দ্বারা বর্ধিত হয় E
। x
মান দেবার প্রয়োজন নেই।
3 3 (4&{([+2#.*)1 7 3 5&{)@,;._3 (0,.~0,.0,~0,]) m
5 0 2 8 4 3 0 6 3 0 5
10 3 0 13 0 0 6 11 0 0 13
0 0 0 10 4 4 11 0 0 2 11
নীচের সারণি অনুসারে কোন চরিত্রটি আঁকতে হবে (গল্ফিংয়ের জন্য কিছুটা পুনরায় সাজানো হয়েছে) তা বেছে নিতে এটি সূচক হিসাবে ব্যবহৃত হয়। শেষ কলামটি প্রতিটি সাবহারির আউটপুট মানের সাথে একটি বাক্স অক্ষরের সাথে মেলে।
0 (space) 0
1 # 1
2 ┌ 6
3 ┬ 8
4 ┐ 7
5 ├ 14
6 ┼ 16
7 ┤ 15
8 └ 10
9 ┴ 12
10 ┘ 11
11 │ 5, 9, 13
12 ─ 2, 3, 4
এছাড়াও, জে, স্ট্রিংটিতে ' #───│┌┐┬│└┘┴│├┤┼'
8-বিট অক্ষর ব্যবহার করা হয়েছে যার প্রয়োজনীয় 17 টি অক্ষরের জন্য এটির দৈর্ঘ্য 47 (প্রতিটি বাইটের জন্য) রয়েছে। কমান্ড ucp
এটি 16-বিট অক্ষরে রূপান্তর করে যা এটি দৈর্ঘ্য 17 হতে দেয়।